Пример #1
0
        public override ExecutionResult Execute(InCourseRequest inCourseRequest)
        {
            //try
            //{
            var result = new ExecutionResult();

            if (needTransactionalBevahiour())
            {
                TransactionOptions opciones = new TransactionOptions();
                opciones.IsolationLevel = IsolationLevel.ReadCommitted;
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, opciones))
                {
                    result = this.ExecuteCommand(inCourseRequest);
                    scope.Complete();
                }
            }
            else
            {
                result = this.ExecuteCommand(inCourseRequest);
            }


            return(result);
            //} catch (Exception e)
            //{
            //    throw new M4TraderApplicationException("Error desconocido. Contáctese con atención a usuarios.");
            //}
        }
Пример #2
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            int idEstadoSistema = context.EstadoSistema.Where(p1 => p1.IdEstadoSistema != 0).Max(r => r.IdEstadoSistema);
            var entidad         = context.EstadoSistema.Where(p => p.IdEstadoSistema == idEstadoSistema).FirstOrDefault();

            if (entidad != null)
            {
                entidad.EjecucionValidacion = true;
                var parms = new List <SqlParameter>();

                var parm = new SqlParameter("@FechaSistema", SqlDbType.Date)
                {
                    Value = CachingManager.Instance.GetFechaSistema().FechaSistema
                };
                parms.Add(parm);

                parm = new SqlParameter
                {
                    Direction = ParameterDirection.ReturnValue
                };
                parms.Add(parm);

                SqlServerHelper.ExecuteNonQuery("orden_owner.ESTSIS_ValidarCondicionesCambioEstadoParaFechaActual", parms);
                var hayProblemas = (int)parms[1].Value > 0;

                entidad.EjecucionValidacion = !hayProblemas;
            }
            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(entidad));
        }
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            OrdenOperacionEntity request = new OrdenOperacionEntity()
            {
                IdOrden             = IdOrden,
                Cantidad            = Cantidad,
                Precio              = Precio,
                NroOperacionMercado = NroOperacionMercado
            };

            // Cambio de Estado
            if (Orden == null)
            {
                Orden = OrdenesDAL.ObtenerOrdenbyID(IdOrden);
            }
            Orden.IdEstado = (Cantidad == Orden?.Cantidad && Remanente == 0) ? (byte)EstadoOrden.Aplicada : (Remanente > 0 && Remanente == Cantidad) ? (byte)EstadoOrden.Aplicada : (byte)EstadoOrden.AplicadaParcial;

            using (ReadCommittedTransactionScope scope = new ReadCommittedTransactionScope(TransactionScopeOption.Required))
            {
                // Insertar OrdenOperacion
                OrdenesDAL.InsertarOrdenOperacion(request, Orden.IdEstado, Orden.NumeroOrdenMercado);

                Orden.IdMercado = CachingManager.Instance.GetAllMercados().FirstOrDefault(x => x.EsInterno).IdMercado;
                OrdenesDAL.ActualizarOrden(Orden);

                scope.Complete();
            }

            LoggingHelper.Instance.AgregarLog(new LogBitacoraOrdenEntity(request.IdOrden, LogCodigoAccion.CierreMercadoInterno, "Cierre de Mercado Interno #:" + request.NroOperacionMercado, (EstadoOrden)Orden.IdEstado, null, SourceEnum.Mobile));

            return(null);
        }
Пример #4
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            CachingManager.Instance.RefreshAll();
            OrdenesApplication.Instance.RefreshConfiguracionSistema();

            return(null);
        }
Пример #5
0
        public override ExecutionResult ExecuteCommand(InCourseRequest inCourseRequest)
        {
            //if (Source == 0)
            //    Source = SourceEnum.Mobile;

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(ProcesamientoGenerica(ConfimarOrden, Ordenes)));
        }
Пример #6
0
        public string c(JSCommand command)
        {
            var r = new CommandResult();
            Dictionary <string, object> metaData = null;
            var inCourseRequest = InCourseRequest.New();
            var re = OperationContext.Current;

            try
            {
                return(WCFWrapper.Instance.wcfHelper.ExecuteQueryService <ICommandExtranetService>(ServiciosEnum.CommandExtranet, i => i.c(command)));
            }
            catch (M4TraderApplicationException ex)
            {
                r.MetaData = metaData;
                r.Data     = new object[2] {
                    inCourseRequest.Id, ex.Message
                };
                r.Status    = "EX0000";
                r.RequestId = inCourseRequest.Id.ToString();
                return(JsonConvert.SerializeObject(r));
            }
            catch (Exception ex)
            {
                r.MetaData = metaData;
                r.Data     = new object[2] {
                    inCourseRequest.Id, ex.Message
                };
                r.Status    = "EX0000";
                r.RequestId = inCourseRequest.Id.ToString();
                return(JsonConvert.SerializeObject(r));
            }
        }
 public override object ExecuteCommand(InCourseRequest inCourseRequest)
 {
     MCContext.Entidades.UsuarioEntity requestUsuario = new MCContext.Entidades.UsuarioEntity()
     {
         Username  = UserName,
         Pass      = MAETools.HashMD5(Password),
         Nombre    = Nombre,
         Bloqueado = Bloqueado,
         NoControlarInactividad = NoControlarInactividad,
         Proceso   = Proceso,
         IdPersona = IdPersona,
         UltimaModificacionPassword = DateTime.Now,
         UltimoLoginExitoso         = DateTime.Now,
         ConfiguracionRegional      = "es-AR"
     };
     foreach (string idRol in RolesUsuario.Split(','))
     {
         RolUsuarioEntity request = new RolUsuarioEntity()
         {
             IdRol = short.Parse(idRol)
         };
         requestUsuario.RolUsuarioItems.Add(request);
     }
     this.AgregarAlContextoParaAlta(requestUsuario);
     SessionHelper.InsertarLogSeguridad((byte)LogCodigoAccionSeguridad.AltaUsuario, "Nuevo user: " + UserName, (byte)TipoAplicacion.ORDENES);
     return(null);
 }
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            var request = (from d in context.PortfoliosComposicion where IdPortfoliosComposiciones.Contains(d.IdPortfoliosComposicion) select d).ToList();

            this.context.RemoveRange(request);
            return(null);
        }
Пример #9
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            string response = string.Empty;

            if (valida)
            {
                InfoCliente   infoCliente   = new InfoCliente(Utils.GetIpAddress(), inCourseRequest.Origen);
                UsuarioEntity usuarioEntity = new UsuarioEntity()
                {
                    Username = NombreUsuario,
                    Pass     = Password
                };
                M4TraderUserSessionLogin userSession = LoginHelper.Login(NombreUsuario, Password, infoCliente, TipoAplicacion.API);
                if (userSession.Ok && userSession.DobleAutenticacion == false)
                {
                    response = MAEUserSession.Instancia.ID;
                }
                else if (userSession.Ok && userSession.DobleAutenticacion == true)
                {
                    TwoFactorAuthenticator autenticador = new TwoFactorAuthenticator();
                    //var setupInfo = autenticador.GenerateSetupCode("M4Trader",
                    //userSession.TokenGuid,
                    //"ALSKDMASKLDMKALDKSA", 300, 300);
                }
                else
                {
                    response = userSession.Message;
                }
            }

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(response));
        }
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            string response = string.Empty;

            if (valida)
            {
                UsuarioEntity usuarioEntity = new UsuarioEntity()
                {
                    Username = NombreUsuario,
                    Pass     = Password
                };

                TwoFactorAuthenticator twoFA = new TwoFactorAuthenticator();
                string userUniqueKey         = NombreUsuario + "qaz123";

                bool isValid = twoFA.ValidateTwoFactorPIN(userUniqueKey, M4TraderPin);

                if (isValid)
                {
                    InfoCliente infoCliente = new InfoCliente(Utils.GetIpAddress(), inCourseRequest.Origen);
                    M4TraderUserSessionLogin userSession = LoginHelper.Login2FA(NombreUsuario, Password, infoCliente, TipoAplicacion.API, isValid);
                }
                //response = "Is Valod";
            }

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(response));
        }
        public override ExecutionResult Execute(InCourseRequest inCourseRequest)
        {
            int IdUsuario = CachingManager.Instance.GetUsuarioByUsername(UserName).IdUsuario;

            UserHelper.ChangePassword(IdUsuario, PasswordAnterior, PasswordNueva, NuevaVerificacion);

            return(ExecutionResult.ReturnInmediately("OK"));
        }
Пример #12
0
 public override object ExecuteCommand(InCourseRequest inCourseRequest)
 {
     foreach (string Id in Ids)
     {
         CerrarSesion(Id);
     }
     return(null);
 }
 public override object ExecuteCommand(InCourseRequest inCourseRequest)
 {
     foreach (var id in Ids)
     {
         updateDependencies(id);
     }
     return(null);
 }
 public override object ExecuteCommand(InCourseRequest inCourseRequest)
 {
     ChatHelper.PersistirMensaje();
     ChatHelper.PublicarMensajes(new DTOChat()
     {
         IdChat = 1, Mensaje = "Nuevo mensaje"
     });
     return(ExecutionResult.ReturnInmediatelyAndQueueOthers(new { Ok = true, Message = "Mensaje" }));
 }
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            SistemaHelper.AbrirElDia((int)inCourseRequest.Identity_rid);

            int idEstadoSistema = context.EstadoSistema.Where(p1 => p1.IdEstadoSistema != 0).Max(r => r.IdEstadoSistema);
            var entidad         = context.EstadoSistema.Where(p => p.IdEstadoSistema == idEstadoSistema).FirstOrDefault();

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(entidad));
        }
        public override ExecutionResult ExecuteCommand(InCourseRequest inCourseRequest)
        {
            MAEUserSession usuarioSession = null;

            if (MAEUserSession.InstanciaCargada)
            {
                usuarioSession = MAEUserSession.Instancia;
            }
            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(ConsultaDeSaldos(usuarioSession.IdPersona)));
        }
Пример #17
0
        public override ExecutionResult ExecuteCommand(InCourseRequest inCourseRequest)
        {
            ResponseGenerico resultado = new ResponseGenerico();

            resultado.Resultado = (byte)eResult.Ok;
            string id = DistribuirPorEstado(Ordenes[0]);

            resultado.Detalle = JsonConvert.SerializeObject(Ordenes[0]);
            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(resultado));
        }
Пример #18
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            mercados = new List <string>();
            mercados.Add("MAE");


            Response resultado = ProcesamientoGenerica <string>(ReRegistrarse, mercados);

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(resultado));
        }
        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);
        }
Пример #20
0
        public static void FinishWithError(string command, Exception ex, InCourseRequest inCourseRequest, string codigo = "CMD-ERROR")
        {
            ILogCommandEntity log = LoggingService.Instance.GetLogCommand();

            log.CommandName   = command;
            log.Codigo        = codigo;
            log.StartDatetime = DateTime.Now;
            log.RequestId     = inCourseRequest.Id;
            log.Data          = ex;
            LoggingService.Instance.AgregarLog(log);
        }
Пример #21
0
        public static void Start(string command, object data, InCourseRequest inCourseRequest, string codigo = "CMD")
        {
            ILogCommandEntity log = LoggingService.Instance.GetLogCommand();

            log.CommandName   = command;
            log.Codigo        = codigo;
            log.StartDatetime = DateTime.Now;
            log.RequestId     = inCourseRequest.Id;
            log.Data          = data;
            LoggingService.Instance.AgregarLog(log);
        }
Пример #22
0
        public static void Start(Command command, InCourseRequest inCourseRequest)
        {
            ILogCommandEntity log = LoggingService.Instance.GetLogCommand();

            log.CommandName   = command.GetType().Name;
            log.Codigo        = "CMD";
            log.StartDatetime = DateTime.Now;
            log.RequestId     = inCourseRequest.Id;
            log.Data          = command;
            LoggingHelper.Instance.AgregarLog(log);
        }
Пример #23
0
        public static void FinishOK(Query query, QueryResult result, InCourseRequest inCourseRequest)
        {
            ILogCommandEntity log = LoggingService.Instance.GetLogCommand();

            log.CommandName   = query.Name;
            log.Codigo        = "QUERY-OK";
            log.StartDatetime = DateTime.Now;
            log.RequestId     = inCourseRequest.Id;
            log.Data          = result.Status;
            LoggingHelper.Instance.AgregarLog(log);
        }
Пример #24
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            AccionRolEntity request;

            foreach (var id in Ids)
            {
                request = (from d in context.AccionRol where d.IdAccionRol == id select d).Single();
                context.Remove(request);
            }
            return(null);
        }
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            PartyEntity request;

            foreach (var id in Ids)
            {
                request            = (from d in context.Persona where d.IdParty == id select d).Single();
                request.BajaLogica = true;
            }
            return(null);
        }
Пример #26
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            SistemaHelper.CerrarElDia((int)inCourseRequest.Identity_rid);

            OperacionHelper.ImpactarEnSaldosHistoricos(CachingManager.Instance.GetFechaSistema().FechaSistema);

            int idEstadoSistema = context.EstadoSistema.Where(p1 => p1.IdEstadoSistema != 0).Max(r => r.IdEstadoSistema);
            var entidad         = context.EstadoSistema.Where(p => p.IdEstadoSistema == idEstadoSistema).FirstOrDefault();

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(entidad));
        }
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            var entidad = (from d in context.Persona where d.IdParty == r_id select d);

            ValidateExiste(entidad.Count(), r_id, CodigosMensajes.FE_ACTUALIZA_NO_EXISTE);

            PartyEntity request = entidad.FirstOrDefault();

            request.IdPartyType             = IdPartyType;
            request.Name                    = Name;
            request.MarketCustomerNumber    = MarketCustomerNumber;
            request.DocumentNumber          = DocumentNumber;
            request.IdLegalPersonality      = IdLegalPersonality;
            request.TaxIdentificationNumber = TaxIdentificationNumber;

            /*if (IdTipoPersona == (byte)TipoPersona.CLIENTE && IdEmpresa.HasValue)
             *  request.IdEmpresa = IdEmpresa.Value;
             * else
             *  request.IdEmpresa = null;*/
            List <int> IdParties = GetParents(Parties);
            string     parties   = string.Empty;

            foreach (int IdPartyFather in IdParties)
            {
                var entidades = (from d in context.PartyHierarchyEntities where d.IdPartyHijo == r_id && d.IdPartyFather == IdPartyFather select d).ToList();
                if (entidades.Count() == 0)
                {
                    var padre = (from d in context.Persona where d.IdParty == IdPartyFather select d).FirstOrDefault();
                    if ((IdPartyType == (byte)TipoPersona.CLIENTE && (padre.IdPartyType == (byte)TipoPersona.NEGOCIADOR || padre.IdPartyType == (byte)TipoPersona.LIQUIDADOR)) ||
                        (IdPartyType == (byte)TipoPersona.NEGOCIADOR && padre.IdPartyType == (byte)TipoPersona.LIQUIDADOR))
                    {
                        PartyHierarchyEntity father = new PartyHierarchyEntity()
                        {
                            IdPartyFather = IdPartyFather,
                            Party         = request
                        };
                        this.AgregarAlContextoParaAlta(father);
                    }
                    else
                    {
                        parties += padre.Name + ", ";
                    }
                }
            }
            foreach (PartyHierarchyEntity r in context.PartyHierarchyEntities.Where(p => ((!Parties.Contains(p.IdPartyFather.ToString()) || string.IsNullOrEmpty(Parties)) && p.IdPartyHijo == r_id)))
            {
                context.Remove(r);
                request.PartyItems.Remove(r);
            }
            Message       = (IdParties.Count() == request.PartyItems.Count) ? "" : "No se pudo asociar la persona a algunas de las otras personas seleccionadas: " + parties.Substring(0, parties.Length - 2);
            request.Phone = Phone;

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(new { Ok = true, Message }));
        }
Пример #28
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            UsuarioEntity usuario = new UsuarioEntity();

            if (!string.IsNullOrEmpty(NombreUsuario))
            {
                usuario = Caching.CachingManager.Instance.GetUsuarioByUsername(NombreUsuario);
            }

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(GetTheme(usuario.IdUsuario)));
        }
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            int idEstadoSistema = context.EstadoSistema.Where(p1 => p1.IdEstadoSistema != 0).Max(r => r.IdEstadoSistema);
            var entidad         = context.EstadoSistema.Where(p => p.IdEstadoSistema == idEstadoSistema).FirstOrDefault();

            if (entidad != null)
            {
                entidad.EjecucionValidacion = false;
            }
            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(entidad));
        }
Пример #30
0
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            ConfirmacionManualEntity request;

            foreach (int id in Ids)
            {
                request = (from d in context.ConfirmacionManual where d.IdConfirmacionManual == id select d).FirstOrDefault();
                context.Remove(request);
            }
            return(null);
        }