Example #1
0
        public override object GetValue(object component)
        {
            IRulePresenter rule = (IRulePresenter)component;

            return(rule[CustomField.Name] ?? (CustomField.DataType.IsValueType ?
                                              (Object)Activator.CreateInstance(CustomField.DataType) : null));
        }
Example #2
0
 public void Initialize(IRulePresenter rule,
                        Faker faker,
                        IRuleExecutorFactory factory)
 {
     this.rule    = rule;
     this.faker   = faker;
     this.factory = factory;
 }
Example #3
0
        public IRuleExecutor Create(IRulePresenter rule, Faker faker)
        {
            if (faker == null)
            {
                faker = new Faker(); //TODO, pass locale itp
            }

            var executor = CreateDedicatedExecutor(rule);

            ((RuleExecutorBase)executor).Initialize(rule, faker, this);
            return(executor);
        }
    public static IEnumerable <PropertyDescriptor> Generate(IRulePresenter rule)
    {
        List <RuleParameter> result = new List <RuleParameter>();

        // kolekcja powinna byc statyczna
        result.AddRange(new[]
        {
            new RuleParameter("Value"),
            new RuleParameter("Format")
        });
        // TODO FILL, bierz pod uwagę typy z crm

        return(result.Select(p => new RuleParameterPropertyDescriptor(p)).Cast <PropertyDescriptor>());
    }
Example #5
0
        private IRuleExecutor CreateOperationRuleExecutor(IRulePresenter rule)
        {
            if (rule.Operator == RuleOperator.Generator)
            {
                if (rule.Generator == FakeOperator.Const)
                {
                    return(new Generator.ConstExecutor());
                }
                if (rule.Generator == FakeOperator.Index)
                {
                    return(new Generator.IndexExecutor());
                }
            }

            if (rule.Operator == RuleOperator.Concat)
            {
                return(new ConcatExecutor());
            }

            throw new NotImplementedException();
        }
Example #6
0
        public IRulePresenter Create(IRulePresenter parent)
        {
            IRulePresenter rule = null;

            if (parent == null)
            {
                rule      = containerGetter.Get <GeneratorRulePresenter>();
                rule.Name = "Fake Data Generator";
            }
            else if (parent.RuleType == RulePresenterType.Operation)
            {
                rule      = containerGetter.Get <OperationRulePresenter>();
                rule.Name = "New sub-operation";
            }
            else if (parent.RuleType == RulePresenterType.Attribute)
            {
                rule      = containerGetter.Get <OperationRulePresenter>();
                rule.Name = "New operation";
            }
            else if (parent.RuleType == RulePresenterType.Entity)
            {
                rule      = containerGetter.Get <AttributeRulePresenter>();
                rule.Name = "New attribute rule";
            }
            else if (parent.RuleType == RulePresenterType.Root)
            {
                rule      = containerGetter.Get <EntityRulePresenter>();
                rule.Name = "Entity rule";
            }

            if (rule != null)
            {
                var ruleNode     = containerGetter.Get <ITreeNodeView>();
                var ruleEditView = containerGetter.Get <IRuleEditView>();
                rule.Init(ruleNode, this, eventAggregator, ruleEditView, ruleExecutorFactory, rulePReviewView);
                return(rule);
            }

            throw new ArgumentException("Not supported parent type", nameof(parent));
        }
Example #7
0
        public IRuleExecutor CreateDedicatedExecutor(IRulePresenter rule)
        {
            switch (rule.RuleType)
            {
            case RulePresenterType.Root:
                return(CreateGeneratorRuleExecutor((GeneratorRulePresenter)rule));

            case RulePresenterType.Entity:
                return(CreateEntityRuleExecutor((EntityRulePresenter)rule));

            case RulePresenterType.Attribute:
                return(CreateAttributeRuleExecutor((AttributeRulePresenter)rule));

            case RulePresenterType.Operation:
                return(CreateOperationRuleExecutor((OperationRulePresenter)rule));

            default:
                break;
            }

            throw new ArgumentException($"{rule.GetType().Name} rule not supported");
        }