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