public IActionResult FinishOrPass(int employeeId, int taskId, string buttonClicked, bool priority)
        {
            EmployeesFinishOrPassViewModel model = new EmployeesFinishOrPassViewModel();

            model.LoadData(_unitOfWork, employeeId, taskId);
            model.ButtonClicked = buttonClicked;
            model.Priority      = priority;
            return(View(model));
        }
        public IActionResult FinishOrPass(EmployeesFinishOrPassViewModel model)
        {
            if (!CheckButtons(_unitOfWork, model.Employee.Id, model.Task.Id, model))
            {
                return(NotFound());
            }

            if ((model.Finish == "Finish" && model.FinishConfirmed == true) || (model.Pass == "Pass" && model.PassConfirmed == true))
            {
                return(RedirectToAction(nameof(Feed), new
                {
                    employeeId = model.Employee.Id,
                    buttonClicked = model.ButtonClicked,
                    priority = model.Priority
                }));
            }
            else
            {
                return(View(model));
            }
        }
        public bool CheckButtons(IUnitOfWork uow, int employeeId, int taskId, EmployeesFinishOrPassViewModel model)
        {
            Task editTask = model.Task; EmployeeTask employeeTask = _unitOfWork.EmployeeTasks.GetByEmployeeIdAndTaskId(employeeId, taskId);

            if (model.Pass != null)
            {
                if (model.PassConfirmed == true)
                {
                    if (model.RecipientEmployee != null)
                    {
                        model.RecipientEmployee = _unitOfWork.Employees.GetById(model.RecipientEmployee.Id);

                        DashboardDisplay dashboardDisplay = _unitOfWork.DashboardDisplays.GetByEmployeeIdAndTaskId(employeeId, taskId);
                        DeleteDashBoardTask(dashboardDisplay);

                        employeeTask.PassedTask = model.RecipientEmployee;
                        UpdateEmployeeTask(employeeTask);

                        EmployeeTask recipientEmployeeTask = _unitOfWork.EmployeeTasks.GetByEmployeeIdAndTaskId(model.RecipientEmployee.Id, taskId);

                        if (model.FixedTask == false)
                        {
                            if (recipientEmployeeTask == null)
                            {
                                recipientEmployeeTask        = GenerateEmployeetask(model.RecipientEmployee.Id, taskId);
                                recipientEmployeeTask.Picked = false;
                                CreateEmployeeTask(recipientEmployeeTask);
                            }
                            else
                            {
                                recipientEmployeeTask.Picked = false;
                                UpdateEmployeeTask(recipientEmployeeTask);
                            }

                            recipientEmployeeTask.Task.Status = Core.Enum.TaskStatusType.Open;
                        }
                        else
                        {
                            if (recipientEmployeeTask == null)
                            {
                                recipientEmployeeTask        = GenerateEmployeetask(model.RecipientEmployee.Id, taskId);
                                recipientEmployeeTask.Picked = true;
                                CreateEmployeeTask(recipientEmployeeTask);
                            }
                            else
                            {
                                recipientEmployeeTask.Picked = true;
                                UpdateEmployeeTask(recipientEmployeeTask);
                            }

                            DashboardDisplay recipientDashboardDisplay = GenerateDashboardTask(recipientEmployeeTask);
                            CreateDashboardDisplay(recipientDashboardDisplay);
                        }

                        recipientEmployeeTask.Task.Information = model.Task.Information;
                        recipientEmployeeTask.Task.Priority    = model.Task.Priority;
                        recipientEmployeeTask.Task.ValuedTime  = model.Task.ValuedTime;
                        UpdateTask(recipientEmployeeTask.Task);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    model.PassClicked = true;
                    model.LoadSelectList(uow, employeeId, taskId);
                }
            }
            else if (model.Finish != null)
            {
                if (model.FinishConfirmed == true)
                {
                    DashboardDisplay dashboardDisplay = _unitOfWork.DashboardDisplays.GetByEmployeeIdAndTaskId(employeeId, taskId);
                    DeleteDashBoardTask(dashboardDisplay);

                    employeeTask.Task.Status  = Core.Enum.TaskStatusType.Completed;
                    employeeTask.Task.Enddate = DateTime.Now;
                    UpdateTask(employeeTask.Task);
                }
                else
                {
                    model.FinishClicked = true;
                }
            }

            return(true);
        }