/// <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); } }
/// <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); }
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); }
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()); }
/// <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); } }
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)); } }