public async Task <IActionResult> SetMainPhoto(int userId, int id)
        {
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var userFromRepo = await usersRepository.GetUser(userId, true);

            if (userFromRepo.Photos.All(p => p.Id != id))
            {
                return(Unauthorized());
            }

            var photoFromRepo = await photosRepository.GetPhoto(id);

            if (photoFromRepo.IsMain)
            {
                return(BadRequest("This is already your main photo"));
            }

            var currentMainPhoto = await photosRepository.GetMainPhotoForUser(userId);

            if (currentMainPhoto != null)
            {
                currentMainPhoto.IsMain = false;
            }

            photoFromRepo.IsMain = true;

            if (await repository.SaveAll())
            {
                return(NoContent());
            }

            return(BadRequest("Failed to set the photo to main"));
        }
 public async Task <Photo> SetMainPhoto(int id)
 {
     return(await _photosRepo.GetMainPhotoForUser(id));
 }