public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            PartyEntity request = new PartyEntity();

            request.IdPartyType             = IdPartyType;
            request.Name                    = Name;
            request.MarketCustomerNumber    = MarketCustomerNumber;
            request.DocumentNumber          = DocumentNumber;
            request.IdLegalPersonality      = IdLegalPersonality;
            request.TaxIdentificationNumber = TaxIdentificationNumber;
            List <int> listParties = GetParents(Parties);

            foreach (int IdFather in listParties)
            {
                var IdPartyTypeFather = (from d in context.Persona where d.IdParty == IdFather select d).FirstOrDefault().IdPartyType;
                if ((IdPartyType == (byte)TipoPersona.CLIENTE && (IdPartyTypeFather == (byte)TipoPersona.NEGOCIADOR || IdPartyTypeFather == (byte)TipoPersona.LIQUIDADOR)) ||
                    (IdPartyType == (byte)TipoPersona.NEGOCIADOR && IdPartyTypeFather == (byte)TipoPersona.LIQUIDADOR))
                {
                    PartyHierarchyEntity father = new PartyHierarchyEntity()
                    {
                        IdPartyFather = IdFather,
                        Party         = request
                    };
                    request.PartyItems.Add(father);
                }
            }
            Message       = (listParties.Count() == request.PartyItems.Count) ? "" : "La nueva persona no pudo ser asociada a algunas de las otras personas.";
            request.Phone = Phone;

            this.AgregarAlContextoParaAlta(request);
            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(new { Ok = true, Message }));
        }
        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 }));
        }
Esempio n. 3
0
        public static void Login(InfoCliente infoCliente, UsuarioEntity datosLogin, bool isPassHash = false, TipoAplicacion idAplicacion = TipoAplicacion.ORDENES)
        {
            UsuarioEntity usuario                = ValidateUser(datosLogin.Username);
            UsuarioEntity partyFather            = new UsuarioEntity();
            var           configuracionSeguridad = CachingManager.Instance.GetConfiguracionSeguridad();

            ValidarAccesoAlSistema(usuario.IdUsuario);
            string userPass = isPassHash ? datosLogin.Pass : MAETools.HashMD5(datosLogin.Pass);

            if (usuario.Pass != userPass)
            {
                ManejarErrorDeAutenticacion(usuario, configuracionSeguridad, idAplicacion);
            }
            ValidarReseteoPassword(usuario);
            ValidarDiasCambioPassword(configuracionSeguridad.DiasCambioPassword, usuario);
            UserHelper.ValidaUsuarioActivo(configuracionSeguridad.MaximoDiasInactividad, usuario);

            if (usuario.Expiracion.HasValue && usuario.Expiracion.Value.Date <= DateTime.Now)
            {
                UserHelper.BlockUsuarios(usuario.IdUsuario, (byte)LogCodigoAccionSeguridad.UsuarioBloqueadoPorCtaExpirada);
                AdministradorControlErrores.EnviarExcepcion(CodeMensajes.ERR_CUENTA_EXPIRADA, false, usuario.Username);
            }

            if (usuario.Proceso)
            {
                SessionHelper.InitSession(infoCliente, usuario, idAplicacion);
            }

            if (datosLogin.Agencia != null)
            {
                using (OrdenesContext mcc = new OrdenesContext())
                {
                    partyFather = (from d in mcc.Usuario where d.Username.Equals(datosLogin.Agencia) select d).FirstOrDefault();
                    PartyHierarchyEntity ph = (from d in mcc.PartyHierarchyEntities where d.IdPartyFather.Equals(partyFather.IdPersona) && d.IdPartyHijo.Equals(usuario.IdPersona) select d).FirstOrDefault();
                    if (ph == null)
                    {
                        AdministradorControlErrores.EnviarExcepcion(CodeMensajes.ERR_USUARIO_NO_HABILITADO_AGENCIA, false, usuario.Username, usuario.Agencia);
                    }
                }
            }
        }