public object Post([FromQuery] string apiKey, [FromQuery] string recaptcha, [FromBody] Models.Reclamos reclamo) { try { //if (apiKey == null) //{ // return new EmptyResponse { Status = ResponseStatuses.ErrorApiKey.ToString() }; //} //var itemKey = this.apiKeyRepository.FinByKey(apiKey); //if (itemKey == null) //{ // return new EmptyResponse { Status = ResponseStatuses.ErrorApiKey.ToString() }; //} //if (!itemKey.Habilitado) //{ // return new EmptyResponse { Status = ResponseStatuses.ErrorApiKeyDeshabilitado.ToString() }; //} // hacer algunas validaciones // validar el recaptcha if (recaptcha == null) { return(new EmptyResponse { Status = ResponseStatuses.ErrorParametrosIncorrectos.ToString() }); } Models.RecaptchaResponse recaptchaResponse = Utils.GoogleRecaptcha.VerifyRecaptcha(recaptcha); if (recaptchaResponse == null || !recaptchaResponse.success) { return(new EmptyResponse { Status = ResponseStatuses.ErrorParametrosIncorrectos.ToString(), Message = "Ocurrió un error en la verificación del código captcha" }); } // Se verifica que no se haya realizado un registro desde el mismo IP //var ultimoReclamo = dbRepository.GetReclamoByIp(Utils.Http.GetIPAddressAsync().GetAwaiter().GetResult()); //if (ultimoReclamo != null) //{ // TimeSpan ts = DateTime.Now - ultimoReclamo.FechaCreacion; // if (ts.Minutes <= 60) // { // return new ReclamosResponse // { // Status = ResponseStatuses.ErrorParametrosIncorrectos.ToString(), // Message = "Ya ha realizado un reclamo recientemente. Debe esperar al menos una hora para realizar un nuevo reclamo", // Data = null // }; // } //} var pensionesRepository = new DB.PensionesRepository(); var data = pensionesRepository.GetEntidad(reclamo.CodigoEntidad); if (data == null) { var segurosRepository = new DB.SegurosRepository(); data = segurosRepository.GetEntidad(reclamo.CodigoEntidad); } if (data == null) { return(new ReclamosResponse { Status = ResponseStatuses.ErrorParametrosIncorrectos.ToString(), Message = "El código de la entidad es inválido.", Data = null }); } // si todo esta bien, guardar reclamo.FechaReclamo = DateTime.Now; reclamo.Estado = "P"; reclamo.UsuarioCreacion = "web"; reclamo.FechaCreacion = DateTime.Now; reclamo.Ip = this.Request.HttpContext.Connection.RemoteIpAddress.ToString(); var result = this.dbRepository.GuardarReclamo(reclamo); //this.apiKeyRepository.AddLog( // itemKey.Id, // this.Request.HttpContext.Connection.RemoteIpAddress.ToString(), // Utils.Utilities.GetIPAddressAsync().GetAwaiter().GetResult(), // this.Request.Method, // this.Request.Path, // this.Request.QueryString.ToString(), // this.GetType().FullName); if (result) { var builder = new ConfigurationBuilder(); builder.SetBasePath(Directory.GetCurrentDirectory()); builder.AddJsonFile("appsettings.json"); var ReclamoEmailConfig = builder.Build(); var EmailFrom = ReclamoEmailConfig["Reclamo:EmailFrom"]; var EmailFromUser = ReclamoEmailConfig["Reclamo:EmailFromUser"]; var EmailTo = ReclamoEmailConfig["Reclamo:EmailTo"]; var EmailToUser = ReclamoEmailConfig["Reclamo:EmailToUser"]; var MailServer = ReclamoEmailConfig["Reclamo:MailServer"]; int MailPort = Convert.ToInt16(ReclamoEmailConfig["Reclamo:MailPort"]); bool MailUseSsl = Convert.ToBoolean(ReclamoEmailConfig["Reclamo:MailUseSsl"]); var MailUser = ReclamoEmailConfig["Reclamo:MailUser"]; var MailUserPassword = ReclamoEmailConfig["Reclamo:MailUserPassword"]; var MailDefaultSubject = ReclamoEmailConfig["Reclamo:MailDefaultSubject"]; var message = new MimeMessage(); message.From.Add(new MailboxAddress(EmailFromUser, EmailFrom)); message.To.Add(new MailboxAddress(EmailToUser, EmailTo)); message.Subject = MailDefaultSubject; message.Body = new TextPart("plain") { Text = @"RECLAMANTE: " + reclamo.NombreCompleto + "\n" + reclamo.TipoIdentificacion + ": " + reclamo.NumIdentificacion + " " + reclamo.ExpIdentificacion + "\nCELULAR: " + reclamo.Celular + "\nCORREO: " + reclamo.CorreoElectronico + "\nDIRECCIÓN: " + reclamo.Direccion + "\nENTIDAD: " + reclamo.CodigoEntidad + "\nDESCRIPCIÓN DEL RECLAMO: " + reclamo.DescripcionReclamo + "\nFECHA DEL RECLAMO: " + reclamo.FechaReclamo }; 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); } return(new ReclamosResponse { Status = ResponseStatuses.Correcto.ToString(), Message = "Se ha guardado el registro.", Data = null }); } else { return(new ReclamosResponse { Status = ResponseStatuses.ErrorParametrosIncorrectos.ToString(), Message = "Ocurrió un error, no se ha guardado el registro.", Data = result }); } } catch (Exception ex) { return(new ReclamosResponse { Status = ResponseStatuses.ErrorExcepcion.ToString(), Message = ex.Message, Data = null }); } }
public object GetEntidades([FromQuery] string apiKey, [FromQuery] string mercado = "") { try { /* * if (apiKey == null) * { * return new EmptyResponse { Status = ResponseStatuses.ErrorApiKey.ToString() }; * } * * var itemKey = this.apiKeyRepository.FinByKey(apiKey); * * if (itemKey == null) * { * return new EmptyResponse { Status = ResponseStatuses.ErrorApiKey.ToString() }; * } * * if (!itemKey.Habilitado) * { * return new EmptyResponse { Status = ResponseStatuses.ErrorApiKeyDeshabilitado.ToString() }; * } * * this.apiKeyRepository.AddLog( * itemKey.Id, * this.Request.HttpContext.Connection.RemoteIpAddress.ToString(), * Utils.Http.GetIPAddressAsync().GetAwaiter().GetResult(), * this.Request.Method, * this.Request.Path, * this.Request.QueryString.ToString(), * this.GetType().FullName); * /**/ string mercado_ = mercado; List <Entidad> entidades = new List <Entidad>(); if (mercado.ToLower() == "seguros" || mercado == "") { var data = segurosRepository.ListaEntidades(); foreach (var obj in data) { entidades.Add(obj); } } if (mercado.ToLower() == "pensiones" || mercado == "") { var pensionesRepository = new DB.PensionesRepository(); var data = pensionesRepository.ListaEntidades(); foreach (var obj in data) { entidades.Add(obj); } } return(new EntidadesResponse { Status = ResponseStatuses.Correcto.ToString(), Data = entidades }); } catch (Exception ex) { return(new EntidadesResponse { Status = ResponseStatuses.ErrorExcepcion.ToString(), Message = ex.Message, Data = null }); } }