Exemplo n.º 1
0
        public async Task ResendFailNotification()
        {
            var notifications = (await _iNotificationQuerie.GetNewNotification());
            int count         = 0;

            foreach (var item in notifications)
            {
                count++;
                if (item is NotificationSMS)
                {
                    var sms = new Common.NotificationServices.Models.SmsModel();
                    sms.To.Add(((NotificationSMS)item).CurrentMobile);
                    sms.Body = ((NotificationSMS)item).Content;
                    if (await SendOneSms(sms))
                    {
                        ((NotificationSMS)item).Update(Enums.NotifacationStatus.Send);
                    }
                    else
                    {
                        ((NotificationSMS)item).Update(Enums.NotifacationStatus.FailedToSend);
                    }
                    _notifayCommands.UpdateNotifayWithOutSave(item);
                }
                if (item is NotificationEmail)
                {
                    var email = new Common.NotificationServices.Models.EmailModel();
                    email.To.Add(((NotificationEmail)item).CurrentEmail);
                    email.Body    = ((NotificationEmail)item).Content;
                    email.Subject = ((NotificationEmail)item).Title;
                    if (await SendOneEmail(email))
                    {
                        ((NotificationEmail)item).Update(Enums.NotifacationStatus.Send);
                    }
                    else
                    {
                        ((NotificationEmail)item).Update(Enums.NotifacationStatus.FailedToSend);
                    }
                    _notifayCommands.UpdateNotifayWithOutSave(item);
                }
                if (count == 100)
                {
                    await _notifayCommands.SaveChangesAsync();

                    count = 0;
                }
            }
            await _notifayCommands.SaveChangesAsync();
        }