示例#1
0
        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());
            }
        }
示例#2
0
        // 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));
        }