public IActionResult Edit(int id) { if (id < 1) { return(NotFound()); } try { var model = _projectInteractor.GetProjectDetails(id) ?? new Project(); return(View(model)); } catch (Exception ex) { return(View()); } }
// GET: Task public IActionResult Index(int?id) { if (id == null) { return(NotFound()); } var result = _interactor.GetProjectTasks((int)id); var inProgTasks = new List <TaskPT>(); var completedTasks = new List <TaskPT>(); var activeProjects = _projectInteractor.GetProjectList() ?? new List <Project>(); if (result.Count == 0) { var projName = _projectInteractor.GetProjectDetails((int)id); var emptyModel = new TaskViewModel() { InProgressTask = inProgTasks, CompletedTask = completedTasks, ProjectId = (int)id, ProjectName = projName?.Name, CompletedProgress = 0, DueDate = null, projectLists = activeProjects }; return(View(emptyModel)); } foreach (var item in result) { //truncate the desc for the view if (item.Name.Length > 20) { item.Name = string.Concat(item.Name.Substring(0, 20), "..."); } if (item.Description != null) { if (item.Description.Length > 20) { item.Description = string.Concat(item.Description.Substring(0, 20), "..."); } } if (item.StatusId == (int)StatusId.Done) { completedTasks.Add(item); } else { inProgTasks.Add(item); } } //get values for progress bar var queryable = result.AsQueryable(); var totalProjectMinutes = queryable.Sum(x => x.Effort.ValueInMinutes); var completedProjectMiniutes = queryable.Where(x => x.StatusId == (int)StatusId.Done).Sum(x => x.Effort.ValueInMinutes); var currentProgressValue = completedProjectMiniutes == 0 ? 0 : Math.Ceiling((completedProjectMiniutes / totalProjectMinutes) * 100); //round the value var viewModel = new TaskViewModel() { InProgressTask = inProgTasks, CompletedTask = completedTasks, ProjectId = result[0].Project?.Id, ProjectName = result[0].Project?.Name, CompletedProgress = currentProgressValue, DueDate = result[0].Project?.DueDate, projectLists = activeProjects }; return(View(viewModel)); }