Example #1
0
        public async Task <FileResult> Download(string id)
        {
            var response = await apiServicio.SeleccionarAsync <Response>(id, new Uri(WebApp.BaseAddress),
                                                                         "api/MaterialesInduccion");

            var materialinduccion = JsonConvert.DeserializeObject <MaterialInduccion>(response.Resultado.ToString());
            var d = new MaterialInduccion
            {
                IdMaterialInduccion = Convert.ToInt32(id),
                Url = materialinduccion.Url
            };

            var ext = Path.GetExtension(materialinduccion.Url);

            if (ext != "")
            {
                var responseGetFile = await apiServicio.ObtenerElementoAsync(d,
                                                                             new Uri(WebApp.BaseAddress),
                                                                             "api/MaterialesInduccion/GetFile");

                var m = JsonConvert.DeserializeObject <DocumentoInstitucionalTransfer>(responseGetFile.Resultado.ToString());

                //var fileName = $"{ responseGetFile.Message}.pdf";


                var    fileName = string.Format("{0}{1}", $"{ responseGetFile.Message}", ext);
                string mime     = MimeKit.MimeTypes.GetMimeType(fileName);
                return(File(m.Fichero, mime, fileName));
            }
            else
            {
                return(File("", ""));
            }
        }
        // POST: api/BasesDatos
        private async Task <MaterialInduccion> InsertarMaterialInduccion(MaterialInduccion MaterialInduccion)
        {
            db.MaterialInduccion.Add(MaterialInduccion);
            await db.SaveChangesAsync();

            return(MaterialInduccion);
        }
        public async Task <IActionResult> Edit(string id, MaterialInduccion documentoInformacionInstitucional)
        {
            Response response = new Response();

            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    response = await apiServicio.EditarAsync(id, documentoInformacionInstitucional, new Uri(WebApp.BaseAddress),
                                                             "api/MaterialesInduccion");

                    if (response.IsSuccess)
                    {
                        await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                        {
                            ApplicationName      = Convert.ToString(Aplicacion.WebAppTh),
                            EntityID             = string.Format("{0} : {1}", "materia de inducción", id),
                            LogCategoryParametre = Convert.ToString(LogCategoryParameter.Edit),
                            LogLevelShortName    = Convert.ToString(LogLevelParameter.ADV),
                            Message  = "Se ha actualizado un materia de inducción",
                            UserName = "******"
                        });

                        return(RedirectToAction("Index"));
                    }
                    ViewData["Error"] = response.Message;
                    return(View(documentoInformacionInstitucional));
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                {
                    ApplicationName      = Convert.ToString(Aplicacion.WebAppTh),
                    Message              = "Editando un materia de inducción",
                    ExceptionTrace       = ex.Message,
                    LogCategoryParametre = Convert.ToString(LogCategoryParameter.Edit),
                    LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                    UserName             = "******"
                });

                return(BadRequest());
            }
        }
        public async Task <Response> DeleteFile(MaterialInduccion modelo)
        {
            try
            {
                var ext = Path.GetExtension(modelo.Url);

                var respuestaFile = uploadFileService.DeleteFile("MaterialInduccion", Convert.ToString(modelo.IdMaterialInduccion), ext);

                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.BorradoSatisfactorio,
                    Resultado = respuestaFile,
                });
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Error,
                });
            }
        }
        private Response ExisteMaterialInduccion(MaterialInduccion materialInduccion)
        {
            var MaterialInduccionrespuesta = db.MaterialInduccion
                                             .Where(p =>
                                                    p.Titulo.ToUpper().TrimStart().TrimEnd() == materialInduccion.Titulo.ToUpper().TrimStart().TrimEnd() &&
                                                    p.Descripcion.ToUpper().TrimStart().TrimEnd() == materialInduccion.Descripcion.ToUpper().TrimStart().TrimEnd()
                                                    ).FirstOrDefault();

            if (MaterialInduccionrespuesta != null)
            {
                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.ExisteRegistro,
                    Resultado = null,
                });
            }

            return(new Response
            {
                IsSuccess = false,
                Resultado = MaterialInduccionrespuesta,
            });
        }
        public async Task <Response> GetFile([FromBody] MaterialInduccion documentoInformacionInstitucional)
        {
            var ext = Path.GetExtension(documentoInformacionInstitucional.Url);

            try
            {
                var respuestaFile = uploadFileService.GetFile("MaterialInduccion", Convert.ToString(documentoInformacionInstitucional.IdMaterialInduccion), ext);

                var documentoIstitucional = await db.MaterialInduccion.Where(x => x.IdMaterialInduccion == documentoInformacionInstitucional.IdMaterialInduccion).FirstOrDefaultAsync();

                return(new Response
                {
                    IsSuccess = true,
                    Message = documentoIstitucional.Titulo,
                    Resultado = respuestaFile,
                });
            }
            catch (Exception ex)
            {
                await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                {
                    ApplicationName      = Convert.ToString(Aplicacion.SwTH),
                    ExceptionTrace       = ex.Message,
                    Message              = Mensaje.Excepcion,
                    LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical),
                    LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                    UserName             = "",
                });

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Error,
                });
            }
        }
        public async Task <IActionResult> Edit(string id, MaterialInduccion documentoInformacionInstitucional)
        {
            Response response = new Response();

            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    response = await apiServicio.EditarAsync(id, documentoInformacionInstitucional, new Uri(WebApp.BaseAddress), "api/MaterialesInduccion");

                    if (response.IsSuccess)
                    {
                        return(RedirectToAction("Index"));
                    }
                    ViewData["Error"] = response.Message;
                    return(View(documentoInformacionInstitucional));
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
        public async Task <Response> Post([FromBody] DocumentoInstitucionalTransfer documentoInstitucionalTransfer)
        {
            MaterialInduccion seleccionado = new MaterialInduccion();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = ""
                    });
                }

                var documentoInstitucional = new MaterialInduccion
                {
                    Titulo      = documentoInstitucionalTransfer.Nombre,
                    Descripcion = documentoInstitucionalTransfer.Descripcion
                };

                var respuesta = ExisteMaterialInduccion(documentoInstitucional);
                if (!respuesta.IsSuccess)
                {
                    if (documentoInstitucionalTransfer.Url == null)
                    {
                        documentoInstitucional = await InsertarMaterialInduccion(documentoInstitucional);

                        await uploadFileService.UploadFile(documentoInstitucionalTransfer.Fichero, "MaterialInduccion", Convert.ToString(documentoInstitucional.IdMaterialInduccion), documentoInstitucionalTransfer.Extension);


                        seleccionado     = db.MaterialInduccion.Find(documentoInstitucional.IdMaterialInduccion);
                        seleccionado.Url = string.Format("{0}/{1}{2}", "MaterialInduccion", Convert.ToString(documentoInstitucional.IdMaterialInduccion), documentoInstitucionalTransfer.Extension);
                        db.MaterialInduccion.Update(seleccionado);
                        db.SaveChanges();
                    }
                    else
                    {
                        documentoInstitucional = await InsertarMaterialInduccion(documentoInstitucional);

                        seleccionado     = db.MaterialInduccion.Find(documentoInstitucional.IdMaterialInduccion);
                        seleccionado.Url = documentoInstitucionalTransfer.Url;
                        db.MaterialInduccion.Update(seleccionado);
                        db.SaveChanges();
                    }

                    return(new Response
                    {
                        IsSuccess = true,
                        Message = Mensaje.Satisfactorio,
                        Resultado = documentoInstitucional
                    });
                }

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.ExisteRegistro
                });
            }
            catch (Exception ex)
            {
                await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                {
                    ApplicationName      = Convert.ToString(Aplicacion.SwTH),
                    ExceptionTrace       = ex.Message,
                    Message              = Mensaje.Excepcion,
                    LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical),
                    LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                    UserName             = "",
                });

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Error,
                });
            }
        }
        public async Task <Response> PutMaterialInduccion([FromRoute] int id, [FromBody] MaterialInduccion documentoInformacionInstitucional)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.ModeloInvalido
                    });
                }

                var existe = ExisteMaterialInduccion(documentoInformacionInstitucional);
                if (existe.IsSuccess)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.ExisteRegistro,
                    });
                }

                var documentoInformacionInstitucionalActualizar = await db.MaterialInduccion.Where(x => x.IdMaterialInduccion == id).FirstOrDefaultAsync();

                if (documentoInformacionInstitucionalActualizar != null)
                {
                    try
                    {
                        documentoInformacionInstitucionalActualizar.Titulo      = documentoInformacionInstitucional.Titulo;
                        documentoInformacionInstitucionalActualizar.Descripcion = documentoInformacionInstitucional.Descripcion;
                        await db.SaveChangesAsync();

                        return(new Response
                        {
                            IsSuccess = true,
                            Message = Mensaje.Satisfactorio,
                        });
                    }
                    catch (Exception ex)
                    {
                        return(new Response
                        {
                            IsSuccess = false,
                            Message = Mensaje.Error,
                        });
                    }
                }

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.ExisteRegistro
                });
            }
            catch (Exception)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Excepcion
                });
            }
        }
        public async Task <ActionResult> Create(MaterialInduccion view, List <IFormFile> files)
        {
            InicializarMensaje(null);
            if (files.Count > 0)
            {
                byte[] data;
                using (var br = new BinaryReader(files[0].OpenReadStream()))
                    data = br.ReadBytes((int)files[0].OpenReadStream().Length);

                var ext = Path.GetExtension(files[0].FileName);

                var documenttransfer = new DocumentoInstitucionalTransfer
                {
                    Nombre      = view.Titulo,
                    Descripcion = view.Descripcion,
                    Extension   = ext,
                    Fichero     = data,
                };

                var respuesta = await CreateFichero(documenttransfer);

                MaterialInduccion materialInduccion = JsonConvert.DeserializeObject <MaterialInduccion>(respuesta.Resultado.ToString());

                if (respuesta.IsSuccess)
                {
                    //await uploadFileService.UploadFile(documenttransfer.Fichero, "MaterialInduccion", Convert.ToString(materialInduccion.IdMaterialInduccion), ext);

                    materialInduccion.Url = string.Format("{0}/{1}{2}", "MaterialInduccion", Convert.ToString(materialInduccion.IdMaterialInduccion), ext);

                    return(RedirectToAction("Index"));
                }
                else
                {
                    ViewData["Error"] = respuesta.Message;

                    var documento = new MaterialInduccion
                    {
                        Titulo = view.Titulo,
                    };
                    return(View(view));
                }
            }
            else
            {
                var documenttransfer = new DocumentoInstitucionalTransfer
                {
                    Nombre      = view.Titulo,
                    Descripcion = view.Descripcion,
                    Url         = view.Url,
                };

                var respuesta = await CreateFichero(documenttransfer);

                MaterialInduccion materialInduccion = JsonConvert.DeserializeObject <MaterialInduccion>(respuesta.Resultado.ToString());

                if (respuesta.IsSuccess)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    ViewData["Error"] = respuesta.Message;

                    var documento = new MaterialInduccion
                    {
                        Titulo = view.Titulo,
                    };
                    return(View(view));
                }
            }
        }