Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        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));
        }
Exemple #5
0
 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)
                }
            }));
        }
Exemple #7
0
        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);
        }