Esempio n. 1
0
        public async void PutUserPreferencesAsync_ValidAuthInvalidModel_ReturnsBadRequest()
        {
            // Given
            var databaseName = Guid.NewGuid().ToString();

            var(client, context) = ServiceTestingHelper.BuildServer <Startup, UserDbContext>(databaseName);
            var(token, userId)   = AdminIdentity;

            var model   = new PutPreferencesModel();
            var request = CreatePutPreferencesRequest(token, userId, model);

            // When
            var response = await client.SendAsync(request);

            // Then
            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
            RefreshAll(context);
            Assert.Equal(0, context.Preferences.Count());
        }
Esempio n. 2
0
        public async Task <IActionResult> PutUserPreferencesAsync(Guid userId, [FromBody] PutPreferencesModel preferenceModel)
        {
            var authorizedUserId = Guid.Parse(HttpContext.User.Claims.Single(c => c.Type == "userId").Value);
            var elevatedRights   = bool.Parse(HttpContext.User.Claims.Single(c => c.Type == "ElevatedRights").Value);

            if (!elevatedRights && userId != authorizedUserId)
            {
                return(Forbid());
            }

            var preference = await _userService.GetUserPreferenceAsync(userId);

            if (preference is null)
            {
                return(NotFound());
            }

            _userService.PutUserPreference(preference, preferenceModel, authorizedUserId);
            await _userService.CompleteTransactionAsync();

            return(Ok());
        }
Esempio n. 3
0
 public void PutUserPreference(Preference preference, PutPreferencesModel preferenceModel, Guid authorizedUserId)
 {
     preference.PreferredLanguage = preferenceModel.Language;
     preference.EditedBy          = authorizedUserId;
     preference.EditedOn          = DateTimeOffset.Now;
 }