public async Task <UploadAvatarUserResponse> ChangeAvatar(UploadAvatarRequest request)
        {
            byte[] imageBytes = Convert.FromBase64String(request.Content);

            //Save the Byte Array as Image File.
            string path          = Directory.GetParent(Environment.CurrentDirectory).FullName;
            string fileDirectory = Path.Combine(path, "Web.Api", "FileInstance");
            string filePath      = Path.Combine(fileDirectory, request.FileName + "." + request.FileExtension);

            File.WriteAllBytes(filePath, imageBytes);

            var fileId = request.FileId;
            //await _context.FileInstance.AddAsync(new FileInstance((Guid)fileId, request.FileName, request.FileExtension, "Some path" ));
            var updatedFileInstance = await _context.FileInstance.FirstOrDefaultAsync(i => i.Id == fileId);

            if (updatedFileInstance != null)
            {
                _context.Attach(updatedFileInstance);
                updatedFileInstance.FileName  = request.FileName;
                updatedFileInstance.Extension = request.FileExtension;
            }

            var success = await _context.SaveChangesAsync();

            return(new UploadAvatarUserResponse(success > 0, null));
        }
 public async Task <ActionResult> ChangeAvatar([FromBody] UploadAvatarRequest request)
 {
     if (!ModelState.IsValid)
     { // re-render the view when validation failed.
         return(BadRequest(ModelState));
     }
     return(Ok(await _userRepository.ChangeAvatar(request)));
 }
        public async Task <UploadAvatarUserResponse> UploadFirstAvatar(UploadAvatarRequest request)
        {
            byte[] imageBytes = Convert.FromBase64String(request.Content);

            //Save the Byte Array as Image File.
            string path          = Directory.GetParent(Environment.CurrentDirectory).FullName;
            string fileDirectory = Path.Combine(path, "Web.Api", "FileInstance");
            string filePath      = Path.Combine(fileDirectory, request.FileName + "." + request.FileExtension);

            File.WriteAllBytes(filePath, imageBytes);
            Guid fileId = Guid.NewGuid();

            //Save to database
            await _context.FileInstance.AddAsync(new FileInstance(fileId, request.FileName, request.FileExtension,
                                                                  fileDirectory));

            await _context.UserFileInstance.AddAsync(new UserFileInstance(request.UserId, fileId));

            var success = await _context.SaveChangesAsync();

            return(new UploadAvatarUserResponse(fileId, success > 0, null));
        }