示例#1
0
        public ActionResult Create(ApprovalRouteModel model)
        {
            if (!Authorized(RoleType.SystemManager))
            {
                return(Error(Loc.Dic.error_no_permission));
            }

            Users_ApprovalRoutes newApprovalRoute = new Users_ApprovalRoutes();

            newApprovalRoute.Name = model.Name;

            using (ApprovalRoutesRepository routesRep = new ApprovalRoutesRepository(CurrentUser.CompanyId))
                using (UsersRepository usersRep = new UsersRepository(CurrentUser.CompanyId))
                {
                    var         usersIds       = model.Steps.Select(x => x.UserId).Distinct();
                    List <User> routeApprovers = usersRep.GetList().Where(x => usersIds.Contains(x.Id)).ToList();
                    if (usersIds.Count() != routeApprovers.Count)
                    {
                        return(Error(Loc.Dic.error_invalid_form));
                    }

                    foreach (var approver in routeApprovers)
                    {
                        if (!Roles.HasRole(approver.Roles, RoleType.OrdersApprover))
                        {
                            return(Error(Loc.Dic.error_invalid_form));
                        }
                    }

                    foreach (var step in model.Steps)
                    {
                        newApprovalRoute.Users_ApprovalStep.Add(
                            new Users_ApprovalStep()
                        {
                            UserId     = step.UserId,
                            StepNumber = step.StepNumber
                        }
                            );
                    }

                    if (!routesRep.Create(newApprovalRoute))
                    {
                        return(Error(Loc.Dic.error_database_error));
                    }
                }

            return(RedirectToAction("Index"));
        }
示例#2
0
 public ActionResult PartialDetails(Users_ApprovalRoutes route)
 {
     return(PartialView(route));
 }