コード例 #1
0
        public async Task <IActionResult> AddPhotoForUser(int userId, PhotoForCreationDTO photoDTO)
        {
            var user = await _repo.GetUser(userId);

            if (user == null)
            {
                return(BadRequest("Nie znaleziono takiego uzytkownika"));
            }

            var curentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (user.Id != curentUserId)
            {
                return(Unauthorized());
            }

            //Przesłany plik
            var file = photoDTO.File; // Present file in HTTP REQUEST

            // ImagUpLoadResult  to tez klasa Cloudinary
            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(1000).Height(1000).Crop("fill").Gravity("face")
                    };
                    // wysyłamy zdjęcie do Cloudinary
                    uploadResult = _cloudinary.Upload(uploadParams);
                }
            }

            photoDTO.Url      = uploadResult.Uri.ToString();
            photoDTO.PublicId = uploadResult.PublicId;

            var photo = _mapper.Map <Photos>(photoDTO);

            photo.User = user;

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

            user.Photos.Add(photo);

            // var photoToReturn = _mapper.Map<PhotoForReturnDTO>(photo);  PRZENIESIONE DO Ifa poniżej aby pobierane było z ID

            if (await _repo.SaveAll())
            {
                var photoToReturn = _mapper.Map <PhotoForReturnDTO>(photo);               // tutaj juz każde photo ma ID
                return(CreatedAtRoute("GetPhoto", new { id = photo.Id }, photoToReturn)); // TUTAJ WSTAWIONY będzie przekierowanie do GetPhoto
            }

            return(BadRequest("Nie można dodać foto"));
        }
コード例 #2
0
        public UserModel GetUser()
        {
            var currentUser = _userDataRepository.GetUser();

            if (currentUser != null)
            {
                return(_mapper.Map <UserModel>(currentUser));
            }
            else
            {
                return(null);
            }
        }
コード例 #3
0
        public async Task <IActionResult> GetUsers(UserParams userParams)
        {
            // Wykluczenie z listy włąsnego profilu
            var curentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            var userFromRepo = await _repo.GetUser(curentUserId);

            userParams.UserId = userFromRepo.Id;


            if (string.IsNullOrEmpty(userParams.Gender))
            {
                userParams.Gender = userFromRepo.Gender == "male" ? "female" : "male";
            }


            var users = await _repo.GetUsers(userParams);

            var usersForReturn = _mapper.Map <IList <UserForListDto> >(users);

            Response.AddPagination(users.CurentPage, users.PageSize, users.TotalCount, users.TotalPages);

            return(Ok(usersForReturn));
        }
コード例 #4
0
ファイル: UserManager.cs プロジェクト: Ultron46/Today
 public User GetUser(int userId)
 {
     return(_userDataRepository.GetUser(userId));
 }