コード例 #1
0
        public async Task UpdateUserShouldChangeGender()
        {
            var db = GetDatabase();
            await db.Users.AddAsync(new ApplicationUser()
            {
                Id = "1", UserName = "******", Gender = Gender.Other
            });

            await db.SaveChangesAsync();

            var userRepo = new EfRepository <ApplicationUser>(db);
            var service  = new UserService(null, userRepo, null);

            var model = new EditUserProfileInputModel()
            {
                FirstName   = "Test2",
                LastName    = "Test2",
                Description = "Test2",
                Gender      = Gender.Male,
            };

            var result = await service.UpdateUser(model, "1");

            var actualGender = db.Users.FirstOrDefault(x => x.Id == "1").Gender;

            Assert.True(result);
            Assert.Equal(model.Gender, actualGender);
        }
コード例 #2
0
        public IActionResult UpdateUserProfile(EditUserProfileInputModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            this.accountService.UpdateUserProfile(model);

            return(this.RedirectToAction("Index", "Home"));
        }
コード例 #3
0
        public async Task <bool> UpdateUser(EditUserProfileInputModel model, string userId)
        {
            var user = await this.userRepo.All().FirstOrDefaultAsync(x => x.Id == userId);

            if (user == null)
            {
                return(false);
            }

            user.FirstName   = model.FirstName;
            user.LastName    = model.LastName;
            user.Description = model.Description;
            user.Gender      = model.Gender;

            if (model.ProfileImage != null)
            {
                var imageName = Guid.NewGuid().ToString();
                var imageUrl  = await ApplicationCloudinary.UploadImage(this.cloudinary, model.ProfileImage, imageName);

                if (!string.IsNullOrEmpty(imageUrl))
                {
                    user.ProfileImage = new Image()
                    {
                        Url     = imageUrl,
                        Name    = imageName,
                        Creator = user,
                    };
                }
            }

            if (model.CoverImage != null)
            {
                var imageName = Guid.NewGuid().ToString();
                var imageUrl  = await ApplicationCloudinary.UploadImage(this.cloudinary, model.CoverImage, imageName);

                if (!string.IsNullOrEmpty(imageUrl))
                {
                    user.CoverImage = new Image()
                    {
                        Url     = imageUrl,
                        Name    = imageName,
                        Creator = user,
                    };
                }
            }

            this.userRepo.Update(user);
            await this.userRepo.SaveChangesAsync();

            return(true);
        }
コード例 #4
0
        public void UpdateUserProfile(EditUserProfileInputModel model)
        {
            var user = this.GetUserById(model.Id);

            user.FirstName   = model.FirstName;
            user.LastName    = model.LastName;
            user.Nickname    = model.Nickname;
            user.BirthDate   = model.BirthDate;
            user.PhoneNumber = model.PhoneNumber;
            user.Address     = model.Address;

            this.userRepository.Update(user);
            this.userRepository.SaveChangesAsync().GetAwaiter().GetResult();
        }
コード例 #5
0
        private Task LoadAsync(ApplicationUser user)
        {
            this.Input = new EditUserProfileInputModel
            {
                UserName    = user.UserName,
                FirstName   = user.FirstName,
                LastName    = user.LastName,
                Description = user.Description,
                BirthDate   = user.Birthdate,
                Gender      = user.Gender,
                Email       = user.Email,
            };

            return(Task.CompletedTask);
        }