Example #1
0
        public RegistraPersonaResponseDTO RegistrarPersona(RegistraPersonaRequestDTO request)
        {
            var response = new RegistraPersonaResponseDTO();

            try
            {
                response = (new PersonaBL()).RegistraPersona(request);
            }
            catch (Exception ex)
            {
                ManejadorExcepciones.PublicarExcepcion(ex, PoliticaExcepcion.ServicioWCF);
            }
            return(response);
        }
Example #2
0
        public RegistraPersonaResponseDTO RegistraPersona(RegistraPersonaRequestDTO request, bool esMasivo = false)
        {
            long result = 0;

            RegistraPersonaResponseDTO response = new RegistraPersonaResponseDTO();
            CoreBL coreBL = new CoreBL();

            try
            {
                var contextoParaBaseDatos = new ContextoParaBaseDatos(ConstantesDB.Transmisiones);
                var repo = new RepositorioPersona(contextoParaBaseDatos);

                Mapper.CreateMap <PersonaRolDTO, PersonaRol>();

                var requestBE = Helper.MiMapper <RegistraPersonaRequestDTO, RegistraPersona>(request);

                var request2 = new RequestConsultarPersona();
                #region Validacion

                request2.CodigoPersona          = requestBE.CodigoPersona;
                request2.CodigoTipoDocumento    = requestBE.CodigoTipoDocumento;
                request2.NumeroDocumentoPersona = requestBE.NumeroDocumentoPersona;

                var Validar = repo.ValidarPersona(request2);

                if (Validar.ListaPersona.FirstOrDefault() != null)
                {
                    response.Result.Satisfactorio = false;
                    response.Result.CodigoError   = "1";
                    response.Result.Mensaje       = "La persona con dicho Numero de Documento ya se encuentra registrado";
                    Validar.ListaPersona.ForEach(x =>
                    {
                        response.Result.Mensajes.Add(new Result {
                            Mensaje = x.NumeroDocumentoPersona, Satisfactorio = false, CodigoError = "1"
                        });
                    });

                    return(response);
                }

                #endregion

                if (request.Accion.Equals(Accion.Insertar.GetDescription()))
                {
                    requestBE.EstadoRegistro = true;
                }

                using (TransactionScope Transaccion = new TransactionScope())
                {
                    if (request.Accion.Equals(Accion.Insertar.GetDescription()))
                    {
                        result = requestBE.CodigoPersona = repo.RegistrarPersona(requestBE);
                    }
                    else //APLICA PARA UPDATE Y DELETE
                    {
                        result = repo.ModificarPersona(requestBE);
                    }

                    #region DETALLE

                    if (!result.Equals(0))
                    {
                        requestBE.ListaPersonaRol.ForEach(x =>
                        {
                            x.CodigoPersona = requestBE.CodigoPersona;
                        });

                        if (repo.RegistrarPersonaRol(requestBE.ListaPersonaRol) && (request.Accion != Accion.Insertar.GetDescription()))
                        {
                            ;
                        }
                    }

                    #endregion

                    Transaccion.Complete();

                    response.CodigoPersona = requestBE.CodigoPersona;
                }
            }
            catch (Exception ex)
            {
                response.Result = new Result {
                    IdError = Guid.NewGuid(), Satisfactorio = false, Mensaje = "Ocurrio un problema interno en el servicio"
                };
                ManejadorExcepciones.PublicarExcepcion(ex, PoliticaExcepcion.LogicaNegocio);
            }
            return(response);
        }