コード例 #1
0
        public async Task InitializeBuiltInFactories()
        {
            var dataProviders = BuiltInFactories
                                .Where(f => f.FactorySetting.Status != DataProviderFactoryStatus.Disabled)
                                .SelectMany(fc => fc.DataProvidersFactories.SelectMany(d => d.DataProviders)).ToList();
            var initTasks = dataProviders.Select(d => d.InitializeDataProviderAsync(AnalogyLogger.Instance))
                            .ToList();
            var completion = Task.WhenAll(initTasks);

            try
            {
                await completion;
            }
            catch (AggregateException ex)
            {
                AnalogyLogger.Instance.LogException(ex, "InitializeBuiltInFactories",
                                                    "Error during Initialization");
            }

            foreach (var t in initTasks)
            {
                if (t.Status != TaskStatus.RanToCompletion)
                {
                    AnalogyLogger.Instance.LogException(t.Exception, "AddExternalDataSources",
                                                        "Error during Initialization");
                }
            }
        }
コード例 #2
0
 public Assembly GetAssemblyOfFactory(IAnalogyFactory factory)
 {
     if (BuiltInFactories.Exists(f => f.Factory == factory))
     {
         return(BuiltInFactories.First(f => f.Factory == factory).Assembly);
     }
     return(Factories.Single(f => f.Factory == factory).Assembly);
 }
コード例 #3
0
 public FactoryContainer FactoryContainer(Guid componentId)
 => IsBuiltInFactory(componentId)
         ? BuiltInFactories.FirstOrDefault(f => f.Factory.FactoryId == componentId ||
                                           f.DataProvidersFactories.Any(dpf =>
                                                                        dpf.DataProviders.Any(dp => dp.Id == componentId)))
         : Factories.FirstOrDefault(f => f.Factory.FactoryId == componentId ||
                                    f.DataProvidersFactories.Any(dpf =>
                                                                 dpf.DataProviders.Any(dp => dp.Id == componentId)));
コード例 #4
0
 public bool IsBuiltInFactory(Guid factoryId) =>
 BuiltInFactories.Exists(fc => fc.Factory.FactoryId == factoryId);
コード例 #5
0
 public FactoryContainer GetBuiltInFactoryContainer(Guid id) => BuiltInFactories.Single(f => f.Factory.FactoryId == id);
コード例 #6
0
 public Assembly GetAssemblyOfFactory(IAnalogyFactory factory)
 => BuiltInFactories.Exists(f => f.Factory == factory)
         ? BuiltInFactories.First(f => f.Factory == factory).Assembly
         : Factories.Single(f => f.Factory == factory).Assembly;