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)); }
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)); }
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 })); }
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 })); }
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 })); }
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)); }
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)); }
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)); }