public object GetParametros() { List <CorrespondenciaParametros> getParametros = new List <CorrespondenciaParametros>(); var CorrespondenciaRepository = new DB.CorrespondenciaRepository(); var Data = CorrespondenciaRepository.Parametros(); foreach (var obj in Data) { getParametros.Add(obj); } return(new WebResponse { Status = ResponseStatuses.Correcto.ToString(), Data = getParametros }); }
public async Task <OkObjectResult> PostFiles([FromQuery] string apiKey, [FromQuery] string recaptcha, Models.Correspondencia Correspondencia, ICollection <IFormFile> files) { try { //VERIFICA EL CAPTCHA if (recaptcha == null) { return(new OkObjectResult(new { status = "error", message = "El CAPTCHA no puede ser nulo " })); } //Models.RecaptchaResponse recaptchaResponse = Utils.GoogleRecaptcha.VerifyRecaptcha(recaptcha); //if (recaptchaResponse == null || !recaptchaResponse.success) //{ // return new OkObjectResult(new // { // status = "error", // message = "Ocurrió un erroral validar el CAPTCHA " // }); //} // VERIFICA SI EXITE ARCHIVOS QUE REGISTRAR if (files.Count == 0) { return(new OkObjectResult(new { status = "error", message = "No existen Archivos para Registrar Correspondencia" })); } //VERIFICA LA EXTENSION DE ARCHIVOS PERMITIDOS foreach (var file in files) { var verifica = false; var VerificaExtension = (file.FileName.Substring(file.FileName.LastIndexOf("."))); var VerificaTamano = file.Length; var extensiones = CorrespondenciaRepository.Parametros(); foreach (var ext in extensiones) { if (ext.ValorString.Contains(VerificaExtension)) { if (ext.ValorNumber < VerificaTamano) { return(new OkObjectResult(new { status = "error", message = "El Archivo " + file.FileName + " es mayor al permitido " + (ext.ValorNumber / 1024) + "Kb" })); } verifica = true; break; } } if (verifica == false) { return(new OkObjectResult(new { status = "error", message = "El Archivo " + file.FileName + " NO se encuentra dentro de los archivos permitidos " })); } } //VERIFICA LA CAPACIDA MAXIMA DE CARGA long capacidadMax = 0; long capacidadRecibida = 0; foreach (var file in files) { var VerificaTamano = file.Length; capacidadRecibida = capacidadRecibida + VerificaTamano; } var extensionTotal = CorrespondenciaRepository.Parametros(); foreach (var ext in extensionTotal) { if (ext.ValorString == "MAX") { capacidadMax = ext.ValorNumber; break; } } if (capacidadMax < capacidadRecibida) { return(new OkObjectResult(new { status = "error", message = "La capcidad maxima es de " + (capacidadMax / 1048576) + "Mb" })); } //SETA PARAMETROS DE WEBDOCDIGITAL Correspondencia.Estado = "P"; Correspondencia.UsuarioCreacion = "Admin"; string fechaC = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); Correspondencia.FechaCreacion = fechaC; Correspondencia.Ip = this.Request.HttpContext.Connection.RemoteIpAddress.ToString(); //REALIZA LA INSERCION A LA TABLA WEBDOCDIGITAL var RegCorrespondencia = CorrespondenciaRepository.InsertarCorrespondencia(Correspondencia); int idReg = 0; foreach (var Regc in RegCorrespondencia) { idReg = Regc.Id; if (idReg == 0) { return(new OkObjectResult(new { status = "error", message = "Error:" + Regc.msg })); } } int idRegistro = 0; idRegistro = idReg; string NombresArchivosMail = ""; //INTRODUCE A LA TABLA WEBDOCDIGITALADJUINTOS foreach (var file in files) { if (file.Length >= 0) { var IdWebDocDigitalFile = idRegistro; var nombrerchivo = file.FileName; var Tamanio = (file.Length.ToString()); var Ext = (nombrerchivo.Substring(nombrerchivo.LastIndexOf("."))); var Tipofile = file.ContentType; string fechaCA = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var FechaCreacionA = fechaCA; MemoryStream ms = new MemoryStream(); file.CopyTo(ms); var ArchivoData = ms.ToArray(); NombresArchivosMail = NombresArchivosMail + "," + nombrerchivo; var RegCorrespondenciaAdjunto = CorrespondenciaRepository.InsertarCorrespondenciaAdjunto(new CorrespondenciaAdjunto { IdWebDocDigital = IdWebDocDigitalFile, Archivo = ArchivoData, NombreArchivo = nombrerchivo, Tamano = Tamanio, Extension = Ext, Tipo = Tipofile, UsuarioCreacion = "Admin", FechaCreacion = fechaCA, UsuarioModificacion = "Admin", FechaModificacion = fechaCA, }); if (RegCorrespondenciaAdjunto.Count() == 0) { return(new OkObjectResult(new { status = "error", message = "Error en la Carga de Archivos " })); } ms.Close(); ms.Dispose(); } } //REALIZA EL ENVIO DEL CORREO A LOS DESTINATARIOS var builder = new ConfigurationBuilder(); builder.SetBasePath(Directory.GetCurrentDirectory()); builder.AddJsonFile("appsettings.json"); string destinatario = ""; destinatario = Correspondencia.CorreoElectronico.ToString(); var CorrespondenciaEmailConfig = builder.Build(); var EmailFrom = CorrespondenciaEmailConfig["Correspondencia:EmailFrom"]; var EmailFromUser = CorrespondenciaEmailConfig["Correspondencia:EmailFromUser"]; var EmailTo = CorrespondenciaEmailConfig["Correspondencia:EmailTo"]; var EmailToCC = destinatario; var EmailToUser = CorrespondenciaEmailConfig["Correspondencia:EmailToUser"]; var MailServer = CorrespondenciaEmailConfig["Correspondencia:MailServer"]; int MailPort = Convert.ToInt16(CorrespondenciaEmailConfig["Correspondencia:MailPort"]); bool MailUseSsl = Convert.ToBoolean(CorrespondenciaEmailConfig["Correspondencia:MailUseSsl"]); var MailUser = CorrespondenciaEmailConfig["Correspondencia:MailUser"]; var MailUserPassword = CorrespondenciaEmailConfig["Correspondencia:MailUserPassword"]; var MailDefaultSubject = CorrespondenciaEmailConfig["Correspondencia:MailDefaultSubject"]; var message = new MimeMessage(); message.From.Add(new MailboxAddress(EmailFromUser, EmailFrom)); message.To.Add(new MailboxAddress(EmailTo)); message.To.Add(new MailboxAddress(EmailToCC)); message.Subject = MailDefaultSubject; message.Body = new TextPart(MimeKit.Text.TextFormat.Html) { Text = @"<b> id: </b>" + idRegistro + "<hr>" + "<b> Nombres: </b> " + Correspondencia.Nombres + "<br>" + "<b> Apellidos: </b> " + Correspondencia.Apellidos + "<br>" + "<b> Entidad: </b> " + Correspondencia.Entidad + "<br>" + "<b> Cite: </b> " + Correspondencia.Cite + "<br>" + "<b> Referencia: </b> " + Correspondencia.Referencia + "<hr>" + "<b> Archivos: </b> " + NombresArchivosMail + "<hr>" }; using (var client = new SmtpClient()) { // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS) client.ServerCertificateValidationCallback = (s, c, h, e) => true; client.Connect(MailServer, MailPort, MailUseSsl); // Note: since we don't have an OAuth2 token, disable // the XOAUTH2 authentication mechanism. client.AuthenticationMechanisms.Remove("XOAUTH2"); // Note: only needed if the SMTP server requires authentication client.Authenticate(MailUser, MailUserPassword); client.Send(message); client.Disconnect(true); } //RESPUESTA POR PROCESO EXITOSO return(new OkObjectResult(new { status = "Correcto", message = "Registrado correctamente" })); } //RESPUESTA POR EXCEPCIONES Y PROCESO CON ERRORES catch (Exception ex) { return(new OkObjectResult(new { status = "error", message = "Ocurrió un error: " + ex.Message })); } }