public List<TaskItem> GetManagedTasksOverdue() { var overdueTaskLastDate = DateTime.Today.Subtract(new TimeSpan(7, 0, 0, 0)); var taskroles = from taskrole in bCheckUOW.OpsChecklistTaskRoleRepository.All() where taskrole.SecurityUserLoginID == ContextUserLoginID && taskrole.TaskRole.Role == TaskRoles.TASKMANAGER select taskrole; var tasks = (from t in taskroles where t.OpsChecklist.CreatedDateLocal >= overdueTaskLastDate && t.OpsChecklist.CreatedDateLocal < DateTime.Today && t.OpsChecklist.EffectiveEndDate == null select new { t.OpsChecklist.CreatedDateLocal, t.OpsChecklist.ID, t.OpsChecklist.ChecklistTask.ChecklistID, t.OpsChecklist.Version, t.OpsChecklist.DueTime, t.OpsChecklist.AlertTime, t.OpsChecklist.EscalationLevel1Time, t.OpsChecklist.TimeTakenToComplete, t.OpsChecklist.LastUpdated, t.OpsChecklist.LastUpdatedBy, t.OpsChecklist.ChecklistTask.Description, t.OpsChecklist.ChecklistTask.TaskName, t.OpsChecklist.ChecklistTaskVersion, t.OpsChecklist.ChecklistTaskID, t.OpsChecklist.LateIncompleteReasonID, t.OpsChecklist.LinkToProcess, t.OpsChecklist.ManagementSignOffStatusID, t.OpsChecklist.StatusID, t.OpsChecklist.EffectiveStartDate, t.OpsChecklist.ChecklistTask.LocationID, Status = t.OpsChecklist.Status.Name, ManagementSignOff = t.OpsChecklist.ManagementSignOffStatu.Name, LateIncompleteReason = t.OpsChecklist.LateIncompleteReason.Name, t.OpsChecklist.Comments, Owner = "", KRI = "", t.OpsChecklist.OpsChecklistTaskRoles }); List<TaskItem> taskitems = new List<TaskItem>(); Dictionary<DateTime, List<int>> generatedtaskDates = new Dictionary<DateTime, List<int>>(); for (DateTime day = DateTime.Today.Subtract(new TimeSpan(1, 0, 0, 0)); day >= DateTime.Today.Subtract(new TimeSpan(7, 0, 0, 0)); day = day.Subtract(new TimeSpan(1, 0, 0, 0))) { generatedtaskDates[day] = new List<int>(); } foreach (var t in tasks) { generatedtaskDates[t.CreatedDateLocal].Add(t.ChecklistTaskID); if (t.ManagementSignOff == ManagementStatus.APPROVED) continue; TaskItem taskitem = new TaskItem() { Description = t.Description, AlertTime = t.AlertTime.ToString(), LocationID = t.LocationID, DueTime = t.DueTime.ToString(), EscalationLevel1Time = t.EscalationLevel1Time.ToString(), ChecklistTaskID = t.ChecklistTaskID, OpsChecklistTaskID = t.ID, ChecklistID = t.ChecklistID, ChecklistTaskVersion = t.ChecklistTaskVersion, EffectiveStartDate = t.EffectiveStartDate.ToString(), LateIncompleteReasonID = t.LateIncompleteReasonID, LinkToProcess = t.LinkToProcess, ManagementSignOffStatusID = t.ManagementSignOffStatusID, StatusID = t.StatusID, TimeTakenToComplete = t.TimeTakenToComplete.ToString(), Version = 1, IsTaskFromOpsChecklist = true, TaskName = t.TaskName, UniqueID = Guid.NewGuid(), CreatedDateLocal = t.CreatedDateLocal }; taskitem.Assignees = new List<Helpers.Definitions.User>(); taskitem.Managers = new List<Helpers.Definitions.User>(); t.OpsChecklistTaskRoles.ToList().ForEach(taskrole => { User usr = new User(); if (taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; taskitem.Assignees.Add(usr); } if (taskrole.TaskRole.Role == TaskRoles.TASKMANAGER) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; taskitem.Managers.Add(usr); } }); taskitems.Add(taskitem); } var checklisttaskroles = from checklisttaskrole in bCheckUOW.ChecklistTaskRoleRepository.All() where checklisttaskrole.SecurityUserLoginID == ContextUserLoginID && checklisttaskrole.TaskRole.Role == TaskRoles.TASKMANAGER select checklisttaskrole; var checklisttasks = from taskrole in checklisttaskroles where taskrole.ChecklistTask.EffectiveEndDate == null select new { taskrole.ChecklistTask.ID, taskrole.ChecklistTask.ChecklistID, taskrole.ChecklistTask.Version, taskrole.ChecklistTask.DueTime, taskrole.ChecklistTask.AlertTime, taskrole.ChecklistTask.EscalationLevel1Time, taskrole.ChecklistTask.Description, taskrole.ChecklistTask.TaskName, taskrole.ChecklistTask.LastUpdated, taskrole.ChecklistTask.LastUpdatedBy, taskrole.ChecklistTask.LocationID, taskrole.ChecklistTask.FrequencyID, taskrole.ChecklistTask.SpecificFrequencyID, taskrole.ChecklistTask.RandomFrequencyID, ChecklistTaskVersion = taskrole.ChecklistTask.Version, taskrole.ChecklistTask.LinkToProcess, StatusID = 5, ManagementSignOffStatusID = 5, taskrole.ChecklistTask.EffectiveStartDate, taskrole.ChecklistTask.EffectiveEndDate, LateIncompleteReasonID = 0, taskrole.ChecklistTask.Comments, Owner = "", KRI = "", taskrole.ChecklistTask.ChecklistTaskRoles }; for (DateTime day = DateTime.Today.Subtract(new TimeSpan(1, 0, 0, 0)); day >= DateTime.Today.Subtract(new TimeSpan(7, 0, 0, 0)); day = day.Subtract(new TimeSpan(1, 0, 0, 0))) { var validChecklistTasksforToday = checklisttasks.ToList().Where(cklisttask => (cklisttask.EffectiveStartDate <= day && cklisttask.EffectiveEndDate == null)); foreach (var t in validChecklistTasksforToday) { if (IsDateHoliday(day, t.LocationID) == true) continue; if (generatedtaskDates[day].Contains(t.ID) == true) continue; TaskItem taskitem = new TaskItem() { Description = t.Description, AlertTime = t.AlertTime.ToString(), LocationID = t.LocationID, DueTime = t.DueTime.ToString(), FrequencyID = t.FrequencyID, SpecificFrequencyID = t.SpecificFrequencyID, RandomFrequencyID = t.RandomFrequencyID, EscalationLevel1Time = t.EscalationLevel1Time.ToString(), ChecklistID = t.ChecklistID, ChecklistTaskID = t.ID, ChecklistTaskVersion = t.ChecklistTaskVersion, EffectiveStartDate = t.EffectiveStartDate.ToString(), LateIncompleteReasonID = t.LateIncompleteReasonID == 0 ? (int?)null : t.LateIncompleteReasonID, LinkToProcess = t.LinkToProcess, ManagementSignOffStatusID = t.ManagementSignOffStatusID, StatusID = t.StatusID, TimeTakenToComplete = null, Version = 1, IsTaskFromOpsChecklist = false, TaskName = t.TaskName, UniqueID = Guid.NewGuid(), CreatedDateLocal = day, }; if (ShouldGenerateTaskToday(taskitem, day, null) == false) continue; taskitem.Assignees = new List<Helpers.Definitions.User>(); taskitem.Managers = new List<Helpers.Definitions.User>(); t.ChecklistTaskRoles.ToList().ForEach(taskrole => { User usr = new User(); if (taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; taskitem.Assignees.Add(usr); } if (taskrole.TaskRole.Role == TaskRoles.TASKMANAGER) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; taskitem.Managers.Add(usr); } }); taskitems.Add(taskitem); } } return taskitems; }
void InitilizeColumns() { var unOrderedExcelColumns = new Dictionary<string, ExcelColumn>(); var t = new bCheckV2.Helpers.Definitions.TaskItem(); var gridColumns = t.GetType().GetProperties().Where( prop => Attribute.IsDefined(prop, typeof(GridVisibilityAttribute))).ToList(); _excelParams.AddToLog("Parsing columns"); foreach (var field in gridColumns) { ExcelColumn column = InitializeExcelColumn(field); if (column != null) unOrderedExcelColumns.Add(column.PropertyBind, column); } _excelParams.AddToLog("Reorder columns correctly"); // Then add the columns in the correct order ExcelColumns = new Dictionary<string, ExcelColumn>(); double orderNo = 1; if (!ExcelColumns.ContainsKey("ID")) ExcelColumns.Add("ID", unOrderedExcelColumns["ID"]); foreach (var field in gridColumns) { string name = field.Name; // The LinkTitle field will usually appear but this can't be updated so we replace // it with the Title field if (name == "LinkTitle") name = "Title"; if (unOrderedExcelColumns.ContainsKey(name) && !ExcelColumns.ContainsKey(name)) { unOrderedExcelColumns[name].OrderNo = orderNo; ExcelColumns.Add(name, unOrderedExcelColumns[name]); orderNo++; } } }
public List<TaskItem> GetAssignedTasksNotApplicable() { var completedTaskLastDate = DateTime.Today.Subtract(new TimeSpan(7, 0, 0, 0)); var taskroles = from taskrole in bCheckUOW.OpsChecklistTaskRoleRepository.All() where taskrole.SecurityUserLoginID == ContextUserLoginID && taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE select taskrole; var tasks = (from t in taskroles where t.OpsChecklist.CreatedDateLocal >= completedTaskLastDate && t.OpsChecklist.EffectiveEndDate == null && t.OpsChecklist.Status.Name == AssigneeStatus.NA select new { t.OpsChecklist.ID, t.OpsChecklist.ChecklistTask.ChecklistID, t.OpsChecklist.Version, t.OpsChecklist.DueTime, t.OpsChecklist.AlertTime, t.OpsChecklist.EscalationLevel1Time, t.OpsChecklist.TimeTakenToComplete, t.OpsChecklist.LastUpdated, t.OpsChecklist.LastUpdatedBy, t.OpsChecklist.ChecklistTask.Description, t.OpsChecklist.ChecklistTask.TaskName, t.OpsChecklist.ChecklistTaskVersion, t.OpsChecklist.ChecklistTaskID, t.OpsChecklist.LateIncompleteReasonID, t.OpsChecklist.LinkToProcess, t.OpsChecklist.ManagementSignOffStatusID, t.OpsChecklist.StatusID, t.OpsChecklist.EffectiveStartDate, t.OpsChecklist.ChecklistTask.LocationID, Status = t.OpsChecklist.Status.Name, t.OpsChecklist.CreatedDateLocal, ManagementSignOff = t.OpsChecklist.ManagementSignOffStatu.Name, LateIncompleteReason = t.OpsChecklist.LateIncompleteReason.Name, t.OpsChecklist.Comments, Owner = "", KRI = "", t.OpsChecklist.OpsChecklistTaskRoles }); List<TaskItem> taskitems = new List<TaskItem>(); foreach (var t in tasks) { TaskItem taskitem = new TaskItem() { AlertTime = t.AlertTime.ToString(), LocationID = t.LocationID, DueTime = t.DueTime.ToString(), Description = t.Description, EscalationLevel1Time = t.EscalationLevel1Time.ToString(), ChecklistTaskID = t.ChecklistTaskID, ChecklistID = t.ChecklistID, OpsChecklistTaskID = t.ID, ChecklistTaskVersion = t.ChecklistTaskVersion, EffectiveStartDate = t.EffectiveStartDate.ToString(), LateIncompleteReasonID = t.LateIncompleteReasonID, LinkToProcess = t.LinkToProcess, ManagementSignOffStatusID = t.ManagementSignOffStatusID, StatusID = t.StatusID, TimeTakenToComplete = t.TimeTakenToComplete.ToString(), Version = 1, IsTaskFromOpsChecklist = true, TaskName = t.TaskName, UniqueID = Guid.NewGuid(), CreatedDateLocal = t.CreatedDateLocal }; taskitem.Assignees = new List<Helpers.Definitions.User>(); taskitem.Managers = new List<Helpers.Definitions.User>(); t.OpsChecklistTaskRoles.ToList().ForEach(taskrole => { User usr = new User(); if (taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Assignees.Add(usr); } if (taskrole.TaskRole.Role == TaskRoles.TASKMANAGER) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Managers.Add(usr); } }); taskitems.Add(taskitem); } return taskitems; }
public List<TaskItem> GetAssignedTasksDueToday() { //Get Task Roles var taskroles = from taskrole in bCheckUOW.OpsChecklistTaskRoleRepository.All() where taskrole.SecurityUserLoginID == ContextUserLoginID && taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE select taskrole; var opschecklisttasks = (from t in taskroles where t.OpsChecklist.CreatedDateLocal == DateTime.Today && t.OpsChecklist.EffectiveEndDate == null select new { t.OpsChecklist.ID, t.OpsChecklist.Version, t.OpsChecklist.DueTime, t.OpsChecklist.AlertTime, t.OpsChecklist.EscalationLevel1Time, t.OpsChecklist.TimeTakenToComplete, t.OpsChecklist.LastUpdated, t.OpsChecklist.LastUpdatedBy, t.OpsChecklist.ChecklistTask.Description, t.OpsChecklist.ChecklistTask.TaskName, t.OpsChecklist.ChecklistTaskVersion, t.OpsChecklist.ChecklistTaskID, t.OpsChecklist.ChecklistTask.ChecklistID, t.OpsChecklist.LateIncompleteReasonID, t.OpsChecklist.LinkToProcess, t.OpsChecklist.ManagementSignOffStatusID, t.OpsChecklist.StatusID, t.OpsChecklist.EffectiveStartDate, Status = t.OpsChecklist.Status.Name, t.OpsChecklist.CreatedDateLocal, t.OpsChecklist.ChecklistTask.LocationID, t.OpsChecklist.ChecklistTask.ID1, ManagementSignOff = t.OpsChecklist.ManagementSignOffStatu.Name, LateIncompleteReason = t.OpsChecklist.LateIncompleteReason.Name, t.OpsChecklist.Comments, Owner = "", KRI = "", t.OpsChecklist.OpsChecklistTaskRoles }); List<TaskItem> taskitems = new List<TaskItem>(); List<int> taskids = new List<int>(); foreach (var t in opschecklisttasks) { taskids.Add(t.ChecklistTaskID); if (t.Status == AssigneeStatus.COMPLETE) continue; TaskItem taskitem = new TaskItem() { AlertTime = t.AlertTime.ToString(), LocationID = t.LocationID, DueTime = t.DueTime.ToString(), Description = t.Description, EscalationLevel1Time = t.EscalationLevel1Time.ToString(), ChecklistTaskID = t.ChecklistTaskID, OpsChecklistTaskID = t.ID, ChecklistID = t.ChecklistID, CreatedDateLocal = t.CreatedDateLocal.ToUniversalTime(), ChecklistTaskVersion = t.ChecklistTaskVersion, EffectiveStartDate = t.EffectiveStartDate.ToString(), LateIncompleteReasonID = t.LateIncompleteReasonID, LinkToProcess = t.LinkToProcess, ManagementSignOffStatusID = t.ManagementSignOffStatusID, StatusID = t.StatusID, TimeTakenToComplete = t.TimeTakenToComplete.ToString(), Version = 1, IsTaskFromOpsChecklist = true, TaskName = t.TaskName, ID1 = t.ID1, UniqueID = Guid.NewGuid() }; taskitem.Assignees = new List<User>(); taskitem.Managers = new List<User>(); t.OpsChecklistTaskRoles.ToList().ForEach(taskrole => { User usr = new User(); if (taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Assignees.Add(usr); } if (taskrole.TaskRole.Role == TaskRoles.TASKMANAGER) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Managers.Add(usr); } }); taskitems.Add(taskitem); } //var checklistteams = from otteam in bCheckUOW.ChecklistTaskTeamRepository.All() // where teamids.Contains(otteam.TeamID) // select otteam; var checklisttaskroles = from checklisttaskrole in bCheckUOW.ChecklistTaskRoleRepository.All() where checklisttaskrole.SecurityUserLoginID == ContextUserLoginID && checklisttaskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE select checklisttaskrole; var checklisttasks = from ctteam in checklisttaskroles where ctteam.ChecklistTask.EffectiveEndDate == null && taskids.Contains(ctteam.ChecklistTaskID) == false select new { ctteam.ChecklistTask.ID, ctteam.ChecklistTask.LocationID, ctteam.ChecklistTask.Version, ctteam.ChecklistTask.DueTime, ctteam.ChecklistTask.AlertTime, ctteam.ChecklistTask.EscalationLevel1Time, ctteam.ChecklistTask.Description, ctteam.ChecklistTask.TaskName, ctteam.ChecklistTask.LastUpdated, ctteam.ChecklistTask.LastUpdatedBy, ctteam.ChecklistTask.FrequencyID, ctteam.ChecklistTask.SpecificFrequencyID, ctteam.ChecklistTask.RandomFrequencyID, ctteam.ChecklistTask.ChecklistID, ChecklistTaskVersion = ctteam.ChecklistTask.Version, ctteam.ChecklistTask.LinkToProcess, StatusID = 5, ManagementSignOffStatusID = 5, ctteam.ChecklistTask.EffectiveStartDate, LateIncompleteReasonID = 0, ctteam.ChecklistTask.Comments, Owner = "", KRI = "", ctteam.ChecklistTask.ChecklistTaskRoles }; foreach (var t in checklisttasks) { TaskItem taskitem = new TaskItem() { AlertTime = t.AlertTime.ToString(), LocationID = t.LocationID, DueTime = t.DueTime.ToString(), Description = t.Description, FrequencyID = t.FrequencyID, SpecificFrequencyID = t.SpecificFrequencyID, RandomFrequencyID = t.RandomFrequencyID, EscalationLevel1Time = t.EscalationLevel1Time.ToString(), ChecklistTaskID = t.ID, ChecklistID = t.ChecklistID, CreatedDateLocal = DateTime.Today, ChecklistTaskVersion = t.ChecklistTaskVersion, EffectiveStartDate = t.EffectiveStartDate.ToString(), LateIncompleteReasonID = t.LateIncompleteReasonID == 0 ? (int?)null : t.LateIncompleteReasonID, LinkToProcess = t.LinkToProcess, ManagementSignOffStatusID = t.ManagementSignOffStatusID, StatusID = t.StatusID, TimeTakenToComplete = null, Version = 1, IsTaskFromOpsChecklist = false, TaskName = t.TaskName, UniqueID = Guid.NewGuid() }; if (ShouldGenerateTaskToday(taskitem, DateTime.Today, null) == false) continue; taskitem.Assignees = new List<User>(); taskitem.Managers = new List<User>(); t.ChecklistTaskRoles.ToList().ForEach(taskrole => { User usr = new User(); if (taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Assignees.Add(usr); } if (taskrole.TaskRole.Role == TaskRoles.TASKMANAGER) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Managers.Add(usr); } }); taskitems.Add(taskitem); } return taskitems; }
public List<TaskItem> GetAssignedTasksOverdue() { var overdueTaskLastDate = DateTime.Today.Subtract(new TimeSpan(7, 0, 0, 0)); List<TaskItem> taskitems = new List<TaskItem>(); #region Getting Tasks from Checklists var checklisttaskroles = from checklisttaskrole in bCheckUOW.ChecklistTaskRoleRepository.All() where checklisttaskrole.SecurityUserLoginID == ContextUserLoginID && checklisttaskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE && (checklisttaskrole.ChecklistTask.EffectiveEndDate == null || checklisttaskrole.ChecklistTask.EffectiveEndDate >= overdueTaskLastDate) select checklisttaskrole; var checklisttasks = from taskrole in checklisttaskroles select new { taskrole.ChecklistTask.ID, taskrole.ChecklistTask.ID1, taskrole.ChecklistTask.ChecklistID, taskrole.ChecklistTask.LocationID, taskrole.ChecklistTask.Version, taskrole.ChecklistTask.DueTime, taskrole.ChecklistTask.AlertTime, taskrole.ChecklistTask.EscalationLevel1Time, taskrole.ChecklistTask.Description, taskrole.ChecklistTask.TaskName, taskrole.ChecklistTask.LastUpdated, taskrole.ChecklistTask.LastUpdatedBy, taskrole.ChecklistTask.FrequencyID, taskrole.ChecklistTask.SpecificFrequencyID, taskrole.ChecklistTask.RandomFrequencyID, ChecklistTaskVersion = taskrole.ChecklistTask.Version, taskrole.ChecklistTask.LinkToProcess, StatusID = 5, ManagementSignOffStatusID = 5, taskrole.ChecklistTask.EffectiveStartDate, taskrole.ChecklistTask.EffectiveEndDate, LateIncompleteReasonID = 0, taskrole.ChecklistTask.Comments, Owner = "", KRI = "", taskrole.ChecklistTask.ChecklistTaskRoles }; #endregion var checklisttaskIds = checklisttasks.Select(ck => ck.ID).ToList(); #region Getting Tasks from Operations Checklist var opstasks = (from opstask in bCheckUOW.OpsChecklistRepository.All() where opstask.CreatedDateLocal >= overdueTaskLastDate && opstask.CreatedDateLocal < DateTime.Today && opstask.EffectiveEndDate == null && checklisttaskIds.Contains(opstask.ChecklistTaskID) select new { opstask.ID, opstask.ChecklistTaskID, opstask.ChecklistTask.ChecklistID, opstask.Version, opstask.DueTime, opstask.AlertTime, opstask.EscalationLevel1Time, opstask.TimeTakenToComplete, opstask.LastUpdated, opstask.LastUpdatedBy, opstask.ChecklistTask.Description, opstask.ChecklistTask.TaskName, opstask.ChecklistTaskVersion, opstask.LateIncompleteReasonID, opstask.LinkToProcess, opstask.ManagementSignOffStatusID, opstask.StatusID, opstask.EffectiveStartDate, opstask.CreatedDateLocal, opstask.ChecklistTask.LocationID, Status = opstask.Status.Name, ManagementSignOff = opstask.ManagementSignOffStatu.Name, LateIncompleteReason = opstask.LateIncompleteReason.Name, opstask.Comments, Owner = "", KRI = "", opstask.OpsChecklistTaskRoles }).ToList(); //var taskroles = from taskrole in bCheckUOW.OpsChecklistTaskRoleRepository.All() // where taskrole.SecurityUserLoginID == ContextUserLoginID && taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE // select taskrole; //var tasks = (from t in taskroles // where t.OpsChecklist.CreatedDateLocal >= overdueTaskLastDate && t.OpsChecklist.CreatedDateLocal < DateTime.Today && t.OpsChecklist.EffectiveEndDate == null // select new // { // t.OpsChecklist.ID, // t.OpsChecklist.ChecklistTaskID, // t.OpsChecklist.ChecklistTask.ChecklistID, // t.OpsChecklist.Version, // t.OpsChecklist.DueTime, // t.OpsChecklist.AlertTime, // t.OpsChecklist.EscalationLevel1Time, // t.OpsChecklist.TimeTakenToComplete, // t.OpsChecklist.LastUpdated, // t.OpsChecklist.LastUpdatedBy, // t.OpsChecklist.ChecklistTask.Description, // t.OpsChecklist.ChecklistTask.TaskName, // t.OpsChecklist.ChecklistTaskVersion, // t.OpsChecklist.LateIncompleteReasonID, // t.OpsChecklist.LinkToProcess, // t.OpsChecklist.ManagementSignOffStatusID, // t.OpsChecklist.StatusID, // t.OpsChecklist.EffectiveStartDate, // t.OpsChecklist.CreatedDateLocal, // t.OpsChecklist.ChecklistTask.LocationID, // Status = t.OpsChecklist.Status.Name, // ManagementSignOff = t.OpsChecklist.ManagementSignOffStatu.Name, // LateIncompleteReason = t.OpsChecklist.LateIncompleteReason.Name, // t.OpsChecklist.Comments, // Owner = "", // KRI = "", // t.OpsChecklist.OpsChecklistTaskRoles // }); Dictionary<DateTime, List<int>> generatedtaskDates = new Dictionary<DateTime, List<int>>(); for (DateTime day = DateTime.Today.Subtract(new TimeSpan(1, 0, 0, 0)); day >= DateTime.Today.Subtract(new TimeSpan(7, 0, 0, 0)); day = day.Subtract(new TimeSpan(1, 0, 0, 0))) { generatedtaskDates[day] = new List<int>(); } foreach (var t in opstasks) { generatedtaskDates[t.CreatedDateLocal].Add(t.ChecklistTaskID); if (t.Status == AssigneeStatus.COMPLETE || t.Status == AssigneeStatus.NA || t.OpsChecklistTaskRoles.Where(opstaskrole => opstaskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE && opstaskrole.SecurityUserLoginID == ContextUserLoginID).Count() == 0 ) continue; TaskItem taskitem = new TaskItem() { AlertTime = t.AlertTime.ToString(), LocationID = t.LocationID, Description = t.Description, DueTime = t.DueTime.ToString(), EscalationLevel1Time = t.EscalationLevel1Time.ToString(), ChecklistTaskID = t.ChecklistTaskID, ChecklistID = t.ChecklistID, OpsChecklistTaskID = t.ID, ChecklistTaskVersion = t.ChecklistTaskVersion, EffectiveStartDate = t.EffectiveStartDate.ToString(), LateIncompleteReasonID = t.LateIncompleteReasonID, LinkToProcess = t.LinkToProcess, ManagementSignOffStatusID = t.ManagementSignOffStatusID, StatusID = t.StatusID, TimeTakenToComplete = t.TimeTakenToComplete.ToString(), Version = t.Version, IsTaskFromOpsChecklist = true, CreatedDateLocal = t.CreatedDateLocal, TaskName = t.TaskName, UniqueID = Guid.NewGuid() }; taskitem.Assignees = new List<Helpers.Definitions.User>(); taskitem.Managers = new List<Helpers.Definitions.User>(); t.OpsChecklistTaskRoles.ToList().ForEach(taskrole => { User usr = new User(); if (taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Assignees.Add(usr); } if (taskrole.TaskRole.Role == TaskRoles.TASKMANAGER) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Managers.Add(usr); } }); taskitems.Add(taskitem); } #endregion for (DateTime day = DateTime.Today.Subtract(new TimeSpan(1, 0, 0, 0)); day >= DateTime.Today.Subtract(new TimeSpan(7, 0, 0, 0)); day = day.Subtract(new TimeSpan(1, 0, 0, 0))) { var allVersionsofvalidChecklistTasksforToday = checklisttasks.ToList().Where(cklisttask => ((cklisttask.EffectiveStartDate <= day && cklisttask.EffectiveEndDate >= day) || (cklisttask.EffectiveStartDate <= day && cklisttask.EffectiveEndDate == null))); var validChecklistTasksforToday = allVersionsofvalidChecklistTasksforToday.GroupBy(avTask => avTask.ID1).Select(t => t.Aggregate((acc, next) => { if (acc.EffectiveEndDate == null) { return acc; } if (next.EffectiveEndDate == null) { return next; } else { if (acc.EffectiveEndDate > next.EffectiveEndDate) { return acc; } else { return next; } } })); foreach (var t in validChecklistTasksforToday) { if (IsDateHoliday(day, t.LocationID) == true) continue; if (generatedtaskDates[day].Contains(t.ID) == true) continue; TaskItem taskitem = new TaskItem() { AlertTime = t.AlertTime.ToString(), LocationID = t.LocationID, Description = t.Description, FrequencyID = t.FrequencyID, SpecificFrequencyID = t.SpecificFrequencyID, RandomFrequencyID = t.RandomFrequencyID, DueTime = t.DueTime.ToString(), EscalationLevel1Time = t.EscalationLevel1Time.ToString(), ChecklistTaskID = t.ID, ChecklistID = t.ChecklistID, ChecklistTaskVersion = t.ChecklistTaskVersion, EffectiveStartDate = t.EffectiveStartDate.ToString(), LateIncompleteReasonID = t.LateIncompleteReasonID == 0 ? (int?)null : t.LateIncompleteReasonID, LinkToProcess = t.LinkToProcess, ManagementSignOffStatusID = t.ManagementSignOffStatusID, StatusID = t.StatusID, TimeTakenToComplete = null, Version = 1, IsTaskFromOpsChecklist = false, TaskName = t.TaskName, UniqueID = Guid.NewGuid(), CreatedDateLocal = day }; if (ShouldGenerateTaskToday(taskitem, day, null) == false) continue; taskitem.Assignees = new List<Helpers.Definitions.User>(); taskitem.Managers = new List<Helpers.Definitions.User>(); t.ChecklistTaskRoles.ToList().ForEach(taskrole => { User usr = new User(); if (taskrole.TaskRole.Role == TaskRoles.TASKASSIGNEE) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Assignees.Add(usr); } if (taskrole.TaskRole.Role == TaskRoles.TASKMANAGER) { usr.UserLoginID = taskrole.SecurityUserLoginID; usr.BRID = taskrole.SecurityUser.BRID; usr.Username = taskrole.SecurityUser.UserName; taskitem.Managers.Add(usr); } }); taskitems.Add(taskitem); } } return taskitems; }
public List<TaskItem> GetTaskHistory(TaskItem titem) { List<TaskItem> titems = new List<TaskItem>(); //Get all the teamid's for the teams the user ia a part of var checklisttask = (from ctask in bCheckUOW.ChecklistTaskRepository.All() where ctask.ID == titem.ChecklistTaskID select new { ctask.ID, ctask.ChecklistID, ctask.LocationID, ctask.Version, ctask.DueTime, ctask.AlertTime, ctask.EscalationLevel1Time, ctask.Description, ctask.TaskName, ctask.LastUpdated, ctask.LastUpdatedBy, ctask.FrequencyID, ctask.SpecificFrequencyID, ctask.RandomFrequencyID, ChecklistTaskVersion = ctask.Version, ctask.LinkToProcess, StatusID = 5, ManagementSignOffStatusID = 5, ctask.EffectiveStartDate, ctask.EffectiveEndDate, LateIncompleteReasonID = 0, ctask.Comments, Owner = "", KRI = "", ctask.ChecklistTaskTeams }).First(); TaskItem clitem = new TaskItem() { AlertTime = checklisttask.AlertTime.ToString(), LocationID = checklisttask.LocationID, DueTime = checklisttask.DueTime.ToString(), Description = checklisttask.Description, EscalationLevel1Time = checklisttask.EscalationLevel1Time.ToString(), ChecklistID = checklisttask.ChecklistID, ChecklistTaskID = checklisttask.ID, CreatedDateLocal = titem.CreatedDateLocal, ChecklistTaskVersion = checklisttask.ChecklistTaskVersion, EffectiveStartDate = checklisttask.EffectiveStartDate.ToString(), LateIncompleteReasonID = checklisttask.LateIncompleteReasonID, LinkToProcess = checklisttask.LinkToProcess, ManagementSignOffStatusID = checklisttask.ManagementSignOffStatusID, StatusID = checklisttask.StatusID, Version = 1, IsTaskFromOpsChecklist = true, TaskName = checklisttask.TaskName, }; titems.Add(clitem); var taskCreatedDate = titem.CreatedDateLocal.ToUniversalTime(); var taskhistoryItems = from opstask in bCheckUOW.OpsChecklistRepository.All() where opstask.ChecklistTaskID == titem.ChecklistTaskID && opstask.CreatedDateLocal == taskCreatedDate select new { AlertTime = opstask.AlertTime, LocationID = opstask.ChecklistTask.LocationID, DueTime = opstask.DueTime, Description = opstask.ChecklistTask.Description, EscalationLevel1Time = opstask.EscalationLevel1Time, opstask.ChecklistTaskID, opstask.ID, opstask.ChecklistTask.ChecklistID, CreatedDateLocal = opstask.CreatedDateLocal, ChecklistTaskVersion = opstask.ChecklistTaskVersion, EffectiveStartDate = opstask.EffectiveStartDate, LateIncompleteReasonID = opstask.LateIncompleteReasonID, LinkToProcess = opstask.LinkToProcess, ManagementSignOffStatusID = opstask.ManagementSignOffStatusID, StatusID = opstask.StatusID, TimeTakenToComplete = opstask.TimeTakenToComplete, Version = 1, IsTaskFromOpsChecklist = true, TaskName = opstask.ChecklistTask.TaskName, }; taskhistoryItems.ToList().ForEach(opstask => { TaskItem tempitem = new TaskItem() { AlertTime = opstask.AlertTime.ToString(), LocationID = opstask.LocationID, DueTime = opstask.DueTime.ToString(), Description = opstask.Description, EscalationLevel1Time = opstask.EscalationLevel1Time.ToString(), ChecklistID = opstask.ChecklistID, ChecklistTaskID = opstask.ChecklistTaskID, OpsChecklistTaskID = opstask.ID, CreatedDateLocal = opstask.CreatedDateLocal, ChecklistTaskVersion = opstask.ChecklistTaskVersion, EffectiveStartDate = opstask.EffectiveStartDate.ToString(), LateIncompleteReasonID = opstask.LateIncompleteReasonID, LinkToProcess = opstask.LinkToProcess, ManagementSignOffStatusID = opstask.ManagementSignOffStatusID, StatusID = opstask.StatusID, TimeTakenToComplete = opstask.TimeTakenToComplete.ToString(), Version = 1, IsTaskFromOpsChecklist = true, TaskName = opstask.TaskName, }; titems.Add(tempitem); }); return titems; }
//Check for task frequency private bool ShouldGenerateTaskToday(TaskItem t, DateTime date, string bdToday = "1 Business Day") { bool generateTask = false; DateTime firstDayofMonth = new DateTime(date.Year, date.Month, 1); DateTime[] bankHolidays = new DateTime[1]; string todaybd = BusinessDaysUntil(firstDayofMonth, date, null).ToString() + "Business Day"; string freq = ""; string specfreq = ""; string rdfreq = ""; freq = Frequencies.Where(f => f.ID == t.FrequencyID).FirstOrDefault() == null ? "" : Frequencies.Where(f => f.ID == t.FrequencyID).FirstOrDefault().Name; specfreq = SpecificFrequencies.Where(sf => sf.ID == t.SpecificFrequencyID).FirstOrDefault() == null ? "" : SpecificFrequencies.Where(sf => sf.ID == t.SpecificFrequencyID).FirstOrDefault().Name; rdfreq = RandomFrequencies.Where(rf => rf.ID == t.RandomFrequencyID).FirstOrDefault() == null ? "" : RandomFrequencies.Where(rf => rf.ID == t.RandomFrequencyID).FirstOrDefault().Name; string freq_temp = ""; string specfreq_temp = ""; string rdfreq_temp = ""; { if (freq == "Adhoc")//Mar 11 ,2011 release { return false; } //if (NextDay == "Yes") //{ // reason = "Next day=Yes"; // addtolist = true; // //bIsFreqValid = true; //} if (freq == "Monthly") { //bIsFreqValid = true; if (specfreq.Contains("th ")) { specfreq_temp = specfreq.Replace("th ", " "); } else if (specfreq.Contains("st ")) { specfreq_temp = specfreq.Replace("st ", " "); } else if (specfreq.Contains("nd ")) { specfreq_temp = specfreq.Replace("nd ", " "); } else if (specfreq.Contains("rd ")) { specfreq_temp = specfreq.Replace("rd ", " "); } if (specfreq_temp == todaybd) { //reason = "Monthly=true"; return true; } } if (freq == "Monthly" && specfreq == "Last day") { if (BusinessDaysUntil(firstDayofMonth, date, null) == date.BusinessDays().Count()) //reason = "Lasy day of month=true"; return true; } //More work left on daily if (freq == "Daily" && specfreq == "Daily") { return true; } if (freq == "Weekly" && specfreq == date.DayOfWeek.ToString())//using regional date time { return true; } if (freq == "Twice a Week") { //bIsFreqValid = true; if (specfreq == date.DayOfWeek.ToString())//using regional date time { return true; } } if (freq == "Yearly" && specfreq == date.Month.ToString()) { //bIsFreqValid = true; if (rdfreq.Contains("th ")) { rdfreq_temp = rdfreq.Replace("th ", " "); } else if (rdfreq.Contains("st ")) { rdfreq_temp = rdfreq.Replace("st ", " "); } else if (rdfreq.Contains("nd ")) { rdfreq_temp = rdfreq.Replace("nd ", " "); } else if (rdfreq.Contains("rd ")) { rdfreq_temp = rdfreq.Replace("rd ", " "); } if (rdfreq_temp == todaybd) { return true; } //1st Monday Case. //string freqday_temp = freqday + " " + DateTime.Today.DayOfWeek;//using regional date time //if (rdfreq_temp == freqday_temp) //{ // reason = "Yearly=true"; // addtolist = true; //} if (rdfreq == "Last day" && (BusinessDaysUntil(firstDayofMonth, date, null) == date.BusinessDays().Count() == true)) { //reason = "Lasy day of month=true"; return true; } } //if (bIsFreqValid==false ) context.Trace.TraceEvent(System.Diagnostics.TraceEventType.Error, AllConstants.TRACE_CHECKLISTITEMISSUEINVALIDFREQUENCY ,string.Format ("The 'Frequency' field is invalid:'{0}',checklist:'{1}',ID:{2}",freq,checklistName ,checklistItemId )); } return false; }