public ProviderPair CreateProviderPair(String providerConfigName) { var providerConfig = ProviderConfig.ProviderPairs.Single(vp => vp.Name == providerConfigName); var valueProviderType = Type.GetType(providerConfig.ValueProvider.Type); if (valueProviderType == null) throw new Exception("Cannot find type \"" + providerConfig.ValueProvider.Type + "\""); if (!typeof(ILocalizedValueManager).IsAssignableFrom(valueProviderType)) throw new Exception("Type \"" + valueProviderType + "\" does not implement " + typeof(ILocalizedValueManager).Name + "!"); var valueProvider = ConstructProvider(valueProviderType, providerConfig.ValueProvider.ConstructorArguments.Cast<ConstructorArgumentElement>().ToArray()); if (valueProvider == null) throw new Exception("Could not initialize value provider, incorrect constructor arguments!"); if (providerConfig.LogProvider.IsValueProvider) return new ProviderPair(providerConfigName, valueProvider as ILocalizedValueManager, valueProvider as ILocalizationLogger); var logProviderType = Type.GetType(providerConfig.LogProvider.Type); if (logProviderType == null) throw new Exception("Cannot find type \"" + providerConfig.LogProvider.Type + "\""); if (!typeof(ILocalizationLogger).IsAssignableFrom(logProviderType)) throw new Exception("Type \"" + logProviderType + "\" does not implement " + typeof(ILocalizationLogger).Name + "!"); var logProvider = ConstructProvider(logProviderType, providerConfig.LogProvider.ConstructorArguments.Cast<ConstructorArgumentElement>().ToArray()); if (logProvider == null) throw new Exception("Could not initialize log provider, incorrect constructor arguments!"); var pair = new ProviderPair(providerConfigName, valueProvider as ILocalizedValueManager, logProvider as ILocalizationLogger); pair.ValueManager.Reload(); return pair; }
private void UpdateCreate(bool execute, ProviderPair targetPair, Dictionary<Qualifier.Unique, LocalizationAudit> sourceAudits, Dictionary<Qualifier.Unique, LocalizationAudit> targetAudits, QualifiedValue sourceQualifiedValue, String targetOldValue, SynchronizationResult result) { if (execute) { if (sourceAudits.ContainsKey(sourceQualifiedValue.Qualifier)) targetAudits[sourceQualifiedValue.Qualifier] = sourceAudits[sourceQualifiedValue.Qualifier]; targetPair.ValueManager.UpdateCreateValue(new QualifiedValue(sourceQualifiedValue.Qualifier, sourceQualifiedValue.Value)); } result.Updated.Add(new Update(targetPair.Name, sourceQualifiedValue.Qualifier.ToString(), targetOldValue, sourceQualifiedValue.Value)); }
private void Delete(bool execute, ProviderPair targetPair, Dictionary<Qualifier.Unique, LocalizationAudit> sourceAudits, Dictionary<Qualifier.Unique, LocalizationAudit> targetAudits, QualifiedValue targetQualifiedValue, SynchronizationResult result) { if (execute) { if (sourceAudits.ContainsKey(targetQualifiedValue.Qualifier)) targetAudits[targetQualifiedValue.Qualifier] = sourceAudits[targetQualifiedValue.Qualifier]; targetPair.ValueManager.DeleteValue(targetQualifiedValue.Qualifier); } result.Removed.Add(new Removal(targetPair.Name, targetQualifiedValue.Qualifier.ToString(), targetQualifiedValue.Value)); }