public ActionResult UpdateItemStatus(ItemStatusViewModel itemstatusviewmodel) { using (LibraryEntities db = new LibraryEntities()) { try { if (itemstatusviewmodel.itemStatusTypeID == 2) { var currentStatus = db.ItemStatusLogs .Where(x => x.ItemId == itemstatusviewmodel.ItemID) .OrderByDescending(x => x.LogDateTime) .Select(x => x.ItemStatusTypeId) .FirstOrDefault(); if (currentStatus == 2) { return(null); } } Item item = db.Items.Find(itemstatusviewmodel.ItemID); Account account = db.Accounts.Find(itemstatusviewmodel.AccountID); ItemStatusType itemStatusType = db.ItemStatusTypes.Find(itemstatusviewmodel.itemStatusTypeID); ItemStatusLog itemStatusLog = new ItemStatusLog { Item = item, ItemId = item.ItemId, Account = account, AccountId = account.AccountId, ItemStatusTypeId = itemStatusType.ItemStatusTypeId, LogDateTime = DateTime.Now }; if (itemStatusLog.ItemStatusTypeId == 4) { DateTime Now = DateTime.Now; DateTime Duedate = Now.AddDays(3); itemStatusLog.ReturnItemDueDate = Duedate; db.ItemStatusLogs.Add(itemStatusLog); db.SaveChanges(); return(notification.CheckoutSuccess(Duedate)); } if (itemStatusLog.ItemStatusTypeId == 2) { DateTime Now = DateTime.Now; DateTime HoldDate = Now.AddDays(1); itemStatusLog.ReturnItemDueDate = HoldDate; db.ItemStatusLogs.Add(itemStatusLog); db.SaveChanges(); return(notification.ReserveItemSuccess(HoldDate)); } else { db.ItemStatusLogs.Add(itemStatusLog); db.SaveChanges(); return(notification.UpdateItemSuccess()); } } catch { return(notification.UpdateItemFailure()); } } }