예제 #1
0
        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));
        }
예제 #2
0
        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));
        }