示例#1
0
        public async Task <ActionResult> ItemTypeInfoOpenMarketWindowForItemType(ItemTypeInfoPageViewModel model)
        {
            AuthDTO auth = GetAuth(_ESIClient);

            _Log.LogDebug(String.Format("Logged in to retrieve Character Info for Character Id: {0}", auth.CharacterId));
            await _ESIClient.UserInterface.OpenMarketDetailsV1Async(auth, model.OpenMarketModel.ItemTypeId);

            return(RedirectToAction("ItemTypeInfo", new { id = model.OpenMarketModel.ItemTypeId }));
        }
示例#2
0
        public async Task <IActionResult> ItemTypeInfo(int id)
        {
            ItemType_V_Row itemType = _DBService.GetItemType(id);

            // TODO: SDE views don't handle this right now
            var itemTypeApi = await _ESIClient.Universe.GetTypeInfoV3Async(id);

            EVEStandard.Models.Type itemTypeApiModel = itemTypeApi.Model;

            MarketAveragePrices_Row averagePrice = _DBService.GetAveragePriceForTypeId(id);

            #region Best Sell/Buy Prices
            List <RegionMarketOrdersModel> bestSellPrices       = new List <RegionMarketOrdersModel>();
            List <RegionMarketOrdersRow>   bestSellPricesResult = _DBService.GetBestSellPricesForTypeId(id);
            List <RegionMarketOrdersModel> bestBuyPrices        = new List <RegionMarketOrdersModel>();
            List <RegionMarketOrdersRow>   bestBuyPricesResult  = _DBService.GetBestBuyPricesForTypeId(id);
            List <int> systemIds = bestSellPricesResult.Select(x => x.SystemId).ToList();
            systemIds.AddRange(bestBuyPricesResult.Select(x => x.SystemId));
            List <SolarSystem_V_Row> systems = _DBService.GetSolarSystems(systemIds);

            for (int x = 0; x < bestSellPricesResult.Count; x++)
            {
                RegionMarketOrdersRow r = bestSellPricesResult[x];
                int    systemId         = r.SystemId;
                string systemName       = systems.Where(a => a.Id == systemId).Select(a => a.Name).FirstOrDefault();
                string range            = r.Range; // Format range string
                int    rangeInt         = -1;
                Int32.TryParse(range, out rangeInt);
                if (rangeInt > 0)
                {
                    range = String.Format("{0} Jumps", rangeInt);
                }
                else
                {
                    range = range.FirstCharToUpper();
                }
                RegionMarketOrdersModel orderModel = new RegionMarketOrdersModel()
                {
                    SystemId   = r.SystemId,
                    SystemName = systemName,
                    Range      = range,
                    Price      = r.Price
                };
                bestSellPrices.Add(orderModel);
            }
            for (int x = 0; x < bestBuyPricesResult.Count; x++)
            {
                RegionMarketOrdersRow r = bestBuyPricesResult[x];
                int    systemId         = r.SystemId;
                string systemName       = systems.Where(a => a.Id == systemId).Select(a => a.Name).FirstOrDefault();
                string range            = r.Range; // Format range string
                int    rangeInt         = -1;
                Int32.TryParse(range, out rangeInt);
                if (rangeInt > 0)
                {
                    range = String.Format("{0} Jumps", rangeInt);
                }
                else
                {
                    range = range.FirstCharToUpper();
                }
                RegionMarketOrdersModel orderModel = new RegionMarketOrdersModel()
                {
                    SystemId   = r.SystemId,
                    SystemName = systemName,
                    Range      = range,
                    Price      = r.Price
                };
                bestBuyPrices.Add(orderModel);
            }
            #endregion

            // TODO: Find a better way to manage this. Since "None" is committed to the view for use with filters, this causes issues
            List <ItemTypeAttribute> attrs = itemType.Attributes;
            attrs = attrs.Where(x => !String.IsNullOrWhiteSpace(x.DisplayName) && x.DisplayName != "None").ToList();
            itemType.Attributes = attrs;
            List <ItemTypeEffect> effects = itemType.Effects;
            effects          = effects.Where(x => !String.IsNullOrWhiteSpace(x.DisplayName) && x.DisplayName != "None").ToList();
            itemType.Effects = effects;

            Blueprint_V_Row blueprint = _DBService.GetBlueprintByItemId(id);

            var model = new ItemTypeInfoPageViewModel
            {
                ItemTypeId      = id,
                ItemType        = itemType,
                ItemType_API    = itemTypeApiModel,
                AveragePrice    = averagePrice,
                BestSellPrices  = bestSellPrices,
                BestBuyPrices   = bestBuyPrices,
                Blueprint       = blueprint,
                OpenMarketModel = new ItemTypeInfoOpenMarketModel(),
                OpenInfoModel   = new ItemTypeInfoOpenInfoModel()
            };

            return(View(model));
        }