/// <summary> Discover and register. </summary> 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)); } ResetSyncStatus(); var allResources = new GetAllResources.Query().Execute().ToList(); RegisterDiscoveredResources(discoveredResources, allResources); RegisterDiscoveredResources(discoveredModels, allResources); if (ConfigurationContext.Current.PopulateCacheOnStartup) { PopulateCache(); } }
/// <summary>Enumerates read all in this collection.</summary> /// <returns>An enumerator that allows foreach to be used to process read all in this collection.</returns> public IEnumerable <LocalizationResource> ReadAll() { ConfigurationContext.Current.TypeFactory.ForQuery <DetermineDefaultCulture.Query>() .SetHandler <DetermineDefaultCulture.Handler>(); var discoveredTypes = TypeDiscoveryHelper.GetTypes( t => t.GetCustomAttribute <LocalizedResourceAttribute>() != null, t => t.GetCustomAttribute <LocalizedModelAttribute>() != null); var discoveredResources = discoveredTypes[0]; var discoveredModels = discoveredTypes[1]; var types = discoveredResources.Concat(discoveredModels); var helper = new TypeDiscoveryHelper(); var props = types.SelectMany(type => helper.ScanResources(type)).DistinctBy(r => r.Key); return(props.Select(p => new LocalizationResource(p.Key) { Author = "Code", FromCode = true, IsHidden = p.IsHidden, IsModified = false, ModificationDate = DateTime.Now, Translations = p.Translations.Select(t => new LocalizationResourceTranslation { Language = t.Culture, Value = t.Translation }).ToList() })); }