public ComicGetDTO Execute(MyListDTO request) { var comic = Context.Comics .Include(c => c.Publisher) .Include(c => c.ComicGenres).ThenInclude(cg => cg.Genre) .Include(c => c.ComicAuthors).ThenInclude(ca => ca.Author) .Where(c => c.DeletedAt == null && c.Id == request.ComicId && c.Users.Any(cu => cu.ComicId == request.ComicId)) .SingleOrDefault(); if (comic == null) { throw new EntityNotFoundException("Comic", request.ComicId); } return(new ComicGetDTO() { Id = comic.Id, Name = comic.Name, Description = comic.Description, Issues = comic.Issues, PublishedAt = comic.PublishedAt.Date, Publisher = comic.Publisher.Name, Genres = comic.ComicGenres.Select(cg => cg.Genre.Name), Authors = comic.ComicAuthors.Select(ca => ca.Author.FirstName + ' ' + ca.Author.LastName) }); }
public IActionResult Delete(int id) { try { var dto = new MyListDTO(); dto.User = loginService.PossibleUser(); dto.ComicId = id; deleteCommand.Execute(dto); return(NoContent()); } catch (EntityNotFoundException e) { return(NotFound(new ErrorMessage { Message = e.Message })); } }
public IActionResult Get(int id) { try { var dto = new MyListDTO(); dto.User = loginService.PossibleUser(); dto.ComicId = id; var comic = getOneCommand.Execute(dto); return(Ok(comic)); } catch (EntityNotFoundException e) { return(NotFound(new ErrorMessage { Message = e.Message })); } }
public void Execute(MyListDTO request) { if (request.User.DeletedAt != null) { throw new EntityNotFoundException("User", request.User.Id); } Context.Entry(request.User) .Collection(u => u.Comics) .Load(); var comic = request.User.Comics.FirstOrDefault(c => c.ComicId == request.ComicId); if (comic == null) { throw new EntityNotFoundException("Comic", request.ComicId); } request.User.Comics.Remove(comic); Context.SaveChanges(); }