public async Task RecordBounces(Server oServer, StreamWriter oWriter) { var oPostmarkRestApiClient = new PostmarkRestApiClient(oServer.APIToken); var sBounceJson = oPostmarkRestApiClient.GetBounces(oServer.MaxBounces); JToken oJToken = JToken.Parse(sBounceJson); var lstBouncedMails = new List <BouncedMail>(); foreach (var oChildJToken in oJToken.SelectToken("Bounces")) { lstBouncedMails.Add(new BouncedMail(oChildJToken)); } int iTotalBounces = lstBouncedMails.Count(); DateTime?dtLatestBounce = lstBouncedMails.Any() ? lstBouncedMails.Max(oBouncedMail => oBouncedMail.BounceDate) : (DateTime?)null; string sTimestamp = dtLatestBounce.HasValue ? $"; latest @ {dtLatestBounce.Value.ToDateFormatted()}" : String.Empty; string sLog = $" - Server: {oServer.Name}|| # {iTotalBounces.ToString("#,##0")} bounces{sTimestamp}"; Console.WriteLine(sLog); oWriter.WriteLine(sLog); var oServerRepository = new ServerRepository(); lstBouncedMails.ToList().ForEach(async oBouncedMail => await oServerRepository.RecordBounce(oServer.Key, oBouncedMail.MessageID, oBouncedMail.BounceType, oBouncedMail.Description, oBouncedMail.Detail, oBouncedMail.SendTo, oBouncedMail.SendFrom, oBouncedMail.BounceDate, oBouncedMail.Subject, oWriter)); }
public async Task RecordBounces(Server oServer) { var oPostmarkRestApiClient = new PostmarkRestApiClient(oServer.APIToken); var sBounceJson = oPostmarkRestApiClient.GetBounces(oServer.MaxBounces); JToken oJToken = JToken.Parse(sBounceJson); var lstBouncedMails = new List <BouncedMail>(); foreach (var oChildJToken in oJToken.SelectToken("Bounces")) { lstBouncedMails.Add(new BouncedMail(oChildJToken)); } var oServerRepository = new ServerRepository(); lstBouncedMails.ToList().ForEach(async oBouncedMail => await oServerRepository.RecordBounce(oBouncedMail.To)); }