Skip to content

Commit

Permalink
Started the revamp of the way sheet headers are created
Browse files Browse the repository at this point in the history
  • Loading branch information
khanjal committed Nov 23, 2024
1 parent 2a39735 commit 6fa5549
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 74 deletions.
22 changes: 22 additions & 0 deletions RLE.Core/Extensions/ListExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,28 @@ public static void AddColumn(this List<SheetCellModel> headers, SheetCellModel h
headers.Add(header);
}

public static void UpdateColumns(this List<SheetCellModel> headers)
{
var sheetHeaders = headers.ToList();
var letters = GoogleConfig.ColumnLetters;
var value = string.Empty;

headers.Clear();
foreach (var header in sheetHeaders)
{
value = "";

if (headers.Count >= letters.Length)
value += letters[headers.Count / letters.Length - 1];

value += letters[headers.Count % letters.Length];

header.Column = value;
header.Index = headers.Count;
headers.Add(header);
}
}

public static void AddItems<T>(this List<T> list, int number)
{
for (int i = 0; i < number; i++)
Expand Down
2 changes: 1 addition & 1 deletion RLE.Stock/Constants/SheetsConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public static class SheetsConfig
FreezeColumnCount = 2,
FreezeRowCount = 1,
Headers = [
new SheetCellModel { Name = HeaderEnum.ACCOUNT.GetDescription() },
new SheetCellModel { Name = HeaderEnum.ACCOUNT.GetDescription() },
new SheetCellModel { Name = HeaderEnum.TICKER.GetDescription() },
new SheetCellModel { Name = HeaderEnum.NAME.GetDescription() },
.. CommonCostSheetHeaders,
Expand Down
116 changes: 43 additions & 73 deletions RLE.Stock/Mappers/StockMapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,86 +130,56 @@ public static List<StockEntity> MapFromRangeData(IList<IList<object>> values)
public static SheetModel GetSheet()
{
var sheet = SheetsConfig.StockSheet;
sheet.Headers.UpdateColumns();

//var tripSheet = TripMapper.GetSheet();
//var sheetTripsName = SheetEnum.TRIPS.GetDescription();
//var sheetTripsTypeRange = tripSheet.Headers.First(x => x.Name == HeaderEnum.D.GetDescription()).Range;

sheet.Headers = [];

// Account
sheet.Headers.AddColumn(new SheetCellModel { Name = HeaderEnum.ACCOUNT.GetDescription() });
var range = sheet.GetLocalRange(HeaderEnum.ACCOUNT.GetDescription());
// Ticker
sheet.Headers.AddColumn(new SheetCellModel { Name = HeaderEnum.TICKER.GetDescription() });
// Name
sheet.Headers.AddColumn(new SheetCellModel { Name = HeaderEnum.NAME.GetDescription() });
// Shares
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.SHARES.GetDescription(),
Format = FormatEnum.ACCOUNTING
});
// Avg Cost
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.AVERAGE_COST.GetDescription(),
Note = ColumnNotes.AverageCost,
Format = FormatEnum.ACCOUNTING
});
// Cost Total
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.COST_TOTAL.GetDescription(),
Format = FormatEnum.ACCOUNTING
});
// Current Price
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.CURRENT_PRICE.GetDescription(),
Format = FormatEnum.ACCOUNTING
});
// Current Total
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.CURRENT_TOTAL.GetDescription(),
Format = FormatEnum.ACCOUNTING
});
// Return
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.RETURN.GetDescription(),
Format = FormatEnum.ACCOUNTING
});
// P/E Ratio
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.PE_RATIO.GetDescription(),
Format = FormatEnum.ACCOUNTING
});
// 52 Week High
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.WEEK_HIGH_52.GetDescription(),
Format = FormatEnum.ACCOUNTING
});
// 52 Week Low
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.WEEK_LOW_52.GetDescription(),
Format = FormatEnum.ACCOUNTING
});
// Max High
sheet.Headers.AddColumn(new SheetCellModel
{
Name = HeaderEnum.MAX_HIGH.GetDescription(),
Format = FormatEnum.ACCOUNTING
});
// Min Low
sheet.Headers.AddColumn(new SheetCellModel
sheet.Headers.ForEach(header =>
{
Name = HeaderEnum.MIN_LOW.GetDescription(),
Format = FormatEnum.ACCOUNTING
var headerEnum = header!.Name.ToString()!.Trim().GetValueFromName<HeaderEnum>();

switch (headerEnum)
{
case HeaderEnum.AVERAGE_COST:
header.Note = ColumnNotes.AverageCost;
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.COST_TOTAL:
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.CURRENT_PRICE:
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.CURRENT_TOTAL:
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.MAX_HIGH:
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.MIN_LOW:
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.PE_RATIO:
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.RETURN:
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.SHARES:
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.WEEK_HIGH_52:
header.Format = FormatEnum.ACCOUNTING;
break;
case HeaderEnum.WEEK_LOW_52:
header.Format = FormatEnum.ACCOUNTING;
break;
default:
break;
}
});

return sheet;
Expand Down

0 comments on commit 6fa5549

Please sign in to comment.