示例#1
0
        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();
        }
示例#2
0
 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
         }));
     }
 }