public async Task <IActionResult> Index(string sortorder, [FromServices] IDataSorter <QTask> sorter) { var result = await repositoryHandler.GetAllEntriesAsync(); IEnumerable <QTask> assigneeTasks = await repositoryHandler.GetAllEntriesAsync(a => a.Assignee.FullName.Equals(User.Identity.Name)); IEnumerable <QTask> reporterTasks = await repositoryHandler.GetAllEntriesAsync(r => r.Reporter.FullName.Equals(User.Identity.Name)); IEnumerable <QTask> otherTasks = result.Except(assigneeTasks).Except(reporterTasks); if (!string.IsNullOrEmpty(sortorder)) { assigneeTasks = sorter.Sort(assigneeTasks, sortorder); reporterTasks = sorter.Sort(reporterTasks, sortorder); otherTasks = sorter.Sort(otherTasks, sortorder); } var model = new TaskIndexModel { PrioritySort = sortorder == TaskSort.PriotityAsc ? TaskSort.PriotityDesc : TaskSort.PriotityAsc, NameSort = sortorder == TaskSort.NameDesc ? string.Empty : TaskSort.NameDesc, StatusSort = sortorder == TaskSort.StatusAsc ? TaskSort.StatusDesc : TaskSort.StatusAsc, AssigneeTaskList = assigneeTasks, ReporterTaskList = reporterTasks, }; if (User.IsInRole(EmployeeRole.Admin.ToString())) { model.OtherTaskList = otherTasks; } return(View(model)); }
public async Task <IActionResult> Edit(int?id, [FromServices] IRepositoryHandler <Employees> repoEmployee) { if (id != null) { var task = await repositoryHandler.GetEntryByIDAsync(id.Value, u => u.Reporter.FullName.Equals(User.Identity.Name) || u.Assignee.FullName.Equals(User.Identity.Name) || User.IsInRole(EmployeeRole.Admin.ToString())); if (task is null) { return(new ContentResult { StatusCode = 403, Content = "Forbidden", ContentType = "text/html" }); } var employeesList = await repoEmployee.GetAllEntriesAsync(); ViewBag.IsAdmin = User.IsInRole(EmployeeRole.Admin.ToString()); ViewBag.IsReporter = (await repoEmployee.GetFirstEntityAsync(u => u.FullName.Equals(User.Identity.Name))).Id.Equals(task.ReporterId); var model = new TaskEditModelHybrid { Task = task, AssigneeList = new SelectList(employeesList, "Id", "FullName", task.AssigneeId), ReporterList = new SelectList(employeesList, "Id", "FullName", task.ReporterId), PriorityList = TaskEnum.PriorityList((int)task.Priority), StatusList = TaskEnum.StatusList((int)task.Status), }; return(View(model)); } return(RedirectToAction("Index")); }
public async Task <IActionResult> Add([FromServices] IRepositoryHandler <Employees> repoEmployee) { ViewBag.IsAdmin = User.IsInRole(EmployeeRole.Admin.ToString()); var employeesList = new SelectList(await repoEmployee.GetAllEntriesAsync(), "Id", "FullName"); var model = new TaskAddModelHybrid { ReporterId = (await repoEmployee.GetFirstEntityAsync(u => u.FullName.Equals(User.Identity.Name))).Id, AssigneeList = employeesList, ReporterList = employeesList, PriorityList = TaskEnum.PriorityList() }; return(View(model)); }
public async Task <IActionResult> Index() { return(View(await repositoryHandler.GetAllEntriesAsync())); }