コード例 #1
0
        public IActionResult ManageAuthors(int id)
        {
            BookAuthorVM obj = new BookAuthorVM
            {
                BookAuthorList = _db.BookAuthors.Include(u => u.Author).Include(u => u.Book)
                                 .Where(u => u.Book_Id == id).ToList(),
                BookAuthor = new BookAuthor()
                {
                    Book_Id = id
                },
                Book = _db.Books.FirstOrDefault(u => u.Book_Id == id)
            };
            List <int> tempListOfAssignedAuthors = obj.BookAuthorList.Select(u => u.Author_Id).ToList();
            //NOT IN Clause in LINQ
            //get all the authors whos id is not in tempListOfAssignedAuthors
            var tempList = _db.Authors.Where(u => !tempListOfAssignedAuthors.Contains(u.Author_Id)).ToList();

            obj.AuthorList = tempList.Select(i => new SelectListItem
            {
                Text  = i.FullName,
                Value = i.Author_Id.ToString()
            });

            return(View(obj));
        }
コード例 #2
0
        public IActionResult ManageAuthors(int id)
        {
            var bookAuthor = new BookAuthorVM
            {
                BookAuthorList = _context.BookAuthors
                                 .Include(e => e.Author)
                                 .Include(e => e.Book)
                                 .Where(e => e.Book_Id == id).ToList(),

                BookAuthor = new BookAuthor()
                {
                    Book_Id = id
                },

                Book = _context.Books.FirstOrDefault(e => e.Book_Id == id)
            };

            var assignedAuthors = bookAuthor.BookAuthorList.Select(e => e.Author_Id).ToList();

            //LINQ NOT IN Clause
            //Get all authors whose it id not in assigned Authors;
            var unassignedAuthors = _context.Authors
                                    .Where(e => !assignedAuthors.Contains(e.Author_Id))
                                    .ToList();

            bookAuthor.AuthorList = unassignedAuthors.Select(e => new SelectListItem
            {
                Text  = e.FullName,
                Value = e.Author_Id.ToString()
            });

            return(View(bookAuthor));
        }
コード例 #3
0
 public IActionResult ManageAuthors(BookAuthorVM bookAuthorVM)
 {
     if (bookAuthorVM.BookAuthor.Book_Id != 0 && bookAuthorVM.BookAuthor.Author_Id != 0)
     {
         _db.BookAuthors.Add(bookAuthorVM.BookAuthor);
         _db.SaveChanges();
     }
     return(RedirectToAction(nameof(ManageAuthors), new { @id = bookAuthorVM.BookAuthor.Book_Id }));
 }
コード例 #4
0
        public IActionResult RemoveAuthors(int authorId, BookAuthorVM bookAuthorVM)
        {
            int        bookId     = bookAuthorVM.Book.Book_Id;
            BookAuthor bookAuthor = _db.BookAuthors.FirstOrDefault(
                u => u.Author_Id == authorId && u.Book_Id == bookId);

            _db.BookAuthors.Remove(bookAuthor);
            _db.SaveChanges();
            return(RedirectToAction(nameof(ManageAuthors), new { @id = bookId }));
        }
コード例 #5
0
        public IActionResult RemoveAuthors(int authorId, BookAuthorVM bookAuthorVM)
        {
            var bookId     = bookAuthorVM.Book.Book_Id;
            var bookAuthor = _context.BookAuthors.FirstOrDefault(e =>
                                                                 e.Author_Id == authorId &&
                                                                 e.Book_Id == bookId);

            _context.BookAuthors.Remove(bookAuthor);
            _context.SaveChanges();

            return(RedirectToAction(nameof(ManageAuthors), new { @id = bookId }));
        }
コード例 #6
0
        public IActionResult ManageAuthors(int id)
        {
            BookAuthorVM obj = new BookAuthorVM
            {
                BookAuthorList = _db.BookAuthors.Include(ba => ba.Author).Include(ba => ba.Book)
                                 .Where(ba => ba.Book_Id == id).ToList(),
                BookAuthor = new BookAuthor()
                {
                    Book_Id = id
                },
                Book = _db.Books.FirstOrDefault(b => b.Book_Id == id),
            };
            List <int> tempListOfAssignedAuthors = obj.BookAuthorList.Select(ba => ba.Author_Id).ToList();
            var        tempList = _db.Authors.Where(a => !tempListOfAssignedAuthors.Contains(a.Author_Id)).ToList();

            obj.AuthorList = tempList.Select(i => new SelectListItem
            {
                Text  = i.FullName,
                Value = i.Author_Id.ToString()
            });
            return(View(obj));
        }
コード例 #7
0
        public IActionResult ManageAuthors(int id)
        {
            BookAuthorVM bookAuthorVM = new BookAuthorVM
            {
                BookAuthorList = _dbContext.BookAuthors
                                 .Include(a => a.Author).Include(b => b.Book)
                                 .Where(b => b.Book_Id == id).ToList(),

                BookAuthor = new BookAuthor()
                {
                    Book_Id = id
                },

                Book = _dbContext.Books.FirstOrDefault(b => b.Book_Id == id)
            };

            List <int> tempListOfAssignedAuthors =
                bookAuthorVM.BookAuthorList.Select(a => a.Author_Id).ToList();
            // NOT IN Caluse in LINQ
            // Get all the auhtors whos id not in tempListOfAssignedAuthors
            var tempList = _dbContext.Authors
                           .Where(a => !tempListOfAssignedAuthors.Contains(a.Author_Id))
                           .ToList();

            // The output of above query
            // SELECT [a].[Author_Id], [a].[BirthDate], [a].[FirstName], [a].[LastName], [a].[Location]
            // FROM[Authors] AS[a]
            // WHERE[a].[Author_Id] NOT IN(1, 3)

            bookAuthorVM.AuthorList = tempList.Select(i => new SelectListItem
            {
                Text  = i.FullName,
                Value = i.Author_Id.ToString()
            });

            return(View(bookAuthorVM));
        }
コード例 #8
0
        public IActionResult ManageAuthors(int id)
        {
            BookAuthorVM bookAuthorVM = new BookAuthorVM
            {
                BookAuthorList = _dbContext.BookAuthors.Include(u => u.Book).Include(u => u.Author).Where(u => u.Book_Id == id),
                BookAuthor     = new BookAuthor
                {
                    Book_Id = id
                },
                Book = _dbContext.Books.Find(id)
            };

            var tempListOfAssignedAuthors = bookAuthorVM.BookAuthorList.Select(u => u.Author_Id).ToList();
            //NOT IN
            var unAssignedAuthors = _dbContext.Authors.Where(u => !tempListOfAssignedAuthors.Contains(u.Author_Id));

            //projection
            bookAuthorVM.AuthorList = unAssignedAuthors.Select(x => new Microsoft.AspNetCore.Mvc.Rendering.SelectListItem
            {
                Text  = x.FullName,
                Value = x.Author_Id.ToString()
            }).ToList();
            return(View(bookAuthorVM));
        }