public List<BaseObject> GetDisplayObject(long? currentHouseId) { var displayObjects = new List<BaseObject>(); var lastInventoryModel = new Inventory(); var lastHygieneModel = new Hygiene(); var lastIssueModel = new Issue(); var inventoryObjects = _context.Set<Inventory>().Where(x => x.HouseId == currentHouseId); if (inventoryObjects.Count() > 0) { var inventoryObject = _context.Set<Models.Object>().Where(x => x.ObjectTypeId == (long)ObjectTypes.Inventory).OrderByDescending(x => x.ModifiedDate).First(); lastInventoryModel = _context.Set<Inventory>().Where(x => x.ObjectId == inventoryObject.ObjectId).FirstOrDefault(); var when = _context.Histories.Where(x => x.ObjectId == lastInventoryModel.ObjectId || x.TargetId == lastInventoryModel.ObjectId) .OrderByDescending(x => x.Id).FirstOrDefault().When; lastInventoryModel.LastUpdated = when == null ? string.Empty : timeConverter.CalculateRelativeTime(when); lastInventoryModel.LastUpdatedBy = _context.Users.Where(x => x.UserId == inventoryObject.ModifiedById).FirstOrDefault().Username; lastInventoryModel.LastUpdate = historyHtmlBuilder.BuildLastUpdateBaseObjectHistoryForWidget(lastInventoryModel.ObjectId); } var hygieneObjects = _context.Set<Hygiene>().Where(x => x.HouseId == currentHouseId); if (hygieneObjects.Count() > 0) { var hygieneObject = _context.Set<Models.Object>().Where(x => x.ObjectTypeId == (long)ObjectTypes.Hygiene).OrderByDescending(x => x.ModifiedDate).First(); lastHygieneModel = _context.Set<Hygiene>().Where(x => x.ObjectId == hygieneObject.ObjectId).FirstOrDefault(); var when = _context.Histories.Where(x => x.ObjectId == lastHygieneModel.ObjectId || x.TargetId == lastHygieneModel.ObjectId) .OrderByDescending(x => x.Id).FirstOrDefault().When; lastHygieneModel.LastUpdated = when == null ? string.Empty : timeConverter.CalculateRelativeTime(when); lastHygieneModel.LastUpdatedBy = _context.Users.Where(x => x.UserId == hygieneObject.ModifiedById).FirstOrDefault().Username; lastHygieneModel.LastUpdate = historyHtmlBuilder.BuildLastUpdateBaseObjectHistoryForWidget(lastHygieneModel.ObjectId); } var issueObjects = _context.Set<Issue>().Where(x => x.HouseId == currentHouseId); if (issueObjects.Count() > 0) { var issueObject = _context.Set<Models.Object>().Where(x => x.ObjectTypeId == (long)ObjectTypes.Issue).OrderByDescending(x => x.ModifiedDate).First(); lastIssueModel = _context.Set<Issue>().Where(x => x.ObjectId == issueObject.ObjectId).FirstOrDefault(); var when = _context.Histories.Where(x => x.ObjectId == lastIssueModel.ObjectId || x.TargetId == lastIssueModel.ObjectId) .OrderByDescending(x => x.Id).FirstOrDefault().When; lastIssueModel.LastUpdated = when == null ? string.Empty : timeConverter.CalculateRelativeTime(when); lastIssueModel.LastUpdatedBy = _context.Users.Where(x => x.UserId == issueObject.ModifiedById).FirstOrDefault().Username; lastIssueModel.LastUpdate = historyHtmlBuilder.BuildLastUpdateBaseObjectHistoryForWidget(lastIssueModel.ObjectId); } displayObjects.Add(lastInventoryModel); displayObjects.Add(lastHygieneModel); displayObjects.Add(lastIssueModel); return displayObjects; }