/// <summary> /// Book is Deassigned if it is returned /// </summary> /// <param> AssignBookDomainModel</param> /// <returns>bool<BorrowersDomainModel> </returns> public bool DeAssignBook(AssignBookDomainModel obj) { //Assigning the book and updating the list IList <AssignBookDomainModel> AssignList = MemoryCache.Get <IList <AssignBookDomainModel> >("AssignBookList").ToList(); AssignList.Where(d => d.BookID == obj.BookID && d.BorrowerID == obj.BorrowerID).ToList().ForEach(i => i.isCurrentlyAssigned = false); //Updating the TotalAssigned Books IList <BooksDomainModel> bookList = MemoryCache.Get <IList <BooksDomainModel> >("BooksList").ToList(); bookList.First(d => d.ID == obj.BookID).TotalAssigned -= 1; return(true); }
/// <summary> /// Data is being joined from all the lists in Memory Cache /// </summary> /// <param> SearchCriteria</param> /// <returns>IList<AssignBookDomainModel> </returns> private IList <AssignBookDomainModel> GetInnerJoinOfLists() { IList <AssignBookDomainModel> AssignList = MemoryCache.Get <IList <AssignBookDomainModel> >("AssignBookList").ToList(); IList <BooksDomainModel> booksList = MemoryCache.Get <IList <BooksDomainModel> >("BooksList").ToList(); IList <BorrowersDomainModel> borowerList = MemoryCache.Get <IList <BorrowersDomainModel> >("BorrowersList").ToList(); var assignedList = from assign in AssignList join bk in booksList on assign.BookID equals bk.ID join bl in borowerList on assign.BorrowerID equals bl.ID select new { bk.Title, bl.FirstName, bl.LastName, assign.isCurrentlyAssigned, assign.AssignedDate, assign.DueDate, assign.BookID, assign.BorrowerID }; IList <AssignBookDomainModel> resList = new List <AssignBookDomainModel>(); foreach (var v in assignedList) { AssignBookDomainModel m = new AssignBookDomainModel(); m.BookID = v.BookID; m.BorrowerID = v.BorrowerID; m.DueDate = v.DueDate; m.FirstName = v.FirstName; m.LastName = v.LastName; m.isCurrentlyAssigned = v.isCurrentlyAssigned; m.Title = v.Title; m.AssignedDate = v.AssignedDate; resList.Add(m); } return(resList); }
/// <summary> /// Book is assigned to the Borrower /// </summary> /// <param> AssignBookDomainModel</param> /// <returns>bool<BorrowersDomainModel> </returns> public bool AssignBook(AssignBookDomainModel obj) { //Assigning the book and updating the list IList <AssignBookDomainModel> AssignList = MemoryCache.Get <IList <AssignBookDomainModel> >("AssignBookList").ToList(); obj.isCurrentlyAssigned = true; AssignList.Add(obj); //Updating the AssignList Common.InMemoryOperations.UpdateList(AssignList, "AssignBookList"); //Updating the TotalAssigned Books as it can be updated in list as reference IList <BooksDomainModel> bookList = MemoryCache.Get <IList <BooksDomainModel> >("BooksList").ToList(); bookList.First(d => d.ID == obj.BookID).TotalAssigned += 1; return(true); }