Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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"));
        }
Ejemplo n.º 3
0
        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()));
 }