예제 #1
0
        /// <summary>
        /// Método para retornar los documentos adjuntos por Contrato
        /// </summary>
        /// <param name="request">Filtro</param>
        /// <returns>Documentos adjuntos al contrato</returns>
        public ProcessResult <List <ConsultaAdjuntoResponse> > BuscarConsultaAdjunto(ConsultaAdjuntoRequest request)
        {
            ProcessResult <List <ConsultaAdjuntoResponse> > resultado = new ProcessResult <List <ConsultaAdjuntoResponse> >();

            try
            {
                var result = consultaAdjuntoLogicRepository.BuscarConsultaAdjunto(
                    request.CodigoConsultaAdjunto,
                    request.CodigoConsulta,
                    request.CodigoArchivo,
                    request.NombreArchivo,
                    DatosConstantes.EstadoRegistro.Activo
                    );
                resultado.Result = new List <ConsultaAdjuntoResponse>();

                foreach (var item in result)
                {
                    resultado.Result.Add(ConsultaAdapter.ObtenerConsultaAdjuntoResponseDeLogic(item, request.UsuarioSession));
                }
            }
            catch (Exception ex)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <ConsultaService>(ex);
            }
            return(resultado);
        }
예제 #2
0
        /// <summary>
        /// Obtiene la entidad response ConsultaAdjuntoEntity de la Entidad ConsultaAdjuntoRequest
        /// </summary>
        /// <param name="request">Request del Documento Adjunto al Contrato</param>
        /// <returns>Entity del Documento Adjunto al Contrato</returns>
        public static ConsultaAdjuntoEntity ObtenerConsultaAdjuntoEntityDeRequest(ConsultaAdjuntoRequest request)
        {
            ConsultaAdjuntoEntity response = new ConsultaAdjuntoEntity();

            response.CodigoConsultaAdjunto = request.CodigoConsultaAdjunto.Value;
            response.CodigoConsulta        = request.CodigoConsulta.Value;
            response.CodigoArchivo         = request.CodigoArchivo.Value;
            response.NombreArchivo         = request.NombreArchivo;
            response.RutaArchivoSharePoint = request.RutaArchivoSharePoint;
            return(response);
        }
예제 #3
0
        /// <summary>
        /// Método que elimina los documentos adjuntos al Contrato
        /// </summary>
        /// <param name="request">Filtro</param>
        /// <returns>Documentos adjuntos al contrato</returns>
        public ProcessResult <string> EliminarConsultaAdjunto(ConsultaAdjuntoRequest request)
        {
            ProcessResult <string> resultado = new ProcessResult <string>();

            try
            {
                var contratoDocumentoAdjuntoEntity = consultaAdjuntoEntityRepository.GetById(request.CodigoConsultaAdjunto.Value);

                #region Grabar registro del documento adjunto
                consultaAdjuntoEntityRepository.Eliminar(request.CodigoConsultaAdjunto);
                consultaAdjuntoEntityRepository.GuardarCambios();
                #endregion
            }
            catch (Exception ex)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <ContratoService>(ex);
            }
            return(resultado);
        }
예제 #4
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);
        }
예제 #5
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);
        }