public void Execute(MyListAddDTO request) { if (request.User.DeletedAt != null) { throw new EntityNotFoundException("User", request.User.Id); } foreach (var comicId in request.Comics) { var comic = Context.Comics.Where(c => c.DeletedAt == null && c.Id == comicId).FirstOrDefault(); if (comic == null) { throw new EntityNotFoundException("Comic", comicId); } var user = Context.Users.Include(u => u.Comics).Where(u => u.Id == request.User.Id).ToList(); var alreadyExists = user.Any(u => u.Comics.Any(uc => uc.ComicId == comicId)); if (alreadyExists) { throw new EntityAlreadyExistsException("Comic for your user", comicId); } var myList = new MyList() { Comic = comic, User = request.User }; request.User.Comics.Add(myList); } Context.SaveChanges(); }
public IActionResult Post([FromBody] MyListAddRequest request) { try { var dto = new MyListAddDTO(); dto.User = loginService.PossibleUser(); dto.Comics = request.Comics; addCommand.Execute(dto); return(StatusCode(201)); } catch (EntityAlreadyExistsException e) { return(Conflict(new ErrorMessage { Message = e.Message })); } catch (EntityNotFoundException e) { return(NotFound(new ErrorMessage { Message = e.Message })); } }