Example #1
0
        public void Put(PutPublicationHouseView publicationHouse)
        {
            PublicationHouse publicationHouseModel = _publicationHouseRepository.Get(publicationHouse.Id);

            publicationHouseModel.Name   = publicationHouse.Name;
            publicationHouseModel.Adress = publicationHouse.Adress;
            _publicationHouseRepository.Update(publicationHouseModel);

            IEnumerable <int>           selectedBooks            = publicationHouse.Books.Select(id => id.Id);
            List <BookPublicationHouse> oldPublicationHouseBooks = _bookInPublicationHouseRepository.GetAllByPublicationHouseId(publicationHouse.Id);
            var oldPublicationHouseBooksWithRelation             = oldPublicationHouseBooks.Where(x => x.BookId != 0).ToList();
            var intersectBooks = oldPublicationHouseBooksWithRelation.Select(x => x.BookId).Intersect(selectedBooks).ToList();
            var exceptBooks    = oldPublicationHouseBooksWithRelation.Select(x => x.BookId).Except(selectedBooks).ToList();

            _bookInPublicationHouseRepository.Delete(oldPublicationHouseBooks.Where(x => exceptBooks.Contains(x.BookId)).ToList());

            var currentPublicationHouseBooks = new List <BookPublicationHouse>();

            foreach (var newBookId in selectedBooks)
            {
                if (intersectBooks.FirstOrDefault(x => x == newBookId) == 0)
                {
                    currentPublicationHouseBooks.Add(new BookPublicationHouse()
                    {
                        PublicationHouseId = publicationHouseModel.Id, BookId = newBookId
                    });
                }
            }
            _bookInPublicationHouseRepository.Insert(currentPublicationHouseBooks);
        }
Example #2
0
 public IActionResult Put(int id, [FromBody] PutPublicationHouseView publicationHouse)
 {
     if (ModelState.IsValid)
     {
         _publicationHouseService.Put(publicationHouse);
         return(Ok(publicationHouse));
     }
     return(BadRequest(ModelState));
 }