public void SendMessageToUnanswered(AccountViewModel accountViewModel) { const string functionName = "Ответ на неотвеченные сообщения"; _notice.AddNotice(functionName, accountViewModel.Id, _noticeService.ConvertNoticeText(functionName, string.Format("Начинаем отвечать"))); var account = _accountManager.GetAccountById(accountViewModel.Id); try { _notice.AddNotice(functionName, accountViewModel.Id, string.Format("Собираемся посылать экстра-сообщения")); var unreadMessagesList = GetUnreadMessages(account); if (unreadMessagesList.UnreadMessages.Count != 0) { return; } if (account.GroupSettingsId == null) { return; } var settings = _accountSettingsManager.GetSettings((long)account.GroupSettingsId); if (settings == null) { return; } var delayTime = settings.UnansweredDelay; if (delayTime < 0) { return; } var unansweredMessagesList = new GetUnansweredMessagesQueryHandler(new DataBaseContext()).Handle(new GetUnansweredMessagesQuery { DelayTime = delayTime, AccountId = account.Id }); _notice.AddNotice(functionName, accountViewModel.Id, string.Format("Получено {0} неотвеченных сообщений", unansweredMessagesList.Count)); int i = 1; foreach (var unansweredMessage in unansweredMessagesList) { _notice.AddNotice(functionName, accountViewModel.Id, string.Format("Отправляем экстра-сообщения друзьям {0}/{1}", i, unansweredMessagesList.Count)); var friend = _friendManager.GetFriendById(unansweredMessage.FriendId); new SendMessageCore(_notice).SendMessageToUnanswered(account, friend); Thread.Sleep(3000); i++; } } catch (Exception ex) { _notice.AddNotice(functionName, accountViewModel.Id, _noticeService.ConvertNoticeText(functionName, string.Format("Возникла ошибка {0}", ex.Message))); } }
public void SendMessageToUnanswered(AccountViewModel accountViewModel) { const string functionName = "Ответ на неотвеченные сообщения"; _notice.AddNotice(functionName, accountViewModel.Id, string.Format("Начинаем отвечать")); var account = _accountManager.GetAccountById(accountViewModel.Id); try { _notice.AddNotice(functionName, accountViewModel.Id, string.Format("Собираемся посылать экстра-сообщения")); var unreadMessagesList = GetUnreadMessages(account); List <UnreadFriendMessageModel> unreadMessages = null; if (unreadMessagesList != null) { unreadMessages = unreadMessagesList.UnreadMessages; } if (account.GroupSettingsId == null) { return; } var settings = _accountSettingsManager.GetSettings((long)account.GroupSettingsId); if (settings == null) { return; } var delayTime = settings.UnansweredDelay; if (delayTime <= 0) { return; } var unansweredMessagesList = new GetUnansweredMessagesQueryHandler(new DataBaseContext()).Handle(new GetUnansweredMessagesQuery { DelayTime = delayTime, AccountId = account.Id }); _notice.AddNotice(functionName, accountViewModel.Id, string.Format("Получено {0} неотвеченных сообщений", unansweredMessagesList.Count)); _notice.AddNotice(functionName, account.Id, "Загружаем список extra-сообщений"); var messageModel = _messageManager.GetRandomExtraMessage(); if (messageModel == null) { _notice.AddNotice(functionName, account.Id, "Нет ни одного extra-сообщения"); return; } int i = 1; foreach (var unansweredMessage in unansweredMessagesList) { if (unreadMessages != null && unreadMessages.Any(model => model.FriendFacebookId == unansweredMessage.FriendFacebookId)) { _notice.AddNotice(functionName, accountViewModel.Id, string.Format("Друг с id = {0} написал сообщение. Экстра сообщение не посылаем ему.", unansweredMessage.FriendFacebookId)); continue; } _notice.AddNotice(functionName, accountViewModel.Id, string.Format("Отправляем экстра-сообщения друзьям {0}/{1}", i, unansweredMessagesList.Count)); var friend = _friendManager.GetFriendById(unansweredMessage.FriendId); new SendMessageCore(_notice).SendMessageToUnanswered(account, friend); Thread.Sleep(3000); i++; } } catch (Exception ex) { _notice.AddNotice(functionName, accountViewModel.Id, _noticeService.ConvertNoticeText(functionName, string.Format("Возникла ошибка {0}", ex.Message))); } }