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