/// <summary> /// Обработка релизов сериалов /// </summary> /// <param name="settings">Настройки сервиса</param> /// <returns></returns> private async Task NotifyOfTvSeriesReleases(NotificationsSettingsEntity settings) { try { var currDateTime = DateTime.Now; var episodes = GetTvSeriesEpisodesReleases(currDateTime); var taskList = new List <Task> { _mailNotificationService.NotifyAboutReleaseAsync(episodes) }; var pushNotifications = CastTvSeriasToPushModel(episodes); if (pushNotifications.Any()) { taskList.Add(SendPushNotifications(settings, pushNotifications)); } await Task.WhenAll(taskList.ToList()); SaveNotificationsLog(episodes); } catch (Exception e) { throw e; } }
/// <summary> /// Отпарвка push-уведомления /// </summary> /// <param name="settings">Настройки сервиса</param> /// <param name="pushNotifications">список уведомлений</param> /// <returns></returns> private async Task <bool> SendPushNotifications(NotificationsSettingsEntity settings, IEnumerable <PushNotificationModel> pushNotifications) { var content = new StringContent(pushNotifications.ToString(), Encoding.UTF8, Resources.JsonMIMEType); var response = await _httpClient.PostAsync(settings.PushUrl, content); return(response.StatusCode == System.Net.HttpStatusCode.NoContent || response.StatusCode == System.Net.HttpStatusCode.OK); }