Пример #1
0
        public async Task UploadPhoto(IFormFile photo, int reviewId, string email)
        {
            var user = await _userManager.FindByEmailAsync(email);

            using (IUnitOfWork unitOfWork = _unitOfWorkFactory.Create())
            {
                IRepository <Review> reviews = unitOfWork.Repository <Review>();
                IRepository <Photo>  photos  = unitOfWork.Repository <Photo>();

                var review = reviews.Get(reviewId);
                if (review == null)
                {
                    return;
                }

                if (review.MechanicId != user.Id)
                {
                    return;
                }

                using (var stream = new MemoryStream())
                {
                    await photo.CopyToAsync(stream);

                    stream.Position = 0;

                    string url = await _azureBlobStorage.UploadFile(stream, $"review{reviewId}", photo.FileName);

                    photos.Add(new Photo {
                        ReviewId = reviewId, Url = url
                    });
                }

                await unitOfWork.SaveAsync();
            }
        }
        public async Task UploadAvatar(IFormFile photo, string email)
        {
            var user = await _userManager.FindByEmailAsync(email);

            using (IUnitOfWork unitOfWork = _unitOfWorkFactory.Create())
            {
                var customerRepository = unitOfWork.Repository <Customer>();
                var customer           = await customerRepository.GetAsync(user.Id);

                using (var stream = new MemoryStream())
                {
                    await photo.CopyToAsync(stream);

                    stream.Position = 0;

                    string url = await _azureBlobStorage.UploadFile(stream, "avatars", customer.UserName + DateTime.UtcNow);

                    customer.Avatar = url;
                }

                await unitOfWork.SaveAsync();
            }
        }