Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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 });
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 public void PopulateNewWorksheet(OAuth2ClientCredentials clientCredentials, string refreshToken, string spreadsheetTitle, TypesByMarketGroup[] typesByMarketGroup, MarketStatTypesBySolarSystem[] marketStatTypes)
 {
 }