//AJAX Call public ActionResult HasBeenViewed(int AccessControlID) { var Viewed = string.Empty; var AccessControl = _AccessControlService.GetById(AccessControlID); //is the last entry a "viewed" var PasswordResets = AccessControl.AccessControlTransactions .Where(x => x.TranType.Equals(Model.Common.Constants.TransactionConst.TransactionType.PasswordReset.ToString())).OrderByDescending(x => x.RecordCreated).FirstOrDefault(); DateTime LastResetOrCreated = PasswordResets == null ? AccessControl.RecordCreated : PasswordResets.RecordCreated; //has it been viewed since the last password reset or since it was created if the password has never been reset. var hasViewed = AccessControl.AccessControlTransactions.Where(x => x.RecordCreated > LastResetOrCreated).Any(x => x.TranType.Equals(Model.Common.Constants.TransactionConst.TransactionType.Viewed.ToString())); if (hasViewed) { Viewed = "danger"; } else if (AccessControl.ViewedState == Model.Common.Constants.TransactionConst.TransactionType.Modified.ToString()) { Viewed = "info"; } else if (AccessControl.ViewedState.Equals(Model.Common.Constants.TransactionConst.TransactionType.Created.ToString())) { Viewed = "success"; } return(Json(new { Viewed })); }