コード例 #1
0
        public async Task <ResponseHandler> AddPhotoForUser(UserPhotoDto userPhotoDto)
        {
            var user = await _context.Users.Include(x => x.ProfilePicture).FirstOrDefaultAsync(x => x.Id == userPhotoDto.UserId);

            PhotoSettings settings = CloudinarySettings();

            if (user.ProfilePicture != null)
            {
                await DeletePhoto(settings, user.ProfilePicture);
            }

            var photoModel = new PhotoModel(userPhotoDto.File)
            {
                Folder  = "LMS/Members",
                Width   = 500,
                Height  = 500,
                Gravity = "face",
                Crop    = "fill"
            };

            var result = _photoLibrary.UploadPhoto(settings, photoModel);

            userPhotoDto.Url      = result.Url;
            userPhotoDto.PublicId = result.PublicId;

            var photo = _mapper.Map <UserProfilePhoto>(userPhotoDto);

            user.ProfilePicture = photo;

            await _context.SaveChangesAsync();

            var photoToreturn = _mapper.Map <PhotoForReturnDto>(photo);

            return(new ResponseHandler(photoToreturn, photo.Id));
        }
コード例 #2
0
        public async Task <IActionResult> AddPhotoForUser([FromForm] UserPhotoDto userPhotoDto)
        {
            var result = await _photoService.AddPhotoForUser(userPhotoDto);

            if (result.IsSuccessful)
            {
                return(Ok(result.Result));
            }

            //return CreatedAtAction("GetPhoto", new { id = photo.Id }, photo);
            return(BadRequest(result.Message));
        }
コード例 #3
0
ファイル: PhotosController.cs プロジェクト: lexusgh/DatingApp
        public async Task <IActionResult> AddUserPhoto(int userid, [FromForm] UserPhotoDto uphoto)
        {
            if (userid != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }
            var user = await _repo.GetUser(userid);

            var file = uphoto.File;

            var uploadResult = new ImageUploadResult();

            if (file.Length > 0)
            {
                using var stream = file.OpenReadStream();
                var uploadParams = new ImageUploadParams()
                {
                    File           = new FileDescription(file.Name, stream),
                    Transformation = new Transformation().
                                     Width(500).Height(500).Crop("fill").Gravity("face")
                };

                uploadResult = _cloudinary.Upload(uploadParams);
            }

            uphoto.Url      = uploadResult.Uri.ToString();
            uphoto.PublicId = uploadResult.PublicId;
            var photo = _mapper.Map <Photo>(uphoto);

            if (!user.Photos.Any(x => x.IsMain))
            {
                photo.IsMain = true;
            }

            user.Photos.Add(photo);

            if (await _repo.SaveAll())
            {
                var returnphoto = _mapper.Map <PhotoReturnDto>(photo);
                return(CreatedAtRoute("GetPhoto", new { userId = userid, id = photo.Id }, returnphoto));
            }


            return(BadRequest("could not add the photo"));
        }