示例#1
0
        private static EVFitting MontarEVFiting(eshFitting item, short units)
        {
            EVFitting fit = new EVFitting();

            fit.Description = item.description;
            fit.PublicID    = item.publicID;
            fit.Name        = item.name;
            fit.ShipName    = item.invType.typeName;
            fit.ShipVolume  = item.shipVolume;
            fit.Volume      = item.volume;
            fit.ItemID      = item.fittingID;
            fit.ImageUrl32  = GetImageUrl32(item.invType.typeID);
            fit.Units       = units;
            foreach (var itemHwd in item.eshFittingHardwares)
            {
                EVFittingHardware hwd = new EVFittingHardware();
                hwd.Name       = itemHwd.invType.typeName;
                hwd.Units      = itemHwd.units;
                hwd.Volume     = itemHwd.volume;
                hwd.ItemID     = itemHwd.fittingHardwareID;
                hwd.ImageUrl32 = string.Format("http://image.eveonline.com/Type/{0}_32.png", itemHwd.invType.typeID);
                hwd.Slot       = itemHwd.slotID;
                fit.FittingHardwares.Add(hwd);
            }
            return(fit);
        }
示例#2
0
        public EVFitting SelectFitSummaryByPublicID(string fittingPublicId, IImageResolver imageResolver, int tradeHubID)
        {
            EveShoppingContext contexto = new EveShoppingContext();

            EVFitting fit =
                (from f in contexto.eshFittings
                 join it in contexto.invTypes on f.shipTypeID equals it.typeID
                 join p in contexto.eshPrices on new { tradeHubID = tradeHubID, it.typeID } equals new { tradeHubID = tradeHubID, p.typeID }
                 where f.publicID == fittingPublicId
                 select new EVFitting
            {
                Description = f.description,
                ItemID = f.fittingID,
                Name = f.name,
                ShipID = f.shipTypeID.Value,
                ShipName = f.invType.typeName,
                ShipVolume = f.shipVolume,
                Units = 1,
                ShipPrice = p.avg,
                TotalPrice = p.avg,
                Volume = f.shipVolume,
                PublicID = f.publicID
            }).FirstOrDefault();

            fit.ImageUrl32 = imageResolver.GetImageURL(fit.ShipID);

            LogicaFittings logicaFits = new LogicaFittings();

            logicaFits.AddFittingHardwaresToFitting(contexto, imageResolver, tradeHubID, fit);

            //AddFittingHardwareToFittingSummary(imageResolver, contexto, fit);

            return(fit);
        }
示例#3
0
        public PartialViewResult SetUnitsToFitInShoppingList(int id, int units)
        {
            AgenteShoppingList agente   = new AgenteShoppingList();
            string             publicID = EstadoUsuario.CurrentListPublicId;

            EVFitting evfit = agente.SetUnitsToFitInShoppingList(publicID, id, units);

            return(PartialView("PVFitInShoppingList", evfit));
        }
示例#4
0
        public EVFitting SetUnitsToFitInShoppingList(string publicID, int id, int units)
        {
            LogicaShoppingLists logica =
                new LogicaShoppingLists();
            EVFitting slf = logica.SetUnitsToFitInShoppingList(publicID, id, units, new Imagex32UrlResolver());

            return(slf);
            //return MontarEVFiting(slf.eshFitting, slf.units);
        }
示例#5
0
        public ActionResult UseFitInMyList(int id)
        {
            try
            {
                AgenteShoppingList agente =
                    new AgenteShoppingList();

                agente.UseFitInList(EstadoUsuario.CurrentListPublicId, id);

                EVFitting evfit = agente.SelectFitPorID(EstadoUsuario.CurrentListPublicId, id);

                return(PartialView("PVFitInShoppingList", evfit));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest, ex.Message));
            }
        }
示例#6
0
        public ActionResult UseAnalysedFit(string fitName)
        {
            try
            {
                //Obtenemos la fit del diccionario guardado en sesión, si no está, lanzamos un error
                IDictionary <string, FittingAnalyzed> diccFits = (IDictionary <string, FittingAnalyzed>)Session["lastAnalysedFits"];
                FittingAnalyzed fit = null;
                if ((diccFits != null) && diccFits.ContainsKey(fitName))
                {
                    fit = diccFits[fitName];
                }
                if (fit == null)
                {
                    throw new ApplicationException("The fit is not recorded in our archives, try to analyse it again.");
                }

                //Guardamos la fit en base de datos
                AgenteShoppingList agente   = new AgenteShoppingList();
                string             userName = null;
                if (Request.IsAuthenticated)
                {
                    userName = User.Identity.Name;
                }
                int       fitID;
                EVFitting evfit = null;
                try
                {
                    fitID = agente.SaveAnalysedFit(EstadoUsuario.CurrentListPublicId, userName, fit);
                    evfit = agente.SelectFitPorID(EstadoUsuario.CurrentListPublicId, fitID);
                }
                catch (Exception ex)
                {
                    return(new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest, ex.Message));
                }

                return(PartialView("PVFitInShoppingList", evfit));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest, ex.Message));
            }
        }
示例#7
0
        public EVFitting SelectFitSummary(string publicID, int fittingID, IImageResolver imageResolver)
        {
            EveShoppingContext contexto = new EveShoppingContext();

            eshShoppingList shlist = contexto.eshShoppingLists.Where(s => s.publicID == publicID).FirstOrDefault();

            EVFitting fit =
                (from slf in contexto.eshShoppingListFittings
                 join f in contexto.eshFittings on slf.fittingID equals f.fittingID
                 join it in contexto.invTypes on f.shipTypeID equals it.typeID
                 join p in contexto.eshPrices on new { tradeHubID = slf.eshShoppingList.tradeHubID, it.typeID } equals new { tradeHubID = p.solarSystemID, p.typeID }
                 where slf.eshShoppingList.publicID == publicID && slf.fittingID == fittingID
                 select new EVFitting
            {
                Description = f.description,
                ItemID = f.fittingID,
                Name = f.name,
                ShipID = f.shipTypeID.Value,
                ShipName = f.invType.typeName,
                ShipVolume = f.shipVolume,
                Units = slf.units,
                ShipPrice = p.avg,
                TotalPrice = p.avg * slf.units,
                Volume = f.shipVolume * slf.units,
                PublicID = f.publicID
            }).FirstOrDefault();

            fit.ImageUrl32 = imageResolver.GetImageURL(fit.ShipID);

            //AddFittingHardwareToFittingSummary(imageResolver, contexto, fit);
            LogicaFittings logicafit = new LogicaFittings();

            logicafit.AddFittingHardwaresToFitting(contexto, imageResolver, shlist.tradeHubID, fit);

            return(fit);
        }
示例#8
0
        internal IEnumerable <EVFitting> MountFittingCommon(EveShoppingContext contexto, IEnumerable <QFitting> qfittings, IImageResolver imageResolver, int tradeHubID)
        {
            List <EVFitting> fittings = new List <EVFitting>();

            foreach (var qfit in qfittings)
            {
                if (string.IsNullOrEmpty(qfit.PublicID))
                {
                    qfit.PublicID = Guid.NewGuid().ToString();
                }
                EVFitting fit = new EVFitting
                {
                    Description = qfit.Description,
                    PublicID    = qfit.PublicID,
                    ItemID      = qfit.FittingID,
                    Name        = qfit.Name,
                    ShipID      = qfit.ShipID,
                    ShipName    = qfit.ShipName,
                    ShipVolume  = qfit.ShipVolume,
                    Units       = qfit.Units,
                    ShipPrice   = qfit.ShipPrice,
                    TotalPrice  = qfit.Price,
                };

                fit.ImageUrl32 = imageResolver != null?imageResolver.GetImageURL(qfit.ShipID) : string.Empty;;
                fit.ShipVolume = RepositorioItems.GetVolume(qfit.InvType);
                fit.Volume     = fit.ShipVolume * fit.Units;
                fittings.Add(fit);



                AddFittingHardwaresToFitting(contexto, imageResolver, tradeHubID, fit);
            }

            return(fittings);
        }
示例#9
0
        private static void AddFittingHardwareToFittingSummary(IImageResolver imageResolver, EveShoppingContext contexto, EVFitting fit)
        {
            var qfittingHardwares =
                (from sl in contexto.eshShoppingLists
                 join slf in contexto.eshShoppingListFittings on sl.shoppingListID equals slf.shoppingListID
                 join f in contexto.eshFittings on slf.fittingID equals f.fittingID
                 join fh in contexto.eshFittingHardwares on f.fittingID equals fh.fittingID
                 join it in contexto.invTypes on fh.typeID equals it.typeID
                 join mg in contexto.invMarketGroups on it.marketGroupID equals mg.marketGroupID
                 join p in contexto.eshPrices on new { sl.tradeHubID, it.typeID } equals new { tradeHubID = p.solarSystemID, p.typeID }
                 where f.fittingID == fit.ItemID
                 orderby fh.slotID, fh.positionInSlot, fh.invType.typeName
                 select new EVFittingHardware
            {
                ItemID = fh.typeID,
                GroupName = mg.marketGroupName,
                Name = it.typeName,
                TotalPrice = fh.units * p.avg,
                UnitPrice = fh.units,
                Slot = fh.slotID,
                SlotName = fh.eshFittingSlot.name,
                Units = fh.units,
                Volume = fh.units * it.volume.Value
            });

            foreach (var item in qfittingHardwares)
            {
                item.ImageUrl32 = imageResolver.GetImageURL(item.ItemID);
                fit.FittingHardwares.Add(item);
                fit.TotalPrice += item.TotalPrice * fit.Units;
                fit.Volume     += item.Volume * fit.Units;
            }
        }