Пример #1
0
        public async Task <IActionResult> ChangeProfileImage([FromForm] ProfileImageChangeViewModel profileImageChangeViewModel)
        {
            if (profileImageChangeViewModel != null)
            {
                var user = await userManager.GetUserAsync(HttpContext.User);

                AccountResponse response = await accountServices.ChangeProfileImageAsync(user, profileImageChangeViewModel);

                if (response.ResponseStatus == Status.Success)
                {
                    return(Ok(response.Message));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status400BadRequest, response.Message));
                }
            }
            return(StatusCode(StatusCodes.Status400BadRequest));
        }
Пример #2
0
        public async Task <AccountResponse> ChangeProfileImageAsync(User user, ProfileImageChangeViewModel profileImageChangeViewModel)
        {
            if (user != null)
            {
                if (profileImageChangeViewModel.profileImage != null)
                {
                    var fileExtension = Path.GetExtension(profileImageChangeViewModel.profileImage.FileName);
                    var fileContent   = convertFormFileToByteArray(profileImageChangeViewModel.profileImage);
                    Domain.Models.File profileImage = new Domain.Models.File
                    {
                        FileExtension = fileExtension,
                        FileContent   = fileContent,
                        User          = user,
                        UserId        = user.Id
                    };

                    // remove previous profile image
                    var previousProfileImage = await appDb.Files.Where(x => x.UserId == user.Id && x.Id == user.FileAvatarId).FirstOrDefaultAsync();

                    if (previousProfileImage != null)
                    {
                        appDb.Files.Remove(previousProfileImage);
                        await appDb.SaveChangesAsync();
                    }

                    // add new profile image
                    await appDb.Files.AddAsync(profileImage);

                    await appDb.SaveChangesAsync();

                    user.FileAvatarId = profileImage.Id;
                    await appDb.SaveChangesAsync();

                    return(new AccountResponse {
                        ResponseStatus = Status.Success, Message = "Succesfully changed profile image"
                    });
                }
            }
            return(new AccountResponse {
                ResponseStatus = Status.Error, Message = "User not found"
            });
        }