private async Task <Result> SetUserLocalizationPreference(string username, SupportedLanguageCode languageCode, CancellationToken cancellationToken) { var pref = await _collection.UserPreferences.Find(x => x.Username == username) .FirstOrDefaultAsync(cancellationToken: cancellationToken); if (pref.HasValue()) { pref.SetPreferredLanguage(languageCode); await _collection.UserPreferences.ReplaceOneAsync(x => x.Username == username, pref, cancellationToken : cancellationToken); return(Result.Ok()); } await _collection.UserPreferences.InsertOneAsync(new PreferenceDocument(username, languageCode), cancellationToken : cancellationToken); return(Result.Ok()); }
public PreferenceDocument(string username, SupportedLanguageCode code) { Username = username; PreferredLanguage = code.ToDescriptionString(); }
public void SetPreferredLanguage(SupportedLanguageCode code) { PreferredLanguage = code.ToDescriptionString(); }