public async Task ShouldUpdateSecurityUser()
        {
            var usertId      = Guid.NewGuid();
            var securityUser = new SecurityUser();

            var expected = new UserSettingsDTO();

            var userSettingsDTO = new UserSettingsDTO();

            _mock.Mock <ISecurityUserProvider>()
            .Setup(provider => provider.GetByUserIdAsync(usertId))
            .ReturnsAsync(securityUser);

            _mock.Mock <IMapper>()
            .Setup(mapper => mapper.Map(userSettingsDTO, securityUser))
            .Returns(securityUser);

            _mock.Mock <IMapper>()
            .Setup(mapper => mapper.Map <UserSettingsDTO>(securityUser))
            .Returns(expected);

            var actual = await _service.UpdateAsync(userSettingsDTO, usertId);

            _mock.Mock <IInventContext>()
            .Verify(context => context.Update(securityUser));

            _mock.Mock <IInventContext>()
            .Verify(context => context.SaveChangesAsync(default(CancellationToken)));

            ContentAssert.AreEqual(expected, actual);
        }
        public async Task ShouldReturnUserSettingsDTOOnGetAction()
        {
            Guid userId         = Guid.NewGuid();
            Guid securityUserId = Guid.NewGuid();

            var securityUser = new SecurityUser
            {
                Id = securityUserId
            };

            var expected = new UserSettingsDTO();

            var controller = _mock.Create <UserSettingsController>();

            _mock.Mock <IUserManager>()
            .Setup(manager => manager.GetUserId(controller.User))
            .Returns(userId);

            _mock.Mock <ISecurityUserProvider>()
            .Setup(provider => provider.GetByUserIdAsync(userId))
            .ReturnsAsync(securityUser);

            _mock.Mock <IMapper>()
            .Setup(mapper => mapper.Map <UserSettingsDTO>(securityUser))
            .Returns(expected);

            var actual = await controller.Get();

            ContentAssert.AreEqual(expected, actual);
        }
        public async Task ShouldDeleteUserPicture()
        {
            var claimsPrincipal = new ClaimsPrincipal();

            var controllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = claimsPrincipal
                }
            };
            var userId = Guid.NewGuid();

            var expected = new UserSettingsDTO();

            var controller = _mock.Create <UserPictureController>();

            controller.ControllerContext = controllerContext;

            _mock.Mock <IUserManager>()
            .Setup(manager => manager.GetUserId(controller.User))
            .Returns(userId);

            _mock.Mock <IUserPictureService>()
            .Setup(service => service.DeleteUserPictureAsync(userId))
            .ReturnsAsync(expected);

            var actual = await controller.DeleteUserPicture();

            ContentAssert.AreEqual(expected, actual);
        }
Пример #4
0
        public async Task <ChangingSettingsResult> ChangeUserSettings(UserSettingsDTO settingsData, Func <string, string> pathResolver)
        {
            var me     = db.Users.FindById(settingsData.Id);
            var result = new ChangingSettingsResult();

            result.Settings = settingsData;

            var isPassValid = db.Users.CheckPassword(me, settingsData.Password);

            if (!isPassValid)
            {
                result.Errors.Add("Invalid password");
                result.Succeeded      = false;
                settingsData.Password = "";
                return(result);
            }

            if (!string.IsNullOrEmpty(settingsData.NewPassword))
            {
                if (settingsData.NewPassword != settingsData.NewPasswordConfirmation)
                {
                    settingsData.NewPassword             = "";
                    settingsData.NewPasswordConfirmation = "";
                    settingsData.Password = "";

                    result.Errors.Add("Passwords don't match");
                    result.Succeeded = false;
                    return(result);
                }

                await db.Users.ChangePasswordAsync(me.Id, settingsData.Password, settingsData.NewPassword);
            }

            me.UserInfo.FirstName = settingsData.FirstName;
            me.UserInfo.LastName  = settingsData.LastName;
            me.UserInfo.Phone     = settingsData.Phone;
            me.UserInfo.Skype     = settingsData.Skype;
            me.Email            = settingsData.Email;
            me.UserInfo.AboutMe = settingsData.AboutMe;

            if (settingsData.Avatar != null)
            {
                var extension = settingsData.Avatar.FileName.Split('.').Last();
                var filename  = $"{me.Id}.{extension}";
                var savePath  = Path.Combine(ConfigurationManager.AppSettings["avatarPath"].ToString(),
                                             filename);
                settingsData.Avatar.SaveAs(pathResolver(savePath));

                me.UserInfo.AvatarFilename = filename;
                me.UserInfo.AvatarMimeType = settingsData.Avatar.ContentType;
            }

            await db.Users.UpdateAsync(me);

            await db.SaveChangesAsync();

            result.Succeeded = true;
            return(result);
        }
Пример #5
0
        public async Task <UserSettingsDTO> UpdateUserSettings([FromBody] UserSettingsDTO userSettings)
        {
            var currentUserId = this.GetCurrentUserClaim("Id");

            var result = await this.usersService.UpdateUserSettings(currentUserId, userSettings.ToEntity());

            return(result.ToDto());
        }
Пример #6
0
        public async Task <UserSettingsDTO> Update([FromBody] UserSettingsDTO userSettings)
        {
            using (var userManager = _userManagerFactory())
            {
                var userId = userManager.GetUserId(User);

                return(await _userSettingsService.UpdateAsync(userSettings, userId));
            }
        }
Пример #7
0
        public async Task <IActionResult> Settings(UserSettingsDTO model)
        {
            var userProfile = new UserProfileDTO();
            var user        = await GetCurrentUserAsync();

            userProfile.FirsName     = user.FirstName;
            userProfile.LastName     = user.LastName;
            userProfile.ProfilePhoto = user.ProfilePhoto;
            userProfile.Email        = user.Email;
            return(View(userProfile));
        }
Пример #8
0
 public static UserSettings ToEntity(this UserSettingsDTO settings)
 {
     return(new UserSettings
     {
         IsProfileVisible = settings.IsProfileVisible,
         IsActivityVisible = settings.IsActivityVisible,
         IsNargilesVisible = settings.IsNargilesVisible,
         AllowNotifications = settings.AllowNotifications,
         Language = settings.Language
     });
 }
Пример #9
0
        public async Task <IActionResult> Settings()
        {
            var userSetting = new UserSettingsDTO();
            //get currentuser
            var user = await GetCurrentUserAsync();

            //get user settings
            var userSet = uow.UserSettings.Find(i => i.ApplicationUser == user).First();

            //add viewmodel
            userSetting.Compare       = userSet.Compare;
            userSetting.Fill          = userSet.Fill;
            userSetting.Random        = userSet.Random;
            userSetting.TestWordCount = userSet.TestWordCount;
            return(View(userSetting));
        }
Пример #10
0
        public UserSettingsDTO GetUserSettings(string userId)
        {
            var me   = db.Users.FindById(userId);
            var data = new UserSettingsDTO {
                Id             = me.Id,
                Email          = me.Email,
                FirstName      = me.UserInfo.FirstName,
                LastName       = me.UserInfo.LastName,
                AboutMe        = me.UserInfo.AboutMe,
                AvatarFilename = me.UserInfo.AvatarFilename,
                Phone          = me.UserInfo.Phone,
                Skype          = me.UserInfo.Skype
            };

            return(data);
        }
        public async Task <UserSettingsDTO> UpdateAsync(UserSettingsDTO userSettings, Guid userId)
        {
            using (var context = _contextFactory())
                using (var securityUserProvider = _securityUserProviderFactory(context))
                {
                    var securityUser = await securityUserProvider.GetByUserIdAsync(userId);

                    securityUser = _mapper.Map(userSettings, securityUser);

                    context.Update(securityUser);

                    await context.SaveChangesAsync();

                    return(_mapper.Map <UserSettingsDTO>(securityUser));
                }
        }
        public async Task ShouldUpdateUserSettings()
        {
            Guid userId = Guid.NewGuid();

            var userSettings = new UserSettingsDTO();

            var expected = new UserSettingsDTO();

            var controller = _mock.Create <UserSettingsController>();

            _mock.Mock <IUserManager>()
            .Setup(manager => manager.GetUserId(controller.User))
            .Returns(userId);

            _mock.Mock <IUserSettingsService>()
            .Setup(service => service.UpdateAsync(userSettings, userId))
            .ReturnsAsync(expected);

            var actual = await controller.Update(userSettings);

            ContentAssert.AreEqual(expected, actual);
        }
        public async Task ActivateReturnsSuccessResponse()
        {
            var credentials      = new OtpActivationRequest();
            var activationParams = new OtpActivationRequestParams();
            var userSettings     = new UserSettingsDTO();

            _mock.Mock <IOtpActivationRequestParamProvider>()
            .Setup(instance => instance.Get(credentials))
            .Returns(activationParams);

            _mock.Mock <IOtpActivationRequestValidationService>()
            .Setup(instance => instance.ValidateAsync(activationParams))
            .ReturnsAsync("VALID");

            _mock.Mock <IOtpActivationService>()
            .Setup(instance => instance.ActivateAsync(activationParams))
            .ReturnsAsync(userSettings);

            var controller = _mock.Create <AuthOtpController>();
            var actual     = await controller.Activate(credentials);

            ContentAssert.AreEqual(userSettings, actual);
        }