public void Add(SubmittedImage image)
 {
     if (SubmittedImageIsUniqueForGivenMonthForGivenVoter(image))
     {
         _images.Add(image);
     }
 }
        public ActionResult <SubmittedImage> PostImage(SubmittedImageDTO submittedImageDTO)
        {
            var imageToCreate = new SubmittedImage(submittedImageDTO.Name, submittedImageDTO.Month, submittedImageDTO.Image, submittedImageDTO.Voter);

            //imageToCreate.Id = _imageRepository.GetNewID();
            _imageRepository.Add(imageToCreate);
            _imageRepository.SaveChanges();
            return(CreatedAtAction(nameof(GetImageById), new { id = imageToCreate.Id }, imageToCreate));
        }
        public ActionResult <SubmittedImage> GetImageById(int id)
        {
            SubmittedImage image = _imageRepository.GetById(id);

            if (image == null)
            {
                return(NotFound());
            }
            return(image);
        }
        public ActionResult <SubmittedImage> GetImagesByVoterbyMonth(string voter, byte month)
        {
            SubmittedImage image = _imageRepository.GetImageByVoterByMonth(voter, month);

            if (image == null)
            {
                return(NotFound());
            }
            return(image);
        }
        private bool SubmittedImageIsUniqueForGivenMonthForGivenVoter(SubmittedImage image)
        {
            var imageToCheck = GetImageByVoterByMonth(image.Creator, image.Month);

            if (imageToCheck == null)
            {
                return(true);
            }
            return(false);
        }
 public SubmittedImage ApplyPatch(SubmittedImage submittedImage, ImagePatchDTO imagePatch)
 {
     submittedImage.Name = imagePatch.Name;
     if (imagePatch.Image != null)
     {
         submittedImage.Image = imagePatch.Image;
     }
     _images.Update(submittedImage);
     SaveChanges();
     return(submittedImage);
 }
        public ActionResult <SubmittedImage> DeleteImage(int id)
        {
            SubmittedImage image = _imageRepository.GetById(id);

            if (image == null)
            {
                return(NotFound());
            }
            _imageRepository.Delete(image);
            _imageRepository.SaveChanges();
            return(image);
        }
        public ActionResult <SubmittedImage> ChangeImageSpecificProperties(int id, ImagePatchDTO imagePatch)
        {
            if (imagePatch == null)
            {
                return(BadRequest("please insert information"));
            }
            if (_imageRepository.GetById(id) == null)
            {
                return(NotFound());
            }
            SubmittedImage currentImage = _imageRepository.GetById(id);

            return(_imageRepository.ApplyPatch(currentImage, imagePatch));
        }
        public ActionResult <SubmittedImage> ChangeImage(int id, SubmittedImageDTO imageDTO)
        {
            if (imageDTO == null)
            {
                return(BadRequest("please insert information"));
            }
            if (_imageRepository.GetById(id) == null)
            {
                return(NotFound());
            }
            SubmittedImage imageToUpdate = new SubmittedImage(imageDTO.Name, imageDTO.Month, imageDTO.Image, imageDTO.Voter);

            imageToUpdate.Id = id;
            _imageRepository.Update(imageToUpdate);
            _imageRepository.SaveChanges();
            return(imageToUpdate);
        }
 public void Update(SubmittedImage image)
 {
     _images.Update(image);
 }
 public void Delete(SubmittedImage image)
 {
     _images.Remove(image);
 }