private void InitializeExistingStores() { var xmlDataTypeStoreCreator = new XmlDataTypeStoreCreator(_fileStoreDirectory); _xmlDataTypeStoresContainer = new XmlDataTypeStoresContainer(_dataProviderContext.ProviderName); var dataTypes = LoadDataTypes(_dataTypeConfigurationElements); var storesToLoad = new List<GeneratedTypesInfo>(); foreach (XmlProviderInterfaceConfigurationElement element in _dataTypeConfigurationElements) { var dataTypeDescriptor = GetDataTypeDescriptorNotNull(element); Type interfaceType = null; try { interfaceType = dataTypes[dataTypeDescriptor.DataTypeId]; if (interfaceType == null) { Log.LogError(LogTitle, "The data interface type '{0}' does not exists and is not code generated. It will not be usable", dataTypeDescriptor.TypeManagerTypeName); continue; } storesToLoad.Add(BuildGeneratedTypesInfo(dataTypeDescriptor, interfaceType, element)); } catch (Exception ex) { if (interfaceType != null) { DataProviderRegistry.AddKnownDataType(interfaceType, _dataProviderContext.ProviderName); } Log.LogError(LogTitle, "Failed initialization for the datatype {{{0}}}, {1}", dataTypeDescriptor.DataTypeId, dataTypeDescriptor.TypeManagerTypeName); Log.LogError(LogTitle, ex); } } CompileMissingTypes(storesToLoad); foreach (var storeToLoad in storesToLoad) { try { var xmlDataTypeStoreDataScopes = new List<XmlDataTypeStoreDataScope>(); foreach (DataScopeConfigurationElement dataScopeConfigurationElement in storeToLoad.Element.ConfigurationStores) { var xmlDataTypeStoreDataScope = new XmlDataTypeStoreDataScope { DataScopeName = dataScopeConfigurationElement.DataScope, CultureName = dataScopeConfigurationElement.CultureName, ElementName = dataScopeConfigurationElement.ElementName, Filename = Path.Combine(_fileStoreDirectory, dataScopeConfigurationElement.Filename) }; xmlDataTypeStoreDataScopes.Add(xmlDataTypeStoreDataScope); } XmlDataTypeStore xmlDateTypeStore = xmlDataTypeStoreCreator.CreateStoreResult(storeToLoad.DataTypeDescriptor, storeToLoad.DataProviderHelperClass, storeToLoad.DataIdClass, xmlDataTypeStoreDataScopes); AddDataTypeStore(storeToLoad.DataTypeDescriptor, storeToLoad.InterfaceType, xmlDateTypeStore); } catch (Exception ex) { DataProviderRegistry.AddKnownDataType(storeToLoad.InterfaceType, _dataProviderContext.ProviderName); Log.LogError(LogTitle, "Failed initialization for the datatype {{{0}}}, {1}", storeToLoad.DataTypeDescriptor.DataTypeId, storeToLoad.DataTypeDescriptor.TypeManagerTypeName); Log.LogError(LogTitle, ex); } } }
private void InitializeExistingStores() { var xmlDataTypeStoreCreator = new XmlDataTypeStoreCreator(_fileStoreDirectory); _xmlDataTypeStoresContainer = new XmlDataTypeStoresContainer(_dataProviderContext.ProviderName); var dataTypes = LoadDataTypes(_dataTypeConfigurationElements); var storesToLoad = new List <GeneratedTypesInfo>(); foreach (XmlProviderInterfaceConfigurationElement element in _dataTypeConfigurationElements) { var dataTypeDescriptor = GetDataTypeDescriptorNotNull(element); Type interfaceType = null; try { if (!dataTypes.TryGetValue(dataTypeDescriptor.DataTypeId, out interfaceType) || interfaceType == null) { Log.LogWarning(LogTitle, "The data interface type '{0}' does not exist and is not code generated. It will not be usable", dataTypeDescriptor.TypeManagerTypeName); continue; } storesToLoad.Add(BuildGeneratedTypesInfo(dataTypeDescriptor, interfaceType, element)); } catch (Exception ex) { if (interfaceType != null) { DataProviderRegistry.AddKnownDataType(interfaceType, _dataProviderContext.ProviderName); } Log.LogError(LogTitle, "Failed initialization for the datatype {{{0}}}, {1}", dataTypeDescriptor.DataTypeId, dataTypeDescriptor.TypeManagerTypeName); Log.LogError(LogTitle, ex); } } CompileMissingTypes(storesToLoad); foreach (var storeToLoad in storesToLoad) { try { var xmlDataTypeStoreDataScopes = new List <XmlDataTypeStoreDataScope>(); foreach (DataScopeConfigurationElement dataScopeConfigurationElement in storeToLoad.Element.ConfigurationStores) { var xmlDataTypeStoreDataScope = new XmlDataTypeStoreDataScope { DataScopeName = dataScopeConfigurationElement.DataScope, CultureName = dataScopeConfigurationElement.CultureName, ElementName = dataScopeConfigurationElement.ElementName, Filename = Path.Combine(_fileStoreDirectory, dataScopeConfigurationElement.Filename) }; xmlDataTypeStoreDataScopes.Add(xmlDataTypeStoreDataScope); } XmlDataTypeStore xmlDateTypeStore = xmlDataTypeStoreCreator.CreateStoreResult(storeToLoad.DataTypeDescriptor, storeToLoad.DataProviderHelperClass, storeToLoad.DataIdClass, xmlDataTypeStoreDataScopes); AddDataTypeStore(storeToLoad.DataTypeDescriptor, storeToLoad.InterfaceType, xmlDateTypeStore); } catch (Exception ex) { DataProviderRegistry.AddKnownDataType(storeToLoad.InterfaceType, _dataProviderContext.ProviderName); Log.LogError(LogTitle, "Failed initialization for the datatype {{{0}}}, {1}", storeToLoad.DataTypeDescriptor.DataTypeId, storeToLoad.DataTypeDescriptor.TypeManagerTypeName); Log.LogError(LogTitle, ex); } } }