public string Execute(DetailExecViewModel model)
        {
            string url = Url.Action("Index");

            try
            {
                Finish(model.ExecutorId, CurrentUser.Id);
                @TempData["alert"]   = "alert-success";
                @TempData["message"] = "Исполнено";
                return(url);
            }
            catch (Exception ex)
            {
                return(Url.Action("Details", new
                {
                    id = model.ExecutorId,
                    message = string.Format("Возникла непредвиденная ошибка: {0}. Трассировка: {1}", ex.Message, ex.StackTrace),
                    alert = "alert-danger"
                }));
            }
        }
        public ActionResult Details(Guid id, string burl = "", string message = "", string alert = "")
        {
            var department = dbContext.Departments.Find(CurrentUser.Department.Id);

            //Надо получить информацию о текущем ExecDep и Executor для текущего пользователя
            var execDetailsDTO = GetExecutor(id, CurrentUser.Id);

            if (execDetailsDTO == null)
            {
                var error = new ErrorViewModel
                {
                    Error      = "Докуент не найден",
                    Massage    = "Документ не найден. Скорее всего он удален или был произведен переход по устаревшей ссылке",
                    Controller = "ProcessController",
                    Action     = "Details",
                    Id         = id.ToString()
                };
                return(View("Error", error));
            }

            @TempData["message"] = message;
            @TempData["alert"]   = alert;
            var DetailExecVM = new DetailExecViewModel()
            {
                TuskId              = execDetailsDTO.TuskId,
                ExecutorId          = execDetailsDTO.Id,
                ExecutorStatusState = execDetailsDTO.StatusState,
                ExecutorStatusValue = execDetailsDTO.StatusValue,
                ExecDepId           = id,
                PreviousUri         = Request.UrlReferrer,
            };

            DetailExecVM.DraftTusk = GetDraftTusk(DetailExecVM.TuskId);

            DetailExecVM.BackUrl = string.IsNullOrEmpty(burl) && Request.UrlReferrer == null
                ? Url.Action("Index", "Home")
                : string.IsNullOrEmpty(burl) ? Request.UrlReferrer.ToString() : burl;

            DetailExecVM.CurrentUrl = Request.Url;

            if (execDetailsDTO.DepartmetnId != department.Id)
            {
                return(View("Details", DetailExecVM));
            }


            switch (execDetailsDTO.Type)
            {
            case ExecutorType.GroupManager:
                return(View("DetailsGroupManager", DetailExecVM));

            case ExecutorType.AcceptApprove:
                return(View("DetailsChief", DetailExecVM));

            case ExecutorType.IncomingFilter:
                return(View("DetailsIncomingFilter", DetailExecVM));

            default:
                return(View("Details", DetailExecVM));
            }
        }