예제 #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);
        }
예제 #2
0
 public static ApplyAuditStreamSolutionRuleDto ToSolutionRuleDtoModel(this ApplyAuditStreamSolutionRule model)
 {
     if (model == null)
     {
         return(null);
     }
     return(new ApplyAuditStreamSolutionRuleDto()
     {
         Id = model.Id,
         AuditMembers = (model.AuditMembers?.Length ?? 0) == 0 ? Array.Empty <string>() : model.AuditMembers?.Split("##"),
         AuditMembersCount = model.AuditMembersCount,
         Companies = (model.Companies?.Length ?? 0) == 0 ? Array.Empty <string>() : model.Companies?.Split("##"),
         CompanyRefer = model.CompanyRefer,
         CompanyTags = (model.CompanyTags?.Length ?? 0) == 0 ? Array.Empty <string>() : model.CompanyTags.Split("##"),
         CompanyCodeLength = (model.CompanyCodeLength?.Length ?? 0) == 0 ? Array.Empty <int>() : model.CompanyCodeLength.Split("##").Select(d => Convert.ToInt32(d)),
         Create = model.Create,
         Description = model.Description,
         Duties = (model.Duties?.Length ?? 0) == 0 ? Array.Empty <int>() : model.Duties?.Split("##").Select(d => Convert.ToInt32(d)),
         DutyTags = (model.DutiesTags?.Length ?? 0) == 0 ? Array.Empty <string>() : model.DutiesTags?.Split("##"),
         DutyIsMajor = model.DutyIsMajor,
         Enable = model.Enable,
         EntityType = model.EntityType,
         Name = model.Name,
         Priority = model.Priority,
         SolutionName = model.Solution.Name,
         CompanyRegion = model.RegionOnCompany
     });
 }
예제 #3
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));
        }
예제 #4
0
        public IActionResult GetStreamSolutionRule(string name)
        {
            ApplyAuditStreamSolutionRule checkExist = null;

            applyAuditStreamServices.EditSolutionRule(name, (n) => { checkExist = n; return(false); });
            if (checkExist == null)
            {
                return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.StreamSolutionRule.NotExist));
            }
            return(new JsonResult(new StreamSolutionRuleViewModel()
            {
                Data = new StreamSolutionRuleDataModel()
                {
                    Rule = checkExist.ToSolutionRuleDtoModel().ToSolutionRuleVDtoModel(usersService, companiesService)
                }
            }));
        }
예제 #5
0
 public static ApplyAuditStreamSolutionRule ToApplyAuditStreamSolutionRule(this IMembersFilter model, ApplyAuditStreamSolutionRule raw = null)
 {
     if (model == null)
     {
         return(null);
     }
     if (raw == null)
     {
         raw = new ApplyAuditStreamSolutionRule();
     }
     raw.AuditMembers      = model.AuditMembers;
     raw.Companies         = model.Companies;
     raw.CompanyCodeLength = model.CompanyCodeLength;
     raw.CompanyRefer      = model.CompanyRefer;
     raw.CompanyTags       = model.CompanyTags;
     raw.Duties            = model.Duties;
     raw.DutiesTags        = model.DutiesTags;
     raw.DutyIsMajor       = model.DutyIsMajor;
     raw.RegionOnCompany   = model.RegionOnCompany;
     return(raw);
 }
예제 #6
0
        public IActionResult DeleteStreamSolutionRule(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));
                }
            }
            ApplyAuditStreamSolutionRule node = applyAuditStreamServices.EditSolutionRule(name);

            if (node == null)
            {
                return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.StreamSolutionRule.NotExist));
            }
            var result = CheckPermission(auditUser, node.ToDtoModel(), node.RegionOnCompany, node.RegionOnCompany);

            if (result != null && result.Status != 0)
            {
                return(new JsonResult(result));
            }
            node.Remove();
            context.ApplyAuditStreamSolutionRules.Update(node);
            context.SaveChanges();

            return(new JsonResult(ActionStatusMessage.Success));
        }