diff --git a/RLE.Core/Extensions/ListExtensions.cs b/RLE.Core/Extensions/ListExtensions.cs index e764786..f697aee 100644 --- a/RLE.Core/Extensions/ListExtensions.cs +++ b/RLE.Core/Extensions/ListExtensions.cs @@ -21,6 +21,28 @@ public static void AddColumn(this List headers, SheetCellModel h headers.Add(header); } + public static void UpdateColumns(this List 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(this List list, int number) { for (int i = 0; i < number; i++) diff --git a/RLE.Stock/Constants/SheetsConfig.cs b/RLE.Stock/Constants/SheetsConfig.cs index 258affb..24fb54a 100644 --- a/RLE.Stock/Constants/SheetsConfig.cs +++ b/RLE.Stock/Constants/SheetsConfig.cs @@ -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, diff --git a/RLE.Stock/Mappers/StockMapper.cs b/RLE.Stock/Mappers/StockMapper.cs index f2b925f..79d68c0 100644 --- a/RLE.Stock/Mappers/StockMapper.cs +++ b/RLE.Stock/Mappers/StockMapper.cs @@ -130,86 +130,56 @@ public static List MapFromRangeData(IList> 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(); + + 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;