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"); }
public ActionResult Edit(int id = 0) { if (!Authorized(RoleType.SystemManager)) return Error(Loc.Dic.error_no_permission); ApprovalRouteModel model = new ApprovalRouteModel(); List<User> usersSelectList; using (ApprovalRoutesRepository routesRep = new ApprovalRoutesRepository(CurrentUser.CompanyId)) using (UsersRepository usersRep = new UsersRepository(CurrentUser.CompanyId)) { model.ApprovalRoute = routesRep.GetEntity(id, "Users_ApprovalStep.User"); if (model.ApprovalRoute == null) return Error(Loc.Dic.error_database_error); usersSelectList = usersRep.GetList() .Where(user => ((RoleType)user.Roles & RoleType.OrdersApprover) == RoleType.OrdersApprover) .ToList(); } ViewBag.UsersSelectList = new SelectList(usersSelectList, "Id", "FullName"); return View(model); }
public ActionResult CreateApprovalRoute(ApprovalRouteModel model) { return RedirectToAction("Index"); }