public async Task <IActionResult> Index() { Client client = await _cm.FindByEmailAsync(User.Identity.Name); int borrowMax = client.BorrowMax; int numModels = await _identityMap.CountModelCopiesOfClient(client.clientId); int cartCount = HttpContext.Session.GetInt32("ItemsCount") ?? 0; TempData["totalBorrowed"] = cartCount + numModels; TempData["canBorrow"] = cartCount + numModels <= borrowMax; TempData["borrowMax"] = borrowMax; var modelCopies = await _identityMap.FindModelCopiesByClient(client.clientId); var returnViewModels = new List <ReturnViewModel>(modelCopies.Count); foreach (ModelCopy element in modelCopies) { string title = ""; switch (element.modelType) { case TypeEnum.Book: { title = (await _identityMap.FindBook(element.modelID)).Title; break; } case TypeEnum.Magazine: { title = (await _identityMap.FindMagazine(element.modelID)).Title; break; } case TypeEnum.Movie: { title = (await _identityMap.FindMovie(element.modelID)).Title; break; } case TypeEnum.Music: { title = (await _identityMap.FindMusic(element.modelID)).Title; break; } } returnViewModels.Add(new ReturnViewModel { BorrowDate = element.borrowedDate, ModelCopyId = element.id, ModelId = element.modelID, ModelType = element.modelType, ReturnDate = element.returnDate, Title = title }); } return(View(returnViewModels)); }
public async Task <List <PrintedLog> > GetLogs() { var logs = await _identityMap.GetAllLogs(); List <PrintedLog> results = new List <PrintedLog>(); List <Task <PrintedLog> > tasker = new List <Task <PrintedLog> >(logs.Count); tasker.AddRange(logs.Select(log => GetPLog(log))); foreach (var task in tasker) { results.Add(await task); } return(results); async Task <PrintedLog> GetPLog(Log log) { ModelCopy modelCopy = await _identityMap.FindModelCopy(log.ModelCopyID).ConfigureAwait(false); string modelName = ""; switch (modelCopy.modelType) { case TypeEnum.Book: modelName = (await _identityMap.FindBook(modelCopy.modelID))?.Title; break; case TypeEnum.Magazine: modelName = (await _identityMap.FindMagazine(modelCopy.modelID))?.Title; break; case TypeEnum.Movie: modelName = (await _identityMap.FindMovie(modelCopy.modelID))?.Title; break; case TypeEnum.Music: modelName = (await _identityMap.FindMusic(modelCopy.modelID))?.Title; break; } Client client = await _clientManager.FindByIdAsync(log.ClientID.ToString()); return(new PrintedLog(client.FirstName + " " + client.LastName, log.Transaction, modelCopy.modelType, modelName, log.ModelCopyID, log.TransactionTime)); } }
//Find methods (by id, isbn10, isbn13) public async Task <Book> FindByIdAsync(string bookId) { Book book = await _im.FindBook(int.Parse(bookId)); return(book); }