private async Task EditBookCatalogsAsync(int bookId, BooksEntity book) { var bookModel = await _context.Catalogs_Books.Where(e => e.BookId == bookId).ToListAsync(); var unselectedCatalogs = bookModel.Where(f => !book.Catalogs.Select(e => e.CatalogId).ToList().Contains(f.CatalogId)).ToList(); if (unselectedCatalogs.Count() != 0) { foreach (var item in unselectedCatalogs) { _context.Catalogs_Books.RemoveRange(item); } } var catalogIds = bookModel.Select(e => e.CatalogId).ToList(); var newCatalogs = book.Catalogs.Select(e => e.CatalogId).Where(catalogId => catalogIds.All(catId => catId != catalogId)); foreach (var catalogId in newCatalogs) { await _context.Catalogs_Books.AddAsync( new Catalogs_Books() { CatalogId = catalogId, BookId = bookId }); } }
public async Task <IBooks> Edit(IBooks book) { book.ID = Guid.NewGuid(); BooksEntity bookE = _mapper.Map <BooksEntity>(book); dbSet.Add(bookE); await _context.SaveChangesAsync(); return(_mapper.Map <IBooks>(book)); }
public async Task <BooksEntity> EditBookAsync(int bookId, BooksEntity book) { var oldmodel = await _context.Books .FirstOrDefaultAsync(e => e.BookId == bookId); var result = Mapping.Mapper.Map(book, oldmodel); await EditBookCatalogsAsync(bookId, book); await _context.SaveChangesAsync(); return(Mapping.Mapper.Map <BooksEntity>(result)); }
public async Task <IActionResult> CreateBookAsync(BooksEntity book) { if (_bookService.CheckIfNewBookExit(book)) { var model = await _bookService.CreateBookAsync(book); var location = _linkGanarator.GetPathByAction("GetBookByIdAsync", "Books", new { bookId = model.BookId }); return(Created(location, model)); } else { return(BadRequest("book has already been created")); } }
public async Task <ActionResult <BooksEntity> > EditBookAsync(int bookId, BooksEntity book) { if (_bookService.CheckIfBookExit(bookId, book)) { var model = await _bookService.EditBookAsync(bookId, book); //var result = _mapper.Map<CatalogsEntity>(catalogs); var location = _linkGanarator.GetPathByAction("GetBookByIdAsync", "Books", new { bookId = model.BookId }); return(model); } else { return(BadRequest("catalog has already been created")); } }
public async Task <BooksEntity> CreateBookAsync(BooksEntity book) { var result = Mapping.Mapper.Map <Books>(book); await _context.Books.AddAsync(result); var catalogIds = book.Catalogs.Select(e => e.CatalogId).ToList(); await addCatalogsAsync(result, catalogIds); await _context.SaveChangesAsync(); var bookModel = await _context.Books //.Include(m => m.Supplier) .Include(m => m.Catalogs_Books) .ThenInclude(m => m.Catalog) .FirstOrDefaultAsync(m => m.BookId == result.BookId); return(Mapping.Mapper.Map <BooksEntity>(result)); }
public bool CheckIfBookExit(int bookId, BooksEntity book) { var result = GetBook(bookId); return(_context.Books.FirstOrDefault(e => e.Title == book.Title) == null || result.Title == book.Title ? true : false); }
public bool CheckIfNewBookExit(BooksEntity book) { return(_context.Books.FirstOrDefault(e => e.Title == book.Title) == null ? true : false); }