/// <summary> /// Retorna la ruta del directorio SharePoint para escribir el archivo. /// </summary> /// <param name="codigoContrato">Código del contrato</param> /// <param name="nombreUnidadOperativa">código de la unidad operativa</param> /// <param name="nombreFile">Nombre del archivo</param> /// <param name="fechaInicioVigencia">Fecha de Inicio de Vigencia</param> /// <param name="esAdjunto">Indica que un documento es adjunto</param> /// <param name="lstPrmRepositorioShp">Lista del repositorio de SharePoint</param> /// <returns>Ruta de directorio de sharepoint</returns> public ProcessResult <string> RetornaDirectorioFile(Guid codigoConsulta, string nombreFile, DateTime?fechaInicioVigencia = null, bool esAdjunto = false, List <CodigoValorResponse> lstPrmRepositorioShp = null) { ProcessResult <string> resultado = new ProcessResult <string>(); string lsValue = string.Empty, directorioSHP = string.Empty;; try { int Anio = 0, Mes = 0; string NombreMes = string.Empty; Anio = DateTime.Now.Year; Mes = DateTime.Now.Month; NombreMes = Utilitario.ObtenerNombreMes(Mes); List <CodigoValorResponse> lstRepositorioSharePointSGC = new List <CodigoValorResponse>(); if (lstPrmRepositorioShp == null) { var RepositorioSharePoint = politicaService.ListarRepositorioSharePointSGC(null, "3"); lstRepositorioSharePointSGC = RepositorioSharePoint.Result; } else { lstRepositorioSharePointSGC = lstPrmRepositorioShp; } foreach (CodigoValorResponse item in lstRepositorioSharePointSGC) { lsValue = string.Empty; if (item.Codigo.ToString().Equals("01")) { lsValue = item.Valor.ToString().Replace("[ANIO]", Anio.ToString()); directorioSHP += lsValue + "/"; } if (item.Codigo.ToString().Equals("02")) { lsValue = item.Valor.ToString().Replace("[MES]", Mes.ToString("d2")); lsValue = lsValue.Replace("[NOMBRE_MES]", NombreMes); lsValue = lsValue.Replace("[NOMBRE_UNIDAD_OPERATIVA]", "Consultas") + "/"; directorioSHP += lsValue + nombreFile; } } resultado.Result = directorioSHP + (esAdjunto ? "/Adjunto" : string.Empty); } catch (Exception ex) { LogBL.grabarLogError(ex);//GRC16062015 resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ContratoService>(ex); } return(resultado); }
/// <summary> /// Metodo que retorna los bytes para la generación del archivo PDF. /// </summary> /// <param name="codigoContrato">Código del Contrato</param> /// <param name="codigoContratoEstadio">código del Contrato - estadio.</param> /// <param name="NombreArchivoContrato">Nombre del archivo a descargar</param> /// <returns>Bytes para generar pdf</returns> public ProcessResult <ConsultaAdjuntoResponse> ObtenerArchivoAdjunto(ConsultaAdjuntoRequest request) { ProcessResult <ConsultaAdjuntoResponse> resultado = new ProcessResult <ConsultaAdjuntoResponse>(); try { var consultaAdjuntoResponse = new ConsultaAdjuntoResponse(); var documentoAdjunto = consultaAdjuntoEntityRepository.GetById(request.CodigoConsultaAdjunto); //Obtener documento del SharePoint, consultamos la ruta. string mensajeError = string.Empty; ProcessResult <Object> contenidoArchivo = new ProcessResult <Object>(); string listName = ""; string[] rutaArchivo = documentoAdjunto.RutaArchivoSharePoint.Split(new char[] { '/' }); var codigoArchivo = documentoAdjunto.CodigoArchivo; listName = rutaArchivo[0]; contenidoArchivo = sharePointService.DescargaArchivoPorId(ref mensajeError, codigoArchivo, listName); if (!String.IsNullOrEmpty(mensajeError)) { //resultado.Result = mensajeError; resultado.IsSuccess = false; } else { consultaAdjuntoResponse.NombreArchivo = documentoAdjunto.NombreArchivo; consultaAdjuntoResponse.ContenidoArchivo = contenidoArchivo.Result; resultado.Result = consultaAdjuntoResponse; } } catch (Exception ex) { LogBL.grabarLogError(ex); //resultado.Result = ex.Message; resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ConsultaService>(ex); } return(resultado); }
/// <summary> /// Realiza la búsqueda de consultas /// </summary> /// <param name="filtro">Filtro de búsqueda</param> /// <returns>Listado de contratos</returns> public ProcessResult <List <ConsultaResponse> > ListadoConsulta(ConsultaRequest filtro) { ProcessResult <List <ConsultaResponse> > resultado = new ProcessResult <List <ConsultaResponse> >(); try { Guid?CodigoRemitente = (filtro.CodigoRemitente != null && filtro.CodigoRemitente != "") ? new Guid(filtro.CodigoRemitente) : (Guid?)null; Guid?CodigoDestinatario = (filtro.CodigoDestinatario != null && filtro.CodigoDestinatario != "") ? new Guid(filtro.CodigoDestinatario) : (Guid?)null; Guid?CodigoUnidadOperativa = (filtro.CodigoUnidadOperativa != null && filtro.CodigoUnidadOperativa != "") ? new Guid(filtro.CodigoUnidadOperativa) : (Guid?)null; Guid?CodigoConsulta = (filtro.CodigoConsulta != null && filtro.CodigoConsulta != "") ? new Guid(filtro.CodigoConsulta) : (Guid?)null; Guid?CodigoUsuarioSesion = (filtro.CodigoUsuarioSesion != null && filtro.CodigoUsuarioSesion != "") ? new Guid(filtro.CodigoUsuarioSesion) : (Guid?)null; List <ConsultaLogic> listado = consultaLogicRepository.ListaConsulta(CodigoRemitente, CodigoDestinatario, filtro.Tipo, CodigoUnidadOperativa, filtro.CodigoArea, CodigoConsulta, CodigoUsuarioSesion, filtro.EstadoConsulta, filtro.NumeroPagina, filtro.RegistrosPagina); resultado.Result = new List <ConsultaResponse>(); var resultadoTrabajador = trabajadorService.BuscarTrabajadorDatoMinimo(new TrabajadorRequest()).Result; var listaArea = politicaService.ListarArea().Result; var listEstado = politicaService.ListarEstadoConsulta().Result; var tipo = politicaService.ListarTipoConsulta().Result; foreach (var registro in listado) { var listadoConsulta = ConsultaAdapter.ObtenerConsultaResponse(registro, listaArea, listEstado, tipo, new Guid(filtro.CodigoUsuarioSesion), resultadoTrabajador); resultado.Result.Add(listadoConsulta); } } catch (Exception ex) { LogBL.grabarLogError(ex); resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ContratoService>(ex); } return(resultado); }
/// <summary> /// Registra o actualiza una plantilla /// </summary> /// <param name="data">Datos a registrar</param> /// <returns>Indicador con el resultado de la operación</returns> public ProcessResult <object> RegistrarPlantilla(PlantillaRequerimientoRequest data) { ProcessResult <object> resultado = new ProcessResult <object>(); try { PlantillaRequerimientoEntity entidad = PlantillaRequerimientoAdapter.RegistrarPlantilla(data); DateTime fechaActual = DateTime.Now.Date; bool existeRepetido = false; if (!string.IsNullOrWhiteSpace(data.FechaInicioVigenciaString)) { var resultadoValidacion = plantillaRequerimientoLogicRepository.BuscarPlantillaTipo(Convert.ToBoolean(data.IndicadorAdhesion)); existeRepetido = resultadoValidacion.Any(x => x.CodigoPlantilla != entidad.CodigoPlantilla && x.FechaInicioVigenciaDate == entidad.FechaInicioVigencia); if (existeRepetido) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaRequerimientoService>(MensajesSistema.PlantillaExiste); } else { if (data.CodigoPlantilla == null && data.CodigoPlantillaCopiar == null) { entidad.CodigoEstadoVigencia = DatosConstantes.EstadoVigencia.Proximo; plantillaRequerimientoEntityRepository.Insertar(entidad, entornoActualAplicacion); } else if (data.CodigoPlantillaCopiar != null) { entidad.CodigoEstadoVigencia = DatosConstantes.EstadoVigencia.Proximo; plantillaRequerimientoEntityRepository.CopiarPlantilla(new Guid(data.CodigoPlantillaCopiar), data.Descripcion, Convert.ToDateTime(data.FechaInicioVigenciaString), entornoActualAplicacion.UsuarioSession, entornoActualAplicacion.Terminal); } else { var entidadSincronizar = plantillaRequerimientoEntityRepository.GetById(entidad.CodigoPlantilla); entidadSincronizar.Descripcion = entidad.Descripcion; entidadSincronizar.IndicadorAdhesion = entidad.IndicadorAdhesion; entidadSincronizar.FechaInicioVigencia = entidad.FechaInicioVigencia; plantillaRequerimientoEntityRepository.Editar(entidadSincronizar, entornoActualAplicacion); } plantillaRequerimientoEntityRepository.GuardarCambios(); plantillaRequerimientoEntityRepository.ActualizarPlantillaEstadoVigencia(); resultado.Result = data; } } else { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaRequerimientoService>(MensajesSistema.PlantillaFechaInicioVigenciIncorrecto); } } catch (Exception e) { LogBL.grabarLogError(new Exception("RegistrarPlantillaRequerimiento")); LogBL.grabarLogError(e.GetBaseException()); resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaRequerimientoService>(e.GetBaseException().Message); } return(resultado); }
/// <summary> /// Registra o actualiza una plantilla /// </summary> /// <param name="data">Datos a registrar</param> /// <returns>Indicador con el resultado de la operación</returns> public ProcessResult <object> RegistrarPlantilla(PlantillaRequest data) { ProcessResult <object> resultado = new ProcessResult <object>(); try { PlantillaEntity entidad = PlantillaAdapter.RegistrarPlantilla(data); DateTime fechaActual = DateTime.Now.Date; bool existeRepetido = false; if (!string.IsNullOrWhiteSpace(data.FechaInicioVigenciaString)) { var resultadoValidacion = plantillaLogicRepository.BuscarPlantillaTipo(data.CodigoTipoContrato, data.CodigoTipoDocumentoContrato, Convert.ToBoolean(data.IndicadorAdhesion)); existeRepetido = resultadoValidacion.Any(x => x.CodigoPlantilla != entidad.CodigoPlantilla && x.FechaInicioVigenciaDate == entidad.FechaInicioVigencia); if (existeRepetido) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaService>(MensajesSistema.PlantillaExiste); } else { if (data.CodigoPlantilla == null && data.CodigoPlantillaCopiar == null) { entidad.CodigoEstadoVigencia = DatosConstantes.EstadoVigencia.Proximo; plantillaEntityRepository.Insertar(entidad, entornoActualAplicacion); } else if (data.CodigoPlantillaCopiar != null) { entidad.CodigoEstadoVigencia = DatosConstantes.EstadoVigencia.Proximo; plantillaEntityRepository.CopiarPlantilla(new Guid(data.CodigoPlantillaCopiar), data.Descripcion, data.CodigoTipoContrato, data.CodigoTipoDocumentoContrato, Convert.ToDateTime(data.FechaInicioVigenciaString), entornoActualAplicacion.UsuarioSession, entornoActualAplicacion.Terminal, data.EsMayorMenor); } else { //var contratosAsociadoPlantilla = listadoContratoLogicRepository.BuscarListadoContrato(null, null, entidad.CodigoPlantilla, null, // null, null, DatosConstantes.EstadoContrato.Edicion, // null, null, null, null, null, null, null, // DatosConstantes.CodigoEstadoEdicion.EdicionParcial,null, 1, -1).FirstOrDefault(); //if (contratosAsociadoPlantilla == null) //{ var entidadSincronizar = plantillaEntityRepository.GetById(entidad.CodigoPlantilla); entidadSincronizar.Descripcion = entidad.Descripcion; entidadSincronizar.CodigoTipoDocumentoContrato = entidad.CodigoTipoDocumentoContrato; entidadSincronizar.CodigoTipoContrato = entidad.CodigoTipoContrato; entidadSincronizar.IndicadorAdhesion = entidad.IndicadorAdhesion; entidadSincronizar.FechaInicioVigencia = entidad.FechaInicioVigencia; //INICIO: Agregado por Julio Carrera - Norma Contable entidadSincronizar.Es_MayorMenor = entidad.Es_MayorMenor; //FIN: Agregado por Julio Carrera - Norma Contable plantillaEntityRepository.Editar(entidadSincronizar, entornoActualAplicacion); //} //else //{ // resultado.IsSuccess = false; // resultado.Exception = new ApplicationLayerException<PlantillaService>(MensajesSistema.PlantillaNoModificar); //} } plantillaEntityRepository.GuardarCambios(); plantillaEntityRepository.ActualizarPlantillaEstadoVigencia(); resultado.Result = data; } } else { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaService>(MensajesSistema.PlantillaFechaInicioVigenciIncorrecto); } } catch (Exception e) { LogBL.grabarLogError(new Exception("RegistrarPlantilla")); LogBL.grabarLogError(e.GetBaseException()); resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <PlantillaService>(e.GetBaseException().Message); } return(resultado); }
/// <summary> /// Método para registra los documentos adjuntos de la consulta /// </summary> /// <param name="request">Filtro</param> /// <returns>Documentos adjuntos al contrato</returns> public ProcessResult <string> RegistrarConsultaAdjunto(ConsultaAdjuntoRequest request) { ProcessResult <string> resultado = new ProcessResult <string>(); try { //var entConsulta = consultaEntityRepository.GetById(request.CodigoConsulta); //Registro de información string hayError = string.Empty; //var unidadOperativa = unidadOperativaService.BuscarUnidadOperativa(new FiltroUnidadOperativa() { CodigoUnidadOperativa = entConsulta.CodigoUnidadOperativa.ToString() }); request.CodigoConsultaAdjunto = Guid.NewGuid(); #region InformacionRepositorioSharePoint string nombreArchivo = string.Format("{0}.{1}", request.CodigoConsultaAdjunto.ToString(), request.ExtencionArchivo); ProcessResult <string> miDirectorio = RetornaDirectorioFile(request.CodigoConsulta.Value, nombreArchivo, null, true); string directorioDestino = miDirectorio.Result.ToString(); string[] nivelCarpeta = directorioDestino.Split(new char[] { '/' }); string nombreLista = nivelCarpeta[0]; string nombreCarpeta = string.Format("{0}/{1}/{2}", nivelCarpeta[1], nivelCarpeta[2], nivelCarpeta[3]); #endregion #region GrabarContenidoAdjuntoSHP MemoryStream msFile = new MemoryStream(request.ArchivoAdjunto); if (msFile != null) { var regSHP = sharePointService.RegistraArchivoSharePoint(ref hayError, nombreLista, nombreCarpeta, nombreArchivo, msFile); if (Convert.ToInt32(regSHP.Result) > 0 && hayError == string.Empty) { request.CodigoArchivo = Convert.ToInt32(regSHP.Result); request.RutaArchivoSharePoint = directorioDestino; } else { if (Convert.ToInt32(regSHP.Result) > 0) { var fileShpDelete = sharePointService.EliminaArchivoSharePoint(new List <int>() { Convert.ToInt32(regSHP.Result) }, nombreLista, ref hayError); } resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ContratoService>("Ocurrió un problema al registra el archivo en el SharePoint: " + hayError); LogBL.grabarLogError(new Exception(hayError)); return(resultado); } } else { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ContratoService>("Ocurrió un problema al subir el documento."); LogBL.grabarLogError(new Exception("Ocurrió un problema al subir el documento")); return(resultado); } #endregion #region Grabar registro del documento adjunto consultaAdjuntoEntityRepository.Insertar(ConsultaAdapter.ObtenerConsultaAdjuntoEntityDeRequest(request)); consultaAdjuntoEntityRepository.GuardarCambios(); if (request.CodigoConsultaRelacionado.HasValue) { request.CodigoConsultaAdjunto = Guid.NewGuid(); request.CodigoConsulta = request.CodigoConsultaRelacionado.Value; consultaAdjuntoEntityRepository.Insertar(ConsultaAdapter.ObtenerConsultaAdjuntoEntityDeRequest(request)); consultaAdjuntoEntityRepository.GuardarCambios(); } #endregion } catch (Exception ex) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <ConsultaService>(ex); } return(resultado); }