public void StoreSettings(string phoneId, SettingsDTO settingsRequest) { Language language = languageRepository.GetLanguageByName(settingsRequest.LanguageCode); if (language == null) { throw new HttpStatusCodeException( HttpStatusCode.NotFound, $"Language [{settingsRequest.LanguageCode}] doesn't exist"); } NotificationFrequency notificationFrequency = notificationFrequencyRepository.GetNotificationFrequencyByFrequency(settingsRequest.NotificationFrequency); if (notificationFrequency == null) { throw new HttpStatusCodeException( HttpStatusCode.NotFound, $"Notification frequency [{settingsRequest.NotificationFrequency}] doesn't exist"); } Entities.Models.Settings settings = settingsRepository.GetSettingsByPhoneId(phoneId); if (settings != null) { settings.Language = language; settings.DoesNotify = settingsRequest.DoesNotify; settings.NotificationFrequency = notificationFrequency; } else { Entities.Models.Settings newSettings = new Entities.Models.Settings { Language = language, DoesNotify = true, NotificationFrequency = notificationFrequency }; settingsRepository.Add(newSettings); accountRepository.Add(new Account { PhoneIdentifier = phoneId, Settings = newSettings, PasswordHash = "", Email = phoneId, FirstName = "", City = "" }); } theaterScheduleUnitOfWork.Save(); }
public SettingsDTO LoadSettings(string phoneId) { SettingsDTO settingsRequest = null; Entities.Models.Settings settings = settingsRepository.GetSettingsByPhoneId(phoneId); if (settings != null) { settingsRequest = new SettingsDTO() { LanguageCode = settings.Language.LanguageCode, DoesNotify = settings.DoesNotify, NotificationFrequency = settings.NotificationFrequency.Frequency }; } else { throw new HttpStatusCodeException(HttpStatusCode.NotFound, $"Phone id [{phoneId}] doesn't exist"); } return(settingsRequest); }