예제 #1
0
        public async Task <IActionResult> DeleteAlbum([FromRoute] int id)
        {
            Models.Album album = await albumRepository.GetAsync(id);

            if (album != null)
            {
                var userName = User.FindFirstValue(ClaimTypes.Name);
                if (album.Author.UserName != userName)
                {
                    return(Forbid());
                }

                foreach (Models.Photo photo in album.Photos)
                {
                    photo.Album = null;
                }
                this.albumRepository.Delete(album);
                await this.unitOfWork.CompleteAsync();

                return(Ok());
            }
            else
            {
                return(NotFound());
            }
        }
예제 #2
0
        public async Task <IActionResult> UpdateAlbum([FromRoute] int id, [FromForm] AlbumResource albumResource)
        {
            Models.Album album = await albumRepository.GetAsync(id);

            if (album != null)
            {
                var userName = User.FindFirstValue(ClaimTypes.Name);
                if (album.Author.UserName != userName)
                {
                    return(Forbid());
                }
                if (string.IsNullOrEmpty(albumResource.Name))
                {
                    return(BadRequest());
                }

                album.Name         = albumResource.Name;
                album.ModifiedDate = DateTime.UtcNow;
                await this.unitOfWork.CompleteAsync();

                var outputAlbumResource = mapper.Map <Models.Album, AlbumResource>(album);
                return(Ok(outputAlbumResource));
            }
            else
            {
                return(NotFound());
            }
        }
예제 #3
0
 public virtual void Delete(Models.Album album)
 {
     this.context.Remove(album);
 }
예제 #4
0
 public virtual void Add(Models.Album album)
 {
     this.context.Add(album);
 }