public void ContainsMetadata() { var cm = new ConceptMetadata(); var c1 = new SomeConcept { Name = "c1" }; var c2 = new SomeConcept { Name = "c2" }; var c3 = new SomeConcept { Name = "c3" }; cm.Set(c1, cmString, "abc"); cm.Set(c2, cmString, "def"); cm.Set(c2, cmInt, 123); Assert.AreEqual(true, cm.Contains(c1, cmString)); Assert.AreEqual(true, cm.Contains(c2, cmString)); Assert.AreEqual(true, cm.Contains(c2, cmInt)); Assert.AreEqual(false, cm.Contains(c1, cmInt)); Assert.AreEqual(false, cm.Contains(c3, cmString)); Assert.AreEqual(false, cm.Contains(c3, cmInt)); }
public void GetSetMetadata() { var cm = new ConceptMetadata(); var c1 = new SomeConcept { Name = "c1" }; var c2 = new SomeConcept { Name = "c2" }; var c3 = new SomeConcept { Name = "c3" }; cm.Set(c1, cmString, "abc"); cm.Set(c2, cmString, "def"); cm.Set(c2, cmInt, 123); Assert.AreEqual("abc", cm.Get(c1, cmString)); Assert.AreEqual("def", cm.Get(c2, cmString)); Assert.AreEqual(123, cm.Get(c2, cmInt)); TestUtility.ShouldFail <FrameworkException>(() => cm.Get(c1, cmInt), "There is no requested metadata", "SomeConcept", "c1", cmInt.Id.ToString()); TestUtility.ShouldFail <FrameworkException>(() => cm.Get(c3, cmString), "There is no requested metadata", "SomeConcept", "c3", "cmString", cmString.Id.ToString()); TestUtility.ShouldFail <FrameworkException>(() => cm.Get(c3, cmInt), "There is no requested metadata", "SomeConcept"); TestUtility.ShouldFail <FrameworkException>(() => cm.Set(c1, cmString, "xyz"), "metadata value is already set", "SomeConcept", "c1", "cmString", cmString.Id.ToString(), "abc", "xyz"); }
public void FallbackTypeTest() { var metadataProvider = new ConceptMetadata(new MockPluginsContainer <IConceptMetadataExtension>(new IConceptMetadataExtension[] { new SimpleConceptMetadataImplementation1() })); Assert.AreEqual("SimpleConcept1", metadataProvider.Get <ISimpleConceptMetadata <IConceptInfo> >(typeof(DerivationConcept1)).ExtensionForType); }
public void NoConceptMetadataTest() { var metadataProvider = new ConceptMetadata(new MockPluginsContainer <IConceptMetadataExtension>(new IConceptMetadataExtension[] {})); TestUtility.ShouldFail(() => { metadataProvider.Get <ISimpleConceptMetadata <IConceptInfo> >(typeof(SimpleConcept1)); }, $"There is no {nameof(IConceptMetadataExtension)} plugin", "SimpleConceptMetadata", "SimpleConcept1"); }
public static void RegisterColumnMetadata(ConceptMetadata conceptMetadata, PropertyInfo property, string columnName, string columnType) { conceptMetadata.Set(property, ColumnNamesMetadata, new List <string> { columnName }); conceptMetadata.Set(property, ColumnTypesMetadata, new List <string> { columnType }); }
public void MultipleExtensionForSameTypeErrorTest() { TestUtility.ShouldFail(() => { var metadataProvider = new ConceptMetadata(new MockPluginsContainer <IConceptMetadataExtension>(new IConceptMetadataExtension[] { new SimpleConceptMetadataImplementation1(), new SimpleConceptMetadataImplementation12() })); metadataProvider.Get <ISimpleConceptMetadata <IConceptInfo> >(typeof(SimpleConcept1)); }, "There are multiple implementations of", "SimpleConceptMetadataImplementation1", "SimpleConceptMetadataImplementation12", "SimpleConceptMetadata", "SimpleConcept1"); }
public static string AddColumn(ConceptMetadata conceptMetadata, PropertyInfo property, string options = "") { string columnName = conceptMetadata.Get(property, ColumnNamesMetadata).Single(); return Sql.Format("PropertyDatabaseDefinition_AddColumn", SqlUtility.Identifier(property.DataStructure.Module.Name), SqlUtility.Identifier(property.DataStructure.Name), DslUtility.ValidateIdentifier(columnName, property, "Invalid column name."), conceptMetadata.Get(property, ColumnTypesMetadata).Single(), options, Options1Tag.Evaluate(property), Options2Tag.Evaluate(property), AfterCreateTag.Evaluate(property)).Trim(); }
public static string AddColumn(ConceptMetadata conceptMetadata, PropertyInfo property, string options = "") { string columnName = conceptMetadata.Get(property, ColumnNamesMetadata).Single(); return(Sql.Format("PropertyDatabaseDefinition_AddColumn", SqlUtility.Identifier(property.DataStructure.Module.Name), SqlUtility.Identifier(property.DataStructure.Name), DslUtility.ValidateIdentifier(columnName, property, "Invalid column name."), conceptMetadata.Get(property, ColumnTypesMetadata).Single(), options, Options1Tag.Evaluate(property), Options2Tag.Evaluate(property), AfterCreateTag.Evaluate(property)).Trim()); }
public void GetSetMetadata() { var cm = new ConceptMetadata(); var c1 = new SomeConcept { Name = "c1" }; var c2 = new SomeConcept { Name = "c2" }; var c3 = new SomeConcept { Name = "c3" }; cm.Set(c1, cmString, "abc"); cm.Set(c2, cmString, "def"); cm.Set(c2, cmInt, 123); Assert.AreEqual("abc", cm.Get(c1, cmString)); Assert.AreEqual("def", cm.Get(c2, cmString)); Assert.AreEqual(123, cm.Get(c2, cmInt)); TestUtility.ShouldFail<FrameworkException>(() => cm.Get(c1, cmInt), "There is no metadata", "SomeConcept", "c1", cmInt.Id.ToString()); TestUtility.ShouldFail<FrameworkException>(() => cm.Get(c3, cmString), "There is no metadata", "SomeConcept", "c3", "cmString", cmString.Id.ToString()); TestUtility.ShouldFail<FrameworkException>(() => cm.Get(c3, cmInt), "There is no metadata", "SomeConcept"); TestUtility.ShouldFail<FrameworkException>(() => cm.Set(c1, cmString, "abc"), "metadata is already set", "SomeConcept", "c1", "cmString", cmString.Id.ToString()); }
public static void RegisterColumnMetadata(ConceptMetadata conceptMetadata, PropertyInfo property, string columnName, string columnType) { conceptMetadata.Set(property, ColumnNamesMetadata, new List<string> { columnName }); conceptMetadata.Set(property, ColumnTypesMetadata, new List<string> { columnType }); }
public SqlNotNullDatabaseDefinition(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public DateTimePropertyDatabaseDefinition(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public ReferencePropertyDatabaseDefinition(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public PolymorphicPropertyDatabaseDefinition(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public EntryValueDataMigrationScript(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public InvalidDataCodeGenerator(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public static string GetColumnName(this ConceptMetadata conceptMetadata, PropertyInfo property) { return(conceptMetadata.Get <IDatabaseColumnName <PropertyInfo> >(property.GetType())?.GetColumnName(property)); }
public BoolPropertyDatabaseDefinition(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public EfMappingViewsHash(IDslModel dslModel, ConceptMetadata conceptMetadata) { _dslModel = dslModel; _conceptMetadata = conceptMetadata; _sha256 = SHA256.Create(); }
public SubtypeImplementsPropertyDatabaseDefinition(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public DatePropertyDatabaseDefinition(ConceptMetadata conceptMetadataprovider) { _conceptMetadataprovider = conceptMetadataprovider; }
public LongStringPropertyDatabaseDefinition(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public IntegerPropertyDatabaseDefinition(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public HardcodedEntityPropertyDataMigrationScript(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public ExtensibleSubtypeSqlViewMacro(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
/// <summary> /// Returns the C# type for the specified property. /// </summary> public static string GetCsPropertyType(this ConceptMetadata conceptMetadata, PropertyInfo property) { return(conceptMetadata.Get <ICsPropertyType <PropertyInfo> >(property.GetType())?.GetCsPropertyType(property)); }
public DefaultValueCodeGenerator(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public static string GetColumnType(this ConceptMetadata conceptMetadata, Type propertyType) { return(conceptMetadata.Get <IDatabaseColumnType <PropertyInfo> >(propertyType)?.ColumnType); }
public PolymorphicMacro(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public InvalidDataAllowSaveMacro(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public IsSubtypeOfMacro(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
public DatePropertyDatabaseDefinition(ConceptMetadata conceptMetadata) { _conceptMetadata = conceptMetadata; }
/// <summary> /// Each subtype must implement all properties from the polymorphic supertype, except: /// 1. the references to the subtypes (automatically generated for each subtype) /// 2. the "Subtype" discriminator property (automatically generated to describe the subtype of a record). /// </summary> public bool IsImplementable(ConceptMetadata conceptMetadata) { return(!conceptMetadata.GetOrDefault(Property, IsPolymorphicSystemProperty, false)); }