private async Task SendLogs(List <NotificationModel> users, DateTime date) { var logManager = new LogManager(new MongoRepository <VaultAccessLog>(new MongoConnectionProvider())); var logger = new FileLogger(); foreach (var user in users) { var fileName = ""; if (user.Vaults == null) { continue; } foreach (var vault in user.Vaults) { var logItems = await logManager.ShowByDateLog(vault.Id, date); fileName = await logger.Log(logItems, user.VaultAdminId, vault.Name); } var mailer = new MailReporter() { MailTo = user.Email }; await mailer.Report(fileName); } }
private async void SendByEmail(string message) { var mailSettings = new EmailSettings(); var mailer = new MailReporter(mailSettings, _logger) { MailTo = ConfigurationManager.AppSettings["AdminMail"] }; await mailer.Report(message); }
static void Main(string[] args) { var r1 = new ConsoleReporter(); sample(r1); var r2 = new LogReporter(); sample(r2); var r3 = new MailReporter(); sample(r3); }
public async Task <HttpResponseMessage> Post([FromBody] CrashReport report) { var ip = WebApiApplication.GetClientIp(); if (!RequestProtection.AddRequest(ip, RequestType.CrashReport)) { return(Request.CreateResponse(HttpStatusCode.Forbidden, "Usage limit exceeded")); } var issueId = await GitHubReporter.CreateIssue(ip, report); return(MailReporter.SendMail(ip, report, issueId) ? Request.CreateResponse(HttpStatusCode.OK, "Success") : Request.CreateResponse(HttpStatusCode.InternalServerError, "Error sending message")); }