public MetadataProviderService(IMetadataProviderService defaultService, IDictionary<string, string> paramters) { MakeReadonlyFieldsEditable = ConfigHelper.GetAppSettingOrDefault("MakeReadonlyFieldsEditable", false); Metadata = defaultService.LoadMetadata(); var prop = typeof(AttributeMetadata).GetProperty("IsValidForCreate", BindingFlags.Public | BindingFlags.Instance); foreach (var att in Metadata.Entities.SelectMany(entity => entity.Attributes)) { switch (att.LogicalName) { case "modifiedonbehalfby": case "createdonbehalfby": case "overriddencreatedon": prop.SetValue(att, true); break; case "createdby": case "createdon": case "modifiedby": case "modifiedon": case "owningbusinessunit": case "owningteam": case "owninguser": if (MakeReadonlyFieldsEditable) { prop.SetValue(att, true); } break; } } }
public MetadataProviderService(IMetadataProviderService defaultService, IDictionary <string, string> paramters) { MakeReadonlyFieldsEditable = ConfigHelper.GetAppSettingOrDefault("MakeReadonlyFieldsEditable", false); Metadata = defaultService.LoadMetadata(); var prop = typeof(AttributeMetadata).GetProperty("IsValidForCreate", BindingFlags.Public | BindingFlags.Instance); foreach (var att in Metadata.Entities.SelectMany(entity => entity.Attributes)) { switch (att.LogicalName) { case "modifiedonbehalfby": case "createdonbehalfby": case "overriddencreatedon": prop.SetValue(att, true); break; case "createdby": case "createdon": case "modifiedby": case "modifiedon": case "owningbusinessunit": case "owningteam": case "owninguser": if (MakeReadonlyFieldsEditable) { prop.SetValue(att, true); } break; } } }
public IOrganizationMetadata LoadMetadata() { if (cachedMetadata == null) { cachedMetadata = defaultMetadataService.LoadMetadata(); } return(cachedMetadata); }
public void TestInitialise() { metadataProviderService = Substitute.For <IMetadataProviderService>(); organizationMetadata = Substitute.For <IOrganizationMetadata>(); metadataProviderService.LoadMetadata().Returns(organizationMetadata); serviceProvider.GetService(typeof(IMetadataProviderService)).Returns(metadataProviderService); filterService.GenerateAttribute(Arg.Any <AttributeMetadata>(), serviceProvider).Returns(true); parameters = new Dictionary <string, string> { }; sut = new CodeFilteringService(filterService, parameters); }
public void CustomizeCodeDom(CodeCompileUnit codeCompileUnit, IServiceProvider services) { if (codeCompileUnit == null) { throw new ArgumentNullException(nameof(codeCompileUnit)); } if (services == null) { throw new ArgumentNullException(nameof(services)); } Console.WriteLine(string.Empty); Console.WriteLine("Generating code is in progress."); ReferencedOptionSetNames = new List <string>(); ICodeWriterFilterService codeWriterFilterService = (ICodeWriterFilterService)services.GetService(typeof(ICodeWriterFilterService)); IMetadataProviderService metadataProviderService = (IMetadataProviderService)services.GetService(typeof(IMetadataProviderService)); IOrganizationMetadata organizationMetadata = metadataProviderService.LoadMetadata(); // ServiceHelper.IntersectionEntityList = organizationMetadata.Entities.Where(x => x.IsIntersect == true).ToList(); foreach (CodeNamespace codeNamespace in codeCompileUnit.Namespaces) { foreach (EntityInfo entityInfo in ServiceHelper.EntityList) { EntityMetadata entityMetadata = entityInfo.EntityMetadata; CodeTypeDeclaration codeTypeDeclaration = codeNamespace .Types .OfType <CodeTypeDeclaration>() .FirstOrDefault(codeType => codeType.Name.ToUpperInvariant() == entityMetadata.SchemaName.ToUpperInvariant()); GenerateMultiSelectOptionSets(codeNamespace, codeTypeDeclaration, entityMetadata); GenerateOptionSets(codeNamespace, codeTypeDeclaration, entityMetadata); GenerateSetterForReadOnlyFields(codeTypeDeclaration, entityMetadata); } } ExcludeNonReferencedGlobalOptionSets(codeCompileUnit, organizationMetadata); GenerateFieldStructures(codeCompileUnit); GenerateCodeFiles(codeCompileUnit); CleanupNamespaces(codeCompileUnit); Console.WriteLine("Generating code completed successfully."); }
public void TestInitialise() { metadataProviderService = Substitute.For <IMetadataProviderService>(); organizationMetadata = Substitute.For <IOrganizationMetadata>(); metadataProviderService.LoadMetadata().Returns(organizationMetadata); serviceProvider.GetService(typeof(IMetadataProviderService)).Returns(metadataProviderService); namingService = Substitute.For <INamingService>(); parameters = new Dictionary <string, string> { { "UseDisplayNames", true.ToString() } }; testMetadata = new TestMetadata(filterService); organizationMetadata.Entities.Returns(testMetadata.ToArray()); sut = new CodeNamingService(namingService, parameters); }