public async Task <string> Handle(UploadPhotoCommand request, CancellationToken cancellationToken) { var photo = request.Photo; ValidatePhoto(photo); var fileName = await _photoStorage.StorePhotoAsync(photo); return(fileName); }
public async Task <Photo> UploadPhoto(Vehicle vehicle, IFormFile file, string uploadFolderPath) { var fileName = await photoStorage.StorePhotoAsync(uploadFolderPath, file); var photo = new Photo { FileName = fileName }; vehicle.Photos.Add(photo); await unitOfWork.CompleteAsyc(); return(photo); }
public async Task<Photo> UploadPhotoAsync(Vehicle vehicle, IFormFile file, string uploadFolderPath) { // if (!Directory.Exists(uploadFolderPath)) // Directory.CreateDirectory(uploadFolderPath); // var fileName = Guid.NewGuid().ToString() + Path.GetExtension(file.FileName); // var filePath = Path.Combine(uploadFolderPath, fileName); // using (var stream = new FileStream(filePath, FileMode.Create)) // { // await file.CopyToAsync(stream); // } var fileName = await photoStorage.StorePhotoAsync(file, uploadFolderPath); var photo = new Photo { FileName = fileName }; vehicle.Photos.Add(photo); await unitOfWork.CompleteAsync(); return photo; }
public async Task <Result <UserProfileDto> > Handle(EditAvatarCommand request, CancellationToken cancellationToken) { var profile = await _forumDbContext.Profiles .IncludeUser() .SingleAsync(p => p.UserId == request.UserId); var validationResult = _photoValidator.ValidatePhoto(request.Avatar); if (!validationResult.Succeeded) { return(Result <UserProfileDto> .Failure(validationResult.Field, validationResult.Message)); } var oldAvatar = profile.Avatar; if (oldAvatar != null) { _forumDbContext.Photos.Remove(oldAvatar); await _photoStorage.DeletePhotoAsync(oldAvatar.FileName); } var newAvatar = request.Avatar; var resizedAvatar = await _imageProcessor.ResizeImage(newAvatar); var fileName = await _photoStorage.StorePhotoAsync(resizedAvatar, ".png"); profile.Avatar = new Photo { FileName = fileName }; await _forumDbContext.SaveChangesAsync(); var result = _mapper.Map <UserProfileDto>(profile); return(Result <UserProfileDto> .Success(result)); }