Example #1
0
        public Result <CheckResult> Verify(ConfigedInfo appInfo, TargetInfoObject targetInfo, Result <CheckResult> result)
        {
            base.Init(result);

            if (targetInfo.Users == null || !targetInfo.Users.Any())
            {
                if (result.Status == 0)
                {
                    result.Status = 200;
                }
                result.Data.Success.ToUsers = new List <string>();
                return(result);
            }

            if (!appInfo.AssignedUserIds.Any())
            {
                result.Status = 99;
                result.Data.Error.ErrorUsers = targetInfo.Users;
                return(result);
            }

            //including under tag
            var allAssignedUsers = appInfo.AssignedUserIds;

            var errorUsers = targetInfo.Users.Where(targetUser =>
            {
                var user = WeChatCommonService.lstUser.FirstOrDefault(x => string.Equals(x.userid, targetUser, StringComparison.CurrentCultureIgnoreCase));

                return
                (allAssignedUsers.All(
                     assignedUser => string.Compare(assignedUser, targetUser, StringComparison.OrdinalIgnoreCase) != 0) ||
                 user == null ||
                 user.status == 4);
            }).ToList();

            if (errorUsers.Any())
            {
                result.Status = 99;
            }
            else
            {
                if (result.Status == 0)
                {
                    result.Status = 200;
                }

                result.Data.Success.ToUsers = targetInfo.Users;
                return(result);
            }

            var successUsers = targetInfo.Users.Where(x => errorUsers.All(y => x.ToUpper() != y.ToUpper())).ToList();

            result.Data.Error.ErrorUsers = errorUsers;

            result.Data.Success.ToUsers = successUsers;

            return(result);
        }
        public Result <CheckResult> Verify(ConfigedInfo appInfo, object entity, ContentType contentType)
        {
            var instance = GetPushStrategyService(contentType);

            if (instance == null)
            {
                throw new Exception(string.Format("Do not find out Implemented for this TokenType(type name:{0}).", contentType));
            }

            return(instance.CheckPushRule(entity, appInfo));
        }
Example #3
0
        public Result <CheckResult> Verify(ConfigedInfo appInfo, TargetInfoObject targetInfo, Result <CheckResult> result)
        {
            base.Init(result);

            if (targetInfo.Tags == null || !targetInfo.Tags.Any())
            {
                if (result.Status == 0)
                {
                    result.Status = 200;
                }
                return(result);
            }

            if (result.Status == 0)
            {
                result.Status = 200;
            }
            result.Data.Success.ToTags = targetInfo.Tags.ConvertTagIdToObject();
            return(result);

            //if (!appInfo.AppInfoResult.allow_tags.tagid.Any())
            //{
            //    result.Status = 99;
            //    result.Data.Error.ErrorTags = targetInfo.Tags.ConvertTagIdToObject();
            //    return result;
            //}

            //var allAssignedTags = appInfo.AppInfoResult.allow_tags.tagid;

            //var errorTags = targetInfo.Tags.Where(x => !allAssignedTags.Any(y => x == y)).ToList();

            //if (errorTags.Any())
            //{
            //    result.Status = 99;
            //}
            //else
            //{
            //    if (result.Status == 0)
            //    {
            //        result.Status = 200;
            //    }

            //    result.Data.Success.ToTags = targetInfo.Tags.ConvertTagIdToObject();
            //    return result;
            //}

            //var successTags = targetInfo.Tags.Where(x => errorTags.Any(y => x == y)).ToList();

            //result.Data.Success.ToTags = successTags.ConvertTagIdToObject();

            //result.Data.Error.ErrorTags = errorTags.ConvertTagIdToObject();

            //return result;
        }
        public Result <CheckResult> CheckPushRule(object entity, ConfigedInfo appInfo)
        {
            var result = new Result <CheckResult>();

            foreach (var rule in _rules)
            {
                rule.Verify(appInfo, (TargetInfoObject)entity, result);
            }

            //base.HandlerResult(result, appInfo, entity);

            return(result);
        }
        public Result <CheckResult> Verify(ConfigedInfo appInfo, TargetInfoObject targetInfo, Result <CheckResult> result)
        {
            base.Init(result);

            if (targetInfo.Departments == null || !targetInfo.Departments.Any())
            {
                if (result.Status == 0)
                {
                    result.Status = 200;
                }
                result.Data.Success.ToDepartments = new List <Desc>();
                return(result);
            }

            if (!appInfo.AssignedDepartmentIds.Any())
            {
                result.Status = 99;
                result.Data.Error.ErrorDepartments = targetInfo.Departments.ConvertDepartmentIdToObject();
                return(result);
            }

            var allAssignedDepartments = WeChatCommonService.GetSubDepartments(appInfo.AssignedDepartmentIds);

            var errorDepartments = targetInfo.Departments.Where(depart => allAssignedDepartments.All(x => x.id != depart)).ToList();

            if (errorDepartments.Any())
            {
                result.Status = 99;
            }
            else
            {
                if (result.Status == 0)
                {
                    result.Status = 200;
                }

                result.Data.Success.ToDepartments = targetInfo.Departments.ConvertDepartmentIdToObject();
                return(result);
            }

            var successDepartments = targetInfo.Departments.Where(x => errorDepartments.All(y => x != y)).ToList();

            result.Data.Error.ErrorDepartments = errorDepartments.ConvertDepartmentIdToObject();

            result.Data.Success.ToDepartments = successDepartments.ConvertDepartmentIdToObject();

            return(result);
        }
Example #6
0
 public Result <CheckResult> CheckPushRule(object entity, ConfigedInfo appInfo)
 {
     throw new NotImplementedException();
 }