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