Example #1
0
        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);
        }
Example #3
0
        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();
        }
Example #4
0
        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();
            }
        }