/// <summary> /// Creates entitites relation rules collection. /// </summary> /// <returns> /// Entitites relation rules collection. /// </returns> /// <remarks> /// Rules stored in RuleRelation table. /// </remarks> private IEnumerable <IRuleRelationModel> GetRuleRelationCollection() { List <IRuleRelationModel> result = new List <IRuleRelationModel>(); var esq = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "RuleRelation"); var entitySchemaUIdColumnName = esq.AddColumn("EntitySchemaUId").Name; var entitySchemaColumnUIdColumnName = esq.AddColumn("EntitySchemaColumnUId").Name; var entitySchemaSearchUIdColumnName = esq.AddColumn("EntitySchemaSearchUId").Name; var entitySchemaSearchColumnUIdColumnName = esq.AddColumn("EntitySchemaSearchColumnUId").Name; var ruleColumnName = esq.AddColumn("Rule").Name; esq.AddColumn("Position").OrderByAsc(); var entityCollection = esq.GetEntityCollection(_userConnection); foreach (var item in entityCollection) { Guid entitySchemaSearchUId = item.GetTypedColumnValue <Guid>(entitySchemaSearchUIdColumnName); Guid entitySchemaUId = item.GetTypedColumnValue <Guid>(entitySchemaUIdColumnName); var autoCompleteRules = _entityConnBindingCollection.Where(binding => binding.TargetEntitySchemaUId == entitySchemaUId && binding.SourceEntitySchemaUId == entitySchemaSearchUId); IRuleRelationModel rule = CreateRule(entitySchemaSearchUId, autoCompleteRules); rule.EntitySchemaUId = entitySchemaUId; rule.EntitySchemaColumnUId = item.GetTypedColumnValue <Guid>(entitySchemaColumnUIdColumnName); rule.EntitySchemaSearchUId = entitySchemaSearchUId; rule.EntitySchemaSearchColumnUId = item.GetTypedColumnValue <Guid>(entitySchemaSearchColumnUIdColumnName); rule.Rule = item.GetTypedColumnValue <string>(ruleColumnName); result.Add(rule); } return(result); }
public virtual bool GetCanRunRule(IRuleRelationModel rule, bool isContactSearchSuccessfull) { return(rule.EntitySchemaSearchUId != AutoEmailRelationConst.AccountCommunicationSchemaUId || !isContactSearchSuccessfull); }