public RegistraDocumentoResponseDTO RegistraDocumento(RegistraDocumentoRequestDTO request, bool esMasivo = false) { long result = 0; RegistraDocumentoResponseDTO response = new RegistraDocumentoResponseDTO(); CoreBL coreBL = new CoreBL(); try { var contextoParaBaseDatos = new ContextoParaBaseDatos(ConstantesDB.Transmisiones); var repo = new RepositorioDocumento(contextoParaBaseDatos); Mapper.CreateMap <DocumentoDetalleCargaDTO, DocumentoDetalleCarga>(); Mapper.CreateMap <DocumentoDetalleClienteDTO, DocumentoDetalleCliente>(); Mapper.CreateMap <DocumentoDetalleFleteDTO, DocumentoDetalleFlete>(); var requestBE = Helper.MiMapper <RegistraDocumentoRequestDTO, RegistraDocumento>(request); var request2 = new RequestConsultarDocumento(); #region Validacion request2.CodigoItinerario = requestBE.CodigoItinerario; request2.CodigoPuertoOrigenDocumento = requestBE.CodigoPuertoOrigenDocumento; request2.CodigoPuertoEmbarqueDocumento = requestBE.CodigoPuertoEmbarqueDocumento; request2.CodigoPuertoDescargaDocumento = requestBE.CodigoPuertoDescargaDocumento; request2.CodigoPuertoFinalDocumento = requestBE.CodigoPuertoFinalDocumento; request2.CodigoLineaNaviera = requestBE.CodigoLineaNaviera; request2.CodigoAduana = requestBE.CodigoAduana; request2.NumeroDocumento = requestBE.NumeroDocumento; var Validar = repo.ValidarDocumento(request2); if (Validar.ListaDocumento.FirstOrDefault() != null) { response.Result.Satisfactorio = false; response.Result.CodigoError = "1"; response.Result.Mensaje = "El BL ya se encuentra registrado"; Validar.ListaDocumento.ForEach(x => { response.Result.Mensajes.Add(new Result { Mensaje = x.NumeroDocumento, 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.CodigoDocumento = repo.RegistrarDocumento(requestBE); } else //APLICA PARA UPDATE Y DELETE { result = repo.ModificarDocumento(requestBE); } #region DETALLE if (!result.Equals(0)) { requestBE.ListaDocumentoDetalleCarga.ForEach(x => { x.CodigoDocumento = requestBE.CodigoDocumento; }); requestBE.ListaDocumentoDetalleCliente.ForEach(x => { x.CodigoDocumento = requestBE.CodigoDocumento; }); requestBE.ListaDocumentoDetalleFlete.ForEach(x => { x.CodigoDocumento = requestBE.CodigoDocumento; }); if (repo.RegistrarDocumentoDetalleCarga(requestBE.ListaDocumentoDetalleCarga) && (request.Accion != Accion.Insertar.GetDescription())) { ; } if (repo.RegistrarDocumentoDetalleCliente(requestBE.ListaDocumentoDetalleCliente) && (request.Accion != Accion.Insertar.GetDescription())) { ; } if (repo.RegistrarDocumentoDetalleFlete(requestBE.ListaDocumentoDetalleFlete) && (request.Accion != Accion.Insertar.GetDescription())) { ; } } #endregion Transaccion.Complete(); response.CodigoDocumento = requestBE.CodigoDocumento; } //} } 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); }
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); }