public virtual NotifierSettingsModel GetSettings(ActivityEventIdentity activityEventIdentity) { var emailNotifierSetting = Get <EmailNotifierTemplate>(activityEventIdentity.AddNotifierIdentity(NotifierTypeEnum.EmailNotifier)); var uiNotifierSetting = Get <UiNotifierTemplate>(activityEventIdentity.AddNotifierIdentity(NotifierTypeEnum.UiNotifier)); var popupNotifierSetting = Get <PopupNotifierTemplate>(activityEventIdentity.AddNotifierIdentity(NotifierTypeEnum.PopupNotifier)); var notifierSettings = new NotifierSettingsModel { EmailNotifierSetting = emailNotifierSetting, UiNotifierSetting = uiNotifierSetting, PopupNotifierSetting = popupNotifierSetting }; return(notifierSettings); }
public virtual void Save <T>(NotifierSettingModel <T> settingModel) where T : INotifierTemplate { var identity = new ActivityEventIdentity(settingModel.ActivityType, settingModel.NotificationType) .AddNotifierIdentity(settingModel.NotifierType); var(setting, isCreated) = FindOrCreateSetting <T>(identity); var updatedSetting = GetUpdatedSetting(setting, settingModel); if (isCreated) { _repository.Add(updatedSetting); } else { _repository.Update(updatedSetting); } }
public void CreateAndSendMail() { var currentDate = DateTime.UtcNow; var allUsers = _intranetMemberService.GetAll(); var monthlyMails = allUsers .Select(user => user.Id.Pipe(GetUserActivitiesFilteredByUserTags).Pipe(userActivities => TryGetMonthlyMail(userActivities, user))) .ToList(); var identity = new ActivityEventIdentity( CommunicationTypeEnum.CommunicationSettings, NotificationTypeEnum.MonthlyMail) .AddNotifierIdentity(NotifierTypeEnum.EmailNotifier); var settings = _notificationSettingsService.Get <EmailNotifierTemplate>(identity); if (!settings.IsEnabled) { return; } foreach (var monthlyMail in monthlyMails) { monthlyMail.Do(some: mail => { var mailModel = GetMonthlyMailModel(mail.user, mail.monthlyMail, settings.Template); try { _mailService.SendMailByTypeAndDay( mailModel, mail.user.Email, currentDate, NotificationTypeEnum.MonthlyMail); } catch (Exception ex) { _logger.Log(ex); } }); } }
public ActivityEventNotifierIdentity(ActivityEventIdentity @event, Enum notifierType) { Event = @event; NotifierType = notifierType; }
public static ActivityEventNotifierIdentity AddNotifierIdentity(this ActivityEventIdentity activityEventIdentity, Enum notifierType) { return(new ActivityEventNotifierIdentity(activityEventIdentity, notifierType)); }