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());
        }
Exemple #2
0
 public PreferenceDocument(string username, SupportedLanguageCode code)
 {
     Username          = username;
     PreferredLanguage = code.ToDescriptionString();
 }
Exemple #3
0
 public void SetPreferredLanguage(SupportedLanguageCode code)
 {
     PreferredLanguage = code.ToDescriptionString();
 }