Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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);
        }