Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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++;
                }
            }
            
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
        //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;
        }