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); }
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)); }
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 })); }
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 })); }
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); }
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 })); }