public void DiscoverAndRegister() { if (!ConfigurationContext.Current.DiscoverAndRegisterResources) { return; } var discoveredTypes = TypeDiscoveryHelper.GetTypes(t => t.GetCustomAttribute <LocalizedResourceAttribute>() != null, t => t.GetCustomAttribute <LocalizedModelAttribute>() != null); var discoveredResources = discoveredTypes[0]; var foreignResources = ConfigurationContext.Current.ForeignResources; if (foreignResources != null && foreignResources.Any()) { discoveredResources.AddRange(foreignResources.Select(x => x.ResourceType)); } // initialize db structures first (issue #53) using (var ctx = new LanguageEntities()) { var tmp = ctx.LocalizationResources.FirstOrDefault(); } ResetSyncStatus(); Parallel.Invoke(() => RegisterDiscoveredResources(discoveredResources), () => RegisterDiscoveredResources(discoveredTypes[1])); if (ConfigurationContext.Current.PopulateCacheOnStartup) { PopulateCache(); } }
private IEnumerable <LocalizationResource> DiscoverReadMerge() { UpdateStorageSchema(); var discoveredTypes = _helper.GetTypes( t => t.GetCustomAttribute <LocalizedResourceAttribute>() != null, t => t.GetCustomAttribute <LocalizedModelAttribute>() != null); var discoveredResourceTypes = discoveredTypes[0]; var discoveredModelTypes = discoveredTypes[1]; var foreignResourceTypes = _configurationContext.ForeignResources; if (foreignResourceTypes != null && foreignResourceTypes.Any()) { discoveredResourceTypes.AddRange(foreignResourceTypes.Select(x => x.ResourceType)); } ICollection <DiscoveredResource> discoveredResources = new List <DiscoveredResource>(); ICollection <DiscoveredResource> discoveredModels = new List <DiscoveredResource>(); Parallel.Invoke(() => discoveredResources = DiscoverResources(discoveredResourceTypes), () => discoveredModels = DiscoverResources(discoveredModelTypes)); var syncedResources = Execute(discoveredResources, discoveredModels, _configurationContext.FlexibleRefactoringMode); return(syncedResources); }
public void DiscoverAndRegister() { if (!ConfigurationContext.Current.DiscoverAndRegisterResources) { return; } var discoveredTypes = TypeDiscoveryHelper.GetTypes(t => t.GetCustomAttribute <LocalizedResourceAttribute>() != null, t => t.GetCustomAttribute <LocalizedModelAttribute>() != null); var discoveredResources = discoveredTypes[0]; var discoveredModels = discoveredTypes[1]; var foreignResources = ConfigurationContext.Current.ForeignResources; if (foreignResources != null && foreignResources.Any()) { discoveredResources.AddRange(foreignResources.Select(x => x.ResourceType)); } // initialize db structures first (issue #53) if (ConfigurationContext.Current.Tenants.Any()) { foreach (var t in ConfigurationContext.Current.Tenants) { InitializeDatabaseStructures(t.ConnectionString); } } else { InitializeDatabaseStructures(ConfigurationContext.Current.DbContextConnectionString); } ResetSyncStatus(); var allResources = new GetAllResources.Query(true).Execute(); Parallel.Invoke(() => RegisterDiscoveredResources(discoveredResources, allResources), () => RegisterDiscoveredResources(discoveredModels, allResources)); StoreKnownResourcesAndPopulateCache(); }
public void DiscoverAndRegister() { if (!ConfigurationContext.Current.DiscoverAndRegisterResources) { return; } var discoveredTypes = TypeDiscoveryHelper.GetTypes(t => t.GetCustomAttribute <LocalizedResourceAttribute>() != null, t => t.GetCustomAttribute <LocalizedModelAttribute>() != null); using (var db = new LanguageEntities()) { ResetSyncStatus(db); RegisterDiscoveredResources(db, discoveredTypes[0]); RegisterDiscoveredModels(db, discoveredTypes[1]); } if (ConfigurationContext.Current.PopulateCacheOnStartup) { PopulateCache(); } }