public DTOPortfolio GetPortfolioByCodigo(string codigo) { string keyCache = KEY_PORTFOLIO_CODIGO + "#" + codigo; DTOPortfolio dtoPortfolio = CacheLayer.Get <DTOPortfolio>(keyCache); if (dtoPortfolio == null) { using (OrdenesContext mc = new OrdenesContext()) { dtoPortfolio = (from p in mc.Portfolios where p.Codigo == codigo select new DTOPortfolio() { IdPortfolio = p.IdPortfolio, Nombre = p.Nombre, Codigo = p.Codigo, EsDeSistema = p.EsDeSistema }).FirstOrDefault(); } if (dtoPortfolio != null) { CacheLayer.Add(dtoPortfolio, keyCache); } } return(dtoPortfolio); }
public static string get(InCourseRequest inCourseRequest, string WebUrlName) { DateTime fechaDelSistema = DateTime.Today; Guid guidId = inCourseRequest.SecurityTokenId; SessionHelper.GetSesionExistente(guidId); MAEUserSession userSession = MAEUserSession.Instancia; var beEstadoSistema = CachingManager.Instance.GetFechaSistema(); if (beEstadoSistema != null) { fechaDelSistema = beEstadoSistema.FechaSistema.Date; userSession.EstadoSistema = (beEstadoSistema.EstadoAbierto) ? "Abierto" : "Cerrado"; } var Permissions = CachingManager.Instance.GetAllPermisosByIdUsuario(userSession.IdUsuario); DTOPortfolio DefaultPortfolio = CachingManager.Instance.GetPortfolioDefaultByIdUsuario(userSession.IdUsuario); string CodigoPortfolio = DefaultPortfolio?.Codigo; OrdenesAppContext context = new OrdenesAppContext() { UserName = userSession.UserName.ToString(), TipoParticipante = UserHelper.getNombreTipoPersona(userSession.IdTipoPersona), SecurityTokenId = userSession.ID.ToString(), WebUrlName = WebUrlName, MaeAppName = "Ordenes_v_500", EstadoSistema = beEstadoSistema, FechaDelSistema = fechaDelSistema, FormatoFechaCorta = "dd/MM/yyyy", FormatoFechaCortaMoment = "DD/MM/YYYY", FormatoFechaHora = "dd/MM/yyyy HH:mm", Global = userSession.Global, PublicKey = userSession.PublicKey, IdUsuario = userSession.IdUsuario, IdPersona = userSession.IdPersona, IdTipoPersona = userSession.IdTipoPersona, ClientSecret = userSession.ClientSecret, ServerPublic = userSession.ServerPublic, Nonce = userSession.Nonce, JavascriptAllowedCommands = userSession.JavascriptAllowedCommands, PermisosUsuario = userSession.PermisosUsuario, CodigoPortfolio = CodigoPortfolio, LanguageTag = userSession.ConfiguracionRegional, LoginRealizado = userSession.LoginRealizado }; var s = JsonConvert.SerializeObject(context, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple }); return(s); }
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 DTOPortfolio GetPortfolioDefaultByIdUsuario(int idUsuario) { string keyCache = KEY_PORTFOLIO_DEFAULT_USUARIO + "#" + idUsuario; DTOPortfolio dtoPortfolio = CacheLayer.Get <DTOPortfolio>(keyCache); if (dtoPortfolio == null) { using (OrdenesContext mc = new OrdenesContext()) { dtoPortfolio = (from p in mc.Portfolios join pu in mc.PortfoliosUsuario on p.IdPortfolio equals pu.IdPortfolio where pu.IdUsuario == idUsuario && pu.PorDefecto select new DTOPortfolio() { IdPortfolio = p.IdPortfolio, Nombre = p.Nombre, Codigo = p.Codigo, EsDeSistema = p.EsDeSistema }).FirstOrDefault(); if (dtoPortfolio == null) { dtoPortfolio = (from p in mc.Portfolios join pu in mc.PortfoliosUsuario on p.IdPortfolio equals pu.IdPortfolio where pu.IdUsuario == idUsuario select new DTOPortfolio() { IdPortfolio = p.IdPortfolio, Nombre = p.Nombre, Codigo = p.Codigo, EsDeSistema = p.EsDeSistema }).FirstOrDefault(); } } if (dtoPortfolio != null) { CacheLayer.Add(dtoPortfolio, keyCache); } } return(dtoPortfolio); }
private static UserValido ValidateUser(string UserName, string Password, InfoCliente infoCliente, TipoAplicacion tipoAplicacion, string NombreAgencia = null, bool passHashed = false, bool isValid = false) { var configuracionSeguridad = CachingManager.Instance.GetConfiguracionSeguridad(); Guid tokenGuid; UserValido response = new UserValido(); response.IsOK = false; try { if (string.IsNullOrEmpty(UserName) || string.IsNullOrEmpty(Password)) { response.MensajeError = "El nombre de usuario y la contraseña no pueden estar vacíos."; response.IsOK = false; return(response); } tokenGuid = DoLogIn(UserName, Password, infoCliente, tipoAplicacion, NombreAgencia, passHashed, isValid); if (tokenGuid != Guid.Empty) { response.IsOK = true; response.TokenGuid = tokenGuid.ToString(); int IdUsuario = CachingManager.Instance.GetUsuarioByUsername(UserName).IdUsuario; DTOPortfolio portfolioPorDefecto = CachingManager.Instance.GetPortfolioDefaultByIdUsuario(IdUsuario); if (portfolioPorDefecto == null) { response.MensajeError = "El Usuario debe tener al menos un portfolio por defecto!."; response.IsOK = false; return(response); } } else { response.MensajeError = "Verifique el nombre de usuario y contraseña."; response.IsOK = false; } } catch (M4TraderApplicationException ex) { if (ex.Codigo == "W100002") { response.MensajeError = "Por políticas de seguridad debe cambiar la contraseña."; response.IsOK = false; response.NeedNewPassword = true; return(response); } else { response.MensajeError = ex.Message; response.IsOK = false; } } catch (SessionException ex) { if (ex.Code == "W100002") { response.NeedNewPassword = true; response.MensajeError = "Por políticas de seguridad debe cambiar la contraseña."; response.IsOK = false; return(response); } else { response.MensajeError = ex.Message; response.IsOK = false; } } catch (Exception ex) { response.MensajeError = ex.Message; response.IsOK = false; } return(response); }