public ApplyAuditStreamSolutionRule NewSolutionRule(ApplyAuditStream solution, IMembersFilter filter, string name, string companyRegion, string description = null, int priority = 0, bool enable = false, string entityType = null) { var prev = context.ApplyAuditStreamSolutionRuleDb.Where(r => r.Name == name).FirstOrDefault(); if (prev != null) { return(prev); } var result = new ApplyAuditStreamSolutionRule() { Name = name, Description = description, Priority = priority, Enable = enable, EntityType = entityType, Create = DateTime.Now, RegionOnCompany = companyRegion, Companies = filter?.Companies, CompanyRefer = filter?.CompanyRefer, CompanyTags = filter.CompanyTags, CompanyCodeLength = filter.CompanyCodeLength, Duties = filter?.Duties, DutiesTags = filter?.DutiesTags, DutyIsMajor = filter?.DutyIsMajor ?? DutiesIsMajor.BothCanGo, AuditMembers = filter?.AuditMembers, AuditMembersCount = filter?.AuditMembersCount ?? 0, Solution = solution }; context.ApplyAuditStreamSolutionRules.Add(result); context.SaveChanges(); return(result); }
public IActionResult EditStreamSolutionRule([FromBody] StreamSolutionRuleCreateDataModel model) { var auditUser = currentUserService.CurrentUser; if (model.Auth?.AuthByUserID != null && auditUser?.Id != model.Auth?.AuthByUserID) { if (model.Auth.Verify(googleAuthService, currentUserService.CurrentUser?.Id)) { auditUser = usersService.GetById(model.Auth.AuthByUserID); } else { return(new JsonResult(ActionStatusMessage.Account.Auth.AuthCode.Invalid)); } } var n = applyAuditStreamServices.GetRule(model.Id); if (n == null) { return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.StreamSolutionRule.NotExist)); } // 判断新增实体的权限 var result = CheckPermission(auditUser, n.ToDtoModel(), model.CompanyRegion, n.RegionOnCompany); if (result.Status != 0) { return(new JsonResult(result)); } ApplyAuditStream solution = applyAuditStreamServices.EditSolution(model.SolutionName); if (solution == null) { return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.StreamSolution.NotExist)); } // 判断所需方案的权限 result = CheckPermission(auditUser, null, solution.RegionOnCompany, solution.RegionOnCompany); if (result.Status != 0) { return(new JsonResult(result)); } model.Filter.ToModel <ApplyAuditStreamSolutionRule>().ToApplyAuditStreamSolutionRule(n); n.Description = model.Description; n.Create = n.Create; n.Priority = model.Priority; n.Solution = solution; n.Enable = model.Enable; n.EntityType = model.EntityType; n.Name = model.Name; n.RegionOnCompany = model.CompanyRegion; context.ApplyAuditStreamSolutionRules.Update(n); context.SaveChanges(); return(new JsonResult(ActionStatusMessage.Success)); }
public IActionResult DeleteStreamSolution(string name, string authByUserId, string code) { var auth = new GoogleAuthDataModel() { AuthByUserID = authByUserId, Code = code }; var auditUser = currentUserService.CurrentUser; if (auth?.AuthByUserID != null && auditUser?.Id != auth?.AuthByUserID) { if (auth.Verify(googleAuthService, currentUserService.CurrentUser?.Id)) { auditUser = usersService.GetById(auth.AuthByUserID); } else { return(new JsonResult(ActionStatusMessage.Account.Auth.AuthCode.Invalid)); } } ApplyAuditStream node = applyAuditStreamServices.EditSolution(name); if (node == null) { return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.StreamSolution.NotExist)); } // 检查删除目标的权限 var result = CheckPermission(auditUser, null, node.RegionOnCompany, node.RegionOnCompany); if (result != null && result.Status != 0) { return(new JsonResult(result)); } var nStr = (node.Nodes?.Length ?? 0) == 0 ? Array.Empty <string>() : node.Nodes.Split("##"); var nList = context.ApplyAuditStreamNodeActionDb.Where(node => nStr.Contains(node.Name)); // 检查包含节点的权限 result = CheckPermissionNodes(auditUser, nList); if (result != null && result.Status != 0) { return(new JsonResult(result)); } node.Remove(); context.ApplyAuditStreams.Update(node); context.SaveChanges(); return(new JsonResult(ActionStatusMessage.Success)); }
public IActionResult AddStreamSolutionRule([FromBody] StreamSolutionRuleCreateDataModel model) { var auditUser = currentUserService.CurrentUser; if (model.Auth?.AuthByUserID != null && auditUser?.Id != model.Auth?.AuthByUserID) { if (model.Auth.Verify(googleAuthService, currentUserService.CurrentUser?.Id)) { auditUser = usersService.GetById(model.Auth.AuthByUserID); } else { return(new JsonResult(ActionStatusMessage.Account.Auth.AuthCode.Invalid)); } } ApplyAuditStreamSolutionRule checkExist = applyAuditStreamServices.EditSolutionRule(model.Name); if (checkExist != null) { return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.StreamSolutionRule.AlreadyExist)); } // 判断新增实体的权限 var result = CheckPermission(auditUser, model.Filter, model.CompanyRegion, model.CompanyRegion); if (result.Status != 0) { return(new JsonResult(result)); } ApplyAuditStream solution = applyAuditStreamServices.EditSolution(model.SolutionName); if (solution == null) { return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.StreamSolution.NotExist)); } // 判断所需要调用的方案的权限 result = CheckPermission(auditUser, null, solution.RegionOnCompany, solution.RegionOnCompany); if (result.Status != 0) { return(new JsonResult(result)); } var r = applyAuditStreamServices.NewSolutionRule(solution, model.Filter.ToModel <BaseMembersFilter>(), model.Name, model.CompanyRegion, model.Description, model.Priority, model.Enable, model.EntityType); return(new JsonResult(ActionStatusMessage.Success)); }
public static ApplyAuditStreamDto ToDtoModel(this ApplyAuditStream model) { if (model == null) { return(null); } return(new ApplyAuditStreamDto() { Id = model.Id, Create = model.Create, Description = model.Description, Name = model.Name, Nodes = (model.Nodes?.Length ?? 0) == 0 ? Array.Empty <string>() : model.Nodes.Split("##"), CompanyRegion = model.RegionOnCompany }); }
public IActionResult GetStreamSolution(string name) { ApplyAuditStream checkExist = null; checkExist = applyAuditStreamServices.EditSolution(name); if (checkExist == null) { return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.StreamSolution.NotExist)); } return(new JsonResult(new StreamSolutionViewModel() { Data = new StreamSolutionDataModel() { Solution = checkExist.ToDtoModel().ToVDtoModel(applyAuditStreamServices, usersService, companiesService) } })); }
public ApplyAuditStream NewSolution(IEnumerable <ApplyAuditStreamNodeAction> Nodes, string name, string companyRegion, string description = null) { var prev = context.ApplyAuditStreamsDb.Where(a => a.Name == name).FirstOrDefault(); if (prev != null) { return(prev); } var result = new ApplyAuditStream() { Name = name, RegionOnCompany = companyRegion, Description = description, Create = DateTime.Now, Nodes = string.Join("##", Nodes.Select(n => n.Name)) }; context.ApplyAuditStreams.Add(result); context.SaveChanges(); return(result); }