public override object GetValue(object component) { IRulePresenter rule = (IRulePresenter)component; return(rule[CustomField.Name] ?? (CustomField.DataType.IsValueType ? (Object)Activator.CreateInstance(CustomField.DataType) : null)); }
public void Initialize(IRulePresenter rule, Faker faker, IRuleExecutorFactory factory) { this.rule = rule; this.faker = faker; this.factory = factory; }
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>()); }
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(); }
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)); }
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"); }