Beispiel #1
0
        /// <summary>
        /// Creates the user completed days charts.
        /// </summary>
        /// <returns></returns>
        public ChartModel CreateUserCompletedDaysChart()
        {
            using (var dbContext = GetDatabaseContext())
            {
                // Initial blank filter model.
                TaskFilterModel filterModel = new TaskFilterModel
                {
                    OriginalCreationDateFrom = DateTime.Now.AddDays(-14),
                    OriginalCreationDateTo   = DateTime.Now,
                    ActualFinishDateFrom     = DateTime.Now.AddDays(-14),
                    ActualFinishDateTo       = DateTime.Now,
                    StartedDate   = DateTime.Now.AddDays(-14),
                    AllUsers      = dbContext.Users.ToList(),
                    CreatedUserId = "",
                    TaskPriority  = -1
                };

                ChartModel chartModel = new ChartModel
                {
                    Type = "bar"
                };

                ChartDataModel chartDataModel = new ChartDataModel
                {
                    Labels = new List <string>()
                };

                int index = 0;
                foreach (User user in dbContext.Users.ToList())
                {
                    chartDataModel.Labels.Add(user.UserName);
                }

                ChartDatasetModel chartDatasetModel = new ChartDatasetModel
                {
                    Data            = new int[dbContext.Users.Count()],
                    BackgroundColor = new string[] { "#FF69B4" },
                    BorderColor     = new string[] { "#FFFFFF" },
                };

                IEnumerable <User> users = dbContext.Users.ToList();
                index = 0;
                foreach (User user in users.Where(user => user.AssignedTasks != null))
                {
                    int totalCompletedDays = user.AssignedTasks.Where(task => task.TaskStateId == 3 && task.ActualFinishDate >= filterModel.ActualFinishDateFrom &&
                                                                      task.ActualFinishDate <= filterModel.ActualFinishDateTo).Sum(task => task.ActualDaysTaken);
                    chartDatasetModel.Data[index] = totalCompletedDays;
                    index++;
                }

                chartDataModel.Datasets = new List <ChartDatasetModel> {
                    chartDatasetModel
                };
                chartModel.Data  = chartDataModel;
                chartModel.Title = "User Completed Days - Past Two Weeks";

                return(chartModel);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Filter the tasks by the filter model
        /// </summary>
        /// <param name="filterModel">The filter model.</param>
        /// <param name="tasks">The tasks.</param>
        /// <returns></returns>
        public List <Task> FilterByModel(TaskFilterModel filterModel, List <Task> tasks)
        {
            if (filterModel.OriginalCreationDateFrom != DateTime.MaxValue && filterModel.OriginalCreationDateFrom != DateTime.MinValue)
            {
                tasks = tasks.Where(task => task.OriginalCreationDate >= filterModel.OriginalCreationDateFrom).ToList();
            }
            if (filterModel.OriginalCreationDateTo != DateTime.MaxValue && filterModel.OriginalCreationDateTo != DateTime.MinValue)
            {
                tasks = tasks.Where(task => task.OriginalCreationDate <= filterModel.OriginalCreationDateTo).ToList();
            }
            if (filterModel.ActualFinishDateFrom != DateTime.MaxValue && filterModel.ActualFinishDateFrom != DateTime.MinValue)
            {
                tasks = tasks.Where(task => task.ActualFinishDate >= filterModel.ActualFinishDateFrom).ToList();
            }
            if (filterModel.ActualFinishDateTo != DateTime.MaxValue && filterModel.ActualFinishDateTo != DateTime.MinValue)
            {
                tasks = tasks.Where(task => task.ActualFinishDate <= filterModel.ActualFinishDateTo).ToList();
            }
            if (filterModel.StartedDate != DateTime.MaxValue && filterModel.StartedDate != DateTime.MinValue)
            {
                tasks = tasks.Where(task => task.TaskStartedDate >= filterModel.StartedDate).ToList();
            }
            if (filterModel.TaskPriority > -1)
            {
                tasks = tasks.Where(task => task.TaskPriority == filterModel.TaskPriority).ToList();
            }
            if (filterModel.CreatedUserId != null)
            {
                tasks = tasks.Where(task => task.CreatedUserId == filterModel.CreatedUserId).ToList();
            }
            if (filterModel.TaskTitle != null)
            {
                tasks = tasks.Where(task => task.TaskTitle.Contains(filterModel.TaskTitle)).ToList();
            }
            if (filterModel.TaskDescription != null)
            {
                tasks = tasks.Where(task => task.TaskDescription.Contains(filterModel.TaskDescription)).ToList();
            }
            if (filterModel.EstimatedDaysTaken > 0)
            {
                tasks = tasks.Where(task => task.EstimatedDaysTaken == filterModel.EstimatedDaysTaken).ToList();
            }
            if (filterModel.ActualDaysTaken > 0)
            {
                tasks = tasks.Where(task => task.ActualDaysTaken == filterModel.ActualDaysTaken).ToList();
            }
            if (filterModel.AssignedUserId != null)
            {
                tasks = tasks.Where(task => task.AssignedUserId == filterModel.AssignedUserId).ToList();
            }

            return(tasks);
        }
Beispiel #3
0
        public void GetTasks_Filter_TaskPriority()
        {
            Mock <TaskController> controller = GetMockedTaskController();

            controller.CallBase = true;

            TaskFilterModel taskFilterModel = new TaskFilterModel
            {
                OriginalCreationDateFrom = DateTime.Now.AddDays(-1),
                OriginalCreationDateTo   = DateTime.Now.AddDays(6),
                TasksDesired             = "alltasks",
                TaskPriority             = 2
            };

            var result = controller.Object.FilterTasks(taskFilterModel) as PartialViewResult;

            Assert.That(result.Model, Has.Count.EqualTo(1));
            Assert.IsTrue(((List <TaskModel>)result.Model).First().TaskPriority == 2);
        }
Beispiel #4
0
        public virtual ActionResult FilterTasks(TaskFilterModel filterModel)
        {
            using (var dbContext = GetDatabaseContext())
            {
                List <Task> tasks       = dbContext.Tasks.ToList();
                User        currentUser = GetCurrentUser();

                tasks = FilterByModel(filterModel, tasks);

                // Create the view models to be passed to the task view
                List <TaskModel> models = tasks.Select(task =>
                {
                    return(new TaskModel
                    {
                        TaskID = task.TaskID,
                        TaskTitle = task.TaskTitle,
                        TaskDescription = task.TaskDescription,
                        TaskPriority = task.TaskPriority,
                        OriginalCreationDate = task.OriginalCreationDate,
                        LastRenewalDate = task.LastRenewalDate,
                        CriticalFinishDate = task.CriticalFinishDate,
                        ActualFinishDate = task.ActualFinishDate,
                        EstimatedDaysTaken = task.EstimatedDaysTaken,
                        ActualDaysTaken = task.ActualDaysTaken,
                        CreatedUser = task.CreatedUser,
                        AssignedUser = task.AssignedUser,
                        TaskState = task.TaskState,
                        TaskStateId = task.TaskStateId,
                        AllUsers = null,
                        TaskStartedDate = task.TaskStartedDate
                    });
                }).ToList();

                filterModel.AllUsers = dbContext.Users.ToList();
                ViewBag.filterModel  = filterModel;
                return(PartialView("Tasks", models));
            }
        }
 public IEnumerable<TaskModel> Tasks(string userId, TaskFilterModel filterModel, out int pagesCount)
 {
     var filter = Mapper.Map<TaskFilterModel, TasksFilter> (filterModel);
     var tasks = Repository.Tasks(userId, filter, out pagesCount);
     return Mapper.Map<List<Task>, List<TaskModel>>(tasks.ToList());
 }
Beispiel #6
0
        /// <summary>
        /// Creates the task bar chart.
        /// </summary>
        /// <param name="tasksDesired">The tasks desired.</param>
        /// <returns></returns>
        public ChartModel CreateTaskBarChart(string tasksDesired)
        {
            using (var dbContext = GetDatabaseContext())
            {
                // Initial blank filter model.
                TaskFilterModel filterModel = new TaskFilterModel
                {
                    OriginalCreationDateFrom = DateTime.Now.AddDays(-14),
                    OriginalCreationDateTo   = DateTime.Now,
                    ActualFinishDateFrom     = DateTime.Now.AddDays(-14),
                    ActualFinishDateTo       = DateTime.Now,
                    StartedDate   = DateTime.Now.AddDays(-14),
                    TasksDesired  = tasksDesired,
                    AllUsers      = dbContext.Users.ToList(),
                    CreatedUserId = "",
                    TaskPriority  = -1
                };

                ChartModel chartModel = new ChartModel
                {
                    Type = "bar"
                };

                ChartDataModel chartDataModel = new ChartDataModel
                {
                    Labels = new List <string> {
                        "Open", "Active", "Closed"
                    }
                };

                ChartDatasetModel chartDatasetModel = new ChartDatasetModel
                {
                    Data            = new int[3],
                    BackgroundColor = new string[] { "#ffb6c1", "#98ff98", "#C0C0C0" },
                    BorderColor     = new string[] { "#FFFFFF" }
                };

                User        currentUser = GetCurrentUser();
                List <Task> tasks;

                switch (tasksDesired)
                {
                case "mytasks":
                    tasks            = dbContext.Tasks.Where(task => task.AssignedUserId == currentUser.Id).ToList();
                    chartModel.Title = "Task State - My Tasks - Past Two Weeks";
                    break;

                case "teamtasks":
                    tasks            = dbContext.Tasks.Where(task => task.AssignedUser.TeamId == currentUser.TeamId).ToList();
                    chartModel.Title = "Task State - Team Tasks - Past Two Weeks";
                    break;

                default:
                    tasks            = dbContext.Tasks.ToList();
                    chartModel.Title = "Task State - All Tasks - Past Two Weeks";
                    break;
                }

                // Apply the dates filter.
                tasks = tasks.Where(task => task.OriginalCreationDate >= filterModel.OriginalCreationDateFrom &&
                                    task.OriginalCreationDate <= filterModel.OriginalCreationDateTo ||
                                    task.TaskStartedDate >= filterModel.StartedDate ||
                                    task.ActualFinishDate >= filterModel.ActualFinishDateFrom &&
                                    task.ActualFinishDate <= filterModel.ActualFinishDateTo).ToList();

                foreach (Task task in tasks)
                {
                    switch (task.TaskState.TaskStateCurrent)
                    {
                    case "Open":
                        chartDatasetModel.Data[0]++;
                        break;

                    case "Active":
                        chartDatasetModel.Data[1]++;
                        break;

                    case "Closed":
                        chartDatasetModel.Data[2]++;
                        break;

                    default:
                        break;
                    }
                }

                chartDataModel.Datasets = new List <ChartDatasetModel> {
                    chartDatasetModel
                };
                chartModel.Data = chartDataModel;

                return(chartModel);
            }
        }
Beispiel #7
0
        public virtual ActionResult Tasks(string tasksDesired)
        {
            using (var dbContext = GetDatabaseContext())
            {
                // Initial blank filter model.
                TaskFilterModel filterModel = new TaskFilterModel
                {
                    TasksDesired             = tasksDesired,
                    AllUsers                 = dbContext.Users.ToList(),
                    CreatedUserId            = "",
                    TaskPriority             = -1,
                    ActualFinishDateFrom     = DateTime.MaxValue,
                    ActualFinishDateTo       = DateTime.MaxValue,
                    OriginalCreationDateFrom = DateTime.MaxValue,
                    OriginalCreationDateTo   = DateTime.MaxValue,
                    StartedDate              = DateTime.MaxValue,
                    CriticalFinishDate       = DateTime.MaxValue
                };

                List <Task> tasks;

                User currentUser = GetCurrentUser();

                switch (tasksDesired)
                {
                case "mytasks":
                    tasks = dbContext.Tasks.Where(task => task.AssignedUserId == currentUser.Id).ToList();
                    filterModel.AssignedUserId = currentUser.Id;
                    ViewBag.Title = "My Tasks";
                    break;

                case "teamtasks":
                    tasks = dbContext.Tasks.Where(task => task.AssignedUser.TeamId == currentUser.TeamId).ToList();
                    filterModel.TeamId = currentUser.TeamId;
                    ViewBag.Title      = "Team Tasks";
                    break;

                default:
                    tasks         = dbContext.Tasks.ToList();
                    ViewBag.Title = "All Tasks";
                    break;
                }

                tasks.RemoveAll(task => task.TaskStateId == 3 && task.ActualFinishDate <= DateTime.Now.AddDays(-14));

                // Create the view models to be passed to the task view
                List <TaskModel> models = tasks.Select(task =>
                {
                    return(new TaskModel
                    {
                        TaskID = task.TaskID,
                        TaskTitle = task.TaskTitle,
                        TaskDescription = task.TaskDescription,
                        TaskPriority = task.TaskPriority,
                        OriginalCreationDate = task.OriginalCreationDate,
                        LastRenewalDate = task.LastRenewalDate,
                        CriticalFinishDate = task.CriticalFinishDate,
                        ActualFinishDate = task.ActualFinishDate,
                        EstimatedDaysTaken = task.EstimatedDaysTaken,
                        ActualDaysTaken = task.ActualDaysTaken,
                        CreatedUser = task.CreatedUser,
                        AssignedUser = task.AssignedUser,
                        TaskState = task.TaskState,
                        TaskStateId = task.TaskStateId,
                        AllUsers = null,
                        TaskStartedDate = task.TaskStartedDate
                    });
                }).ToList();

                ViewBag.filterModel = filterModel;
                ViewBag.Title       = "Tasks - " + ViewBag.Title;
                return(PartialView(models));
            }
        }