예제 #1
0
        public async Task SaveAsync <T>(NotifierSettingModel <T> settingModel) where T : INotifierTemplate
        {
            var identity = new ActivityEventIdentity(settingModel.ActivityType, settingModel.NotificationType)
                           .AddNotifierIdentity(settingModel.NotifierType);

            var(setting, isCreated) = await FindOrCreateSettingAsync <T>(identity);

            var updatedSetting = GetUpdatedSetting(setting, settingModel);

            if (isCreated)
            {
                await _repository.AddAsync(updatedSetting);
            }
            else
            {
                await _repository.UpdateAsync(updatedSetting);
            }
        }
        protected virtual void FillEnumTypes <T>(
            NotifierSettingModel <T> notifierSettingModel,
            NotifierSettingSaveModel <T> notifierSettingSaveModel)
            where T : INotifierTemplate
        {
            notifierSettingModel.ActivityType = _activityTypeProvider[notifierSettingSaveModel.ActivityType];

            if (notifierSettingSaveModel.ActivityType == CommunicationTypeEnum.CommunicationSettings.ToInt())
            {
                notifierSettingModel.ActivityType = CommunicationTypeEnum.CommunicationSettings;
            }

            if (notifierSettingSaveModel.ActivityType == CommunicationTypeEnum.Member.ToInt())
            {
                notifierSettingModel.ActivityType = CommunicationTypeEnum.Member;
            }

            notifierSettingModel.NotificationType = _notificationTypeProvider[notifierSettingSaveModel.NotificationType];
            notifierSettingModel.NotifierType     = _notifierTypeProvider[notifierSettingSaveModel.NotifierType];
        }