public void PopulateNewWorksheet(OAuth2ClientCredentials clientCredentials, string refreshToken, string spreadsheetTitle, TypesByMarketGroup[] typesByMarketGroups, MarketStatTypesBySolarSystem[] marketStatTypes) { IUnityContainer unityContainer = UnityContainerFactory.GetUnityContainer(); IGoogleSpreadsheetAccessor googleSpreadsheetAccessor = unityContainer.Resolve<IGoogleSpreadsheetAccessor>(); string worksheetTitle = DateTime.Now.ToString(); IEnumerable<invType> types = typesByMarketGroups.SelectMany(t => t.Types); // row for headers + row for each type, plus row for each market group int rowCount = types.Count() + typesByMarketGroups.Count() + 1; // name column plus buy & sell stats for each system int columnCount = 1 + (6 * marketStatTypes.Length); ListEntry.Custom[,] listEntries = new ListEntry.Custom[rowCount, columnCount]; // populate header row listEntries[0, 0] = new ListEntry.Custom() { LocalName = "Name" }; PopulateRow(marketStatTypes, listEntries, 0, null); int marketGroupRowIndex = 1; foreach (var typesByMarketGroup in typesByMarketGroups) { listEntries[marketGroupRowIndex, 0] = new ListEntry.Custom() { LocalName = "Name", Value = typesByMarketGroup.MarketGroup.marketGroupName }; for (int typeCounter = 0; typeCounter < typesByMarketGroup.Types.Count(); typeCounter++) { int rowIndex = typeCounter + marketGroupRowIndex + 1; invType invType = typesByMarketGroup.Types.ElementAt(typeCounter); listEntries[rowIndex, 0] = new ListEntry.Custom() { LocalName = "Name", Value = invType.typeName }; PopulateRow(marketStatTypes, listEntries, rowIndex, invType); } marketGroupRowIndex += typesByMarketGroup.Types.Count() + 1; } googleSpreadsheetAccessor.PopulateNewWorksheet(clientCredentials, refreshToken, spreadsheetTitle, worksheetTitle, listEntries); }
private static void PopulateRow(MarketStatTypesBySolarSystem[] marketStatTypes, ListEntry.Custom[,] listEntries, int rowIndex, invType invType) { int baseColumnIndex = 0; for (int solarSystemCounter = 0; solarSystemCounter < marketStatTypes.Length; solarSystemCounter++) { mapSolarSystem mapSolarSystem = marketStatTypes[solarSystemCounter].MapSolarSystem; // for typeId, SolarSystemId, get Buy and Sell MarketStatType marketStatType = null; if (invType != null) { marketStatType = marketStatTypes[solarSystemCounter].MarketStatTypes.Where(m => m.Id == invType.typeID).FirstOrDefault(); } listEntries[rowIndex, baseColumnIndex + 1] = new ListEntry.Custom() { LocalName = string.Format("{0} Buy Min", mapSolarSystem.solarSystemName), Value = marketStatType != null ? marketStatType.Buy.Min.ToString() : string.Empty, }; listEntries[rowIndex, baseColumnIndex + 2] = new ListEntry.Custom() { LocalName = string.Format("{0} Buy Avg", mapSolarSystem.solarSystemName), Value = marketStatType != null ? marketStatType.Buy.Avg.ToString() : string.Empty, }; listEntries[rowIndex, baseColumnIndex + 3] = new ListEntry.Custom() { LocalName = string.Format("{0} Buy Max", mapSolarSystem.solarSystemName), Value = marketStatType != null ? marketStatType.Buy.Max.ToString() : string.Empty, }; listEntries[rowIndex, baseColumnIndex + 4] = new ListEntry.Custom() { LocalName = string.Format("{0} Sell Min", mapSolarSystem.solarSystemName), Value = marketStatType != null ? marketStatType.Sell.Min.ToString() : string.Empty, }; listEntries[rowIndex, baseColumnIndex + 5] = new ListEntry.Custom() { LocalName = string.Format("{0} Sell Avg", mapSolarSystem.solarSystemName), Value = marketStatType != null ? marketStatType.Sell.Avg.ToString() : string.Empty, }; listEntries[rowIndex, baseColumnIndex + 6] = new ListEntry.Custom() { LocalName = string.Format("{0} Sell Max", mapSolarSystem.solarSystemName), Value = marketStatType != null ? marketStatType.Sell.Max.ToString() : string.Empty, }; baseColumnIndex += 6; } }
public void SpreadsheetEngine_PopulateNewWorksheet() { SpreadsheetEngine spreadsheetEngine = new SpreadsheetEngine(); TypesByMarketGroup typesByMarketGroup = new TypesByMarketGroup() { MarketGroup = new invMarketGroup(), }; typesByMarketGroup.Types.Add(new invType() { typeID = 1 }); MarketStatTypesBySolarSystem marketStatType = new MarketStatTypesBySolarSystem() { MapSolarSystem = new mapSolarSystem(), }; spreadsheetEngine.PopulateNewWorksheet(new OAuth2ClientCredentials(), string.Empty, string.Empty, new TypesByMarketGroup[] { typesByMarketGroup }, new MarketStatTypesBySolarSystem[] { marketStatType }); }
public MarketStatTypesBySolarSystem[] GetMarketStats(int[] typeIds, mapSolarSystem[] useSystems, int hours) { Logger.Write(string.Format("EveAccountancyManager: Getting market stats for typeIds {0}", string.Join(",", typeIds))); IUnityContainer unityContainer = UnityContainerFactory.GetUnityContainer(); IEveCentralAccessor eveCentralAccessor = unityContainer.Resolve<IEveCentralAccessor>(); List<MarketStatTypesBySolarSystem> marketStatTypesBySolarSystems = new List<MarketStatTypesBySolarSystem>(); foreach (mapSolarSystem useSystem in useSystems) { LoggerUtil.LogMessage(string.Format("Getting market stats for system {0}", useSystem.solarSystemName)); MarketStatTypesBySolarSystem marketStatTypesBySolarSystem = new MarketStatTypesBySolarSystem() { MapSolarSystem = useSystem, }; marketStatTypesBySolarSystem.MarketStatTypes.AddRange(eveCentralAccessor.GetMarketStats(typeIds, hours: hours, useSystem: useSystem.solarSystemID)); marketStatTypesBySolarSystems.Add(marketStatTypesBySolarSystem); } return marketStatTypesBySolarSystems.ToArray(); }
public void PopulateNewWorksheet(OAuth2ClientCredentials clientCredentials, string refreshToken, string spreadsheetTitle, TypesByMarketGroup[] typesByMarketGroup, MarketStatTypesBySolarSystem[] marketStatTypes) { Logger.Write(string.Format("EveAccountancyManager: Writing to spreadsheet {0}", spreadsheetTitle)); IUnityContainer unityContainer = UnityContainerFactory.GetUnityContainer(); ISpreadsheetEngine spreadsheetEngine = unityContainer.Resolve<ISpreadsheetEngine>(); spreadsheetEngine.PopulateNewWorksheet(clientCredentials, refreshToken, spreadsheetTitle, typesByMarketGroup, marketStatTypes); }
public void PopulateNewWorksheet(OAuth2ClientCredentials clientCredentials, string refreshToken, string spreadsheetTitle, TypesByMarketGroup[] typesByMarketGroup, MarketStatTypesBySolarSystem[] marketStatTypes) { }