Example #1
0
        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
                });
            }
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        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"));
            }
        }
Example #5
0
        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"));
            }
        }
Example #6
0
        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));
        }
Example #7
0
        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);
        }
Example #8
0
 public bool CheckIfNewBookExit(BooksEntity book)
 {
     return(_context.Books.FirstOrDefault(e => e.Title == book.Title) == null  ? true : false);
 }