public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            var plazos   = IdPlazo.Split(',');
            var elements = context.PortfoliosComposicion.Where(x => x.IdPortfolio == IdPortfolio);
            int orden    = 0;

            if (elements.Any())
            {
                orden = elements.Max(x => x.Orden);
            }
            foreach (var plazo in plazos)
            {
                var request = new PortfolioComposicionEntity()
                {
                    IdMercado   = IdMercado,
                    IdPortfolio = Convert.ToInt16(IdPortfolio),
                    IdProducto  = IdProducto,
                    IdPlazo     = byte.Parse(plazo),
                    Orden       = orden++
                };

                this.AgregarAlContextoParaAlta(request);
            }

            return(null);
        }
Example #2
0
        public DTOPortfolio GetPortfolioByIdProducto(int idProducto)
        {
            string keyCache = PORTFOLIOS_ALL;
            List <DTOPortfolio>        dtoPortfolios = CacheLayer.Get <List <DTOPortfolio> >(keyCache);
            PortfolioComposicionEntity pce           = new PortfolioComposicionEntity();


            using (OrdenesContext mc = new OrdenesContext())
            {
                pce = (from pc in mc.PortfoliosComposicion
                       where pc.IdProducto == idProducto
                       select pc).FirstOrDefault();
                if (dtoPortfolios == null)
                {
                    dtoPortfolios = (from p in mc.Portfolios
                                     select new DTOPortfolio()
                    {
                        IdPortfolio = p.IdPortfolio,
                        Nombre = p.Nombre,
                        Codigo = p.Codigo,
                        EsDeSistema = p.EsDeSistema
                    }).ToList();
                    CacheLayer.Add(dtoPortfolios, keyCache);
                }
            }

            return(dtoPortfolios.Find(x => x.IdPortfolio == pce.IdPortfolio));
        }
Example #3
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            DTOPortfolio favorito         = CachingManager.Instance.GetPortfolioByCodigo("F" + IdUsuario.ToString());
            byte         idPlazo          = (byte)CachingManager.Instance.GetAllPlazos().Find(x => x.Descripcion == Plazo).IdPlazo;
            PortfolioComposicionEntity pc = CachingManager.Instance.GetPortfolioComposicionByPortfolioAndProducto(favorito.IdPortfolio, IdProducto, idPlazo);

            if (pc != null)
            {
                context.PortfoliosComposicion.Remove(pc);
            }

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(new { Ok = true }));
        }
Example #4
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            DTOPortfolio    favorito  = CachingManager.Instance.GetPortfolioByCodigo("F" + IdUsuario.ToString());
            int             idPlazo   = CachingManager.Instance.GetAllPlazos().Find(x => x.Descripcion == Plazo).IdPlazo;
            PortfolioEntity portfolio = new PortfolioEntity();

            if (favorito == null)
            {
                portfolio.Codigo      = "F" + IdUsuario.ToString();
                portfolio.EsDeSistema = false;
                portfolio.Nombre      = "Favorito_" + IdUsuario.ToString();
                portfolio.EsFavorito  = true;

                var portfolioComposicion = new PortfolioComposicionEntity()
                {
                    IdMercado  = 1,
                    IdPlazo    = (byte)idPlazo,
                    IdProducto = IdProducto,
                    Orden      = 1,
                    Portfolio  = portfolio
                };

                var portfolioUsuario = new PortfolioUsuarioEntity()
                {
                    IdUsuario = IdUsuario,
                    Portfolio = portfolio
                };

                this.AgregarAlContextoParaAlta(portfolio);
                this.AgregarAlContextoParaAlta(portfolioUsuario);
                this.AgregarAlContextoParaAlta(portfolioComposicion);
            }
            else
            {
                var portfolioComposicion = new PortfolioComposicionEntity()
                {
                    IdMercado   = 1,
                    IdPlazo     = (byte)idPlazo,
                    IdProducto  = IdProducto,
                    Orden       = 1,
                    IdPortfolio = favorito.IdPortfolio
                };

                this.AgregarAlContextoParaAlta(portfolioComposicion);
            }

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(new { Ok = true }));
        }
Example #5
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            var plazos = IdPlazo.Split(',');

            foreach (var plazo in plazos)
            {
                var request = new PortfolioComposicionEntity()
                {
                    IdMercado   = IdMercado,
                    IdPortfolio = Convert.ToInt16(IdPortfolio),
                    IdProducto  = IdProducto,
                    IdPlazo     = byte.Parse(plazo)
                };

                this.AgregarAlContextoParaAlta(request);
            }

            return(null);
        }
Example #6
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            //portfolio = CachingManager.Instance.GetPortfolioDefaultByIdUsuario(IdUsuario);
            var coleccion = (from d in context.PortfoliosComposicion where d.IdProducto == IdProducto && d.IdMercado == IdMercado && d.IdPortfolio == portfolio.IdPortfolio && d.IdPlazo == (byte)PlazoOrdenEnum.ContadoInmediato select d);

            if (coleccion.Count() == 0)
            {
                var request = new PortfolioComposicionEntity()
                {
                    IdMercado   = IdMercado,
                    IdPortfolio = Convert.ToInt16(portfolio.IdPortfolio),
                    IdProducto  = IdProducto,
                    IdPlazo     = (byte)PlazoOrdenEnum.ContadoInmediato
                };
                this.AgregarAlContextoParaAlta(request);
            }

            List <PartyEntity> parties = new List <PartyEntity>();

            if (!IdPersonas.Equals("0"))
            {
                var personas = IdPersonas.Split(',').ToList();
                parties = (from d in context.Persona
                           where personas.Contains(d.IdParty.ToString())
                           select d).ToList();
            }
            else
            {
                //si IdPersonas solo tiene el 0, se selecciono "Todos"
                parties = (from d in context.Persona
                           where d.IdParty != IdEmpresa
                           select d).ToList();
            }
            string strParties = string.Empty;

            foreach (var party in parties)
            {
                strParties += party.Name + ",";
                if (!(from d in context.PermisosProductosEmpresas
                      where d.IdParty == party.IdParty && d.IdProducto == IdProducto
                      select d).Any())
                {
                    var requestUser = new PermisosProductosEntity()
                    {
                        IdProducto = IdProducto,
                        IdParty    = party.IdParty,
                        PuedeBid   = true,
                        PuedeSell  = false,
                        Habilitado = false
                    };
                    this.AgregarAlContextoParaAlta(requestUser);
                }
            }
            strParties = strParties.Remove(strParties.Length - 1);
            var partyEmpresa = (from d in context.Persona
                                where d.IdParty == IdEmpresa
                                select d).ToList();

            foreach (var p in partyEmpresa)
            {
                if (!(from d in context.PermisosProductosEmpresas
                      where d.IdParty == IdEmpresa && d.IdProducto == IdProducto
                      select d).Any())
                {
                    var requestEmpresa = new PermisosProductosEntity()
                    {
                        IdProducto = IdProducto,
                        IdParty    = p.IdParty,
                        PuedeBid   = false,
                        PuedeSell  = true,
                        Habilitado = false
                    };
                    this.AgregarAlContextoParaAlta(requestEmpresa);
                }
            }
            OrdenEntity orden = CreateOrder();

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(new { Ok = orden != null, orden, portfolio, strParties }));
        }