// protected static EntityAssociation LookupEntityAssociation(ApplicationAssociationDefinition association) { // var appMetadata = MetadataProvider.Application(association.From); // var indexOf = association._labelField.IndexOf(".", StringComparison.Ordinal); // var firstPart = _labelField.Substring(0, indexOf); // var lookupString = firstPart.EndsWith("_") ? firstPart : firstPart + "_"; // return MetadataProvider.Entity(appMetadata.Entity).Associations.FirstOrDefault(a => a.Qualifier == lookupString); // } public static ApplicationAssociationSchemaDefinition GetSchemaInstance(AssociationDataProvider dataProvider, AssociationFieldRenderer renderer, FieldFilter filter, string dependantFieldsST) { var schema = new ApplicationAssociationSchemaDefinition(dataProvider, renderer, filter); if (schema.DataProvider != null) { schema.DependantFields = DependencyBuilder.TryParsingDependentFields(schema.DataProvider.WhereClause); } if (dependantFieldsST != null) { var fields = dependantFieldsST.Split(','); foreach (var field in fields) { schema.DependantFields.Add(field); } } return(schema); }
public static ApplicationAssociationDefinition GetInstance([NotNull] string @from, ApplicationAssociationDefinition.LabelData labelData, string target, string qualifier, ApplicationAssociationSchemaDefinition applicationAssociationSchema, string showExpression, string toolTip, string required, ISet <ApplicationEvent> events, string defaultValue, string extraProjectionFields = null, string isEnabled = "true") { var association = new ApplicationAssociationDefinition(from, labelData, target, qualifier, applicationAssociationSchema, showExpression, toolTip, required, defaultValue, isEnabled, events); var labelField = labelData.LabelField; association.LabelFields = ParseLabelFields(labelField); association.ApplicationTo = ParseApplicationTo(labelField); if (extraProjectionFields != null) { BuildExtraProjectionFields(association, extraProjectionFields); } association.SetLazyResolver(new Lazy <EntityAssociation>( () => { var appMetadata = MetadataProvider.Application(association.From); var indexOf = labelField.IndexOf(".", StringComparison.Ordinal); var firstPart = labelField.Substring(0, indexOf); var lookupString = firstPart.EndsWith("_") ? firstPart : firstPart + "_"; if (Char.IsNumber(lookupString[0])) { lookupString = lookupString.Substring(1); } var entityAssociations = MetadataProvider.Entity(appMetadata.Entity).Associations; return(entityAssociations.FirstOrDefault(a => a.Qualifier == lookupString)); })); return(association); }