public ILogSource CreateCustom(CustomDataSourceId id, ICustomDataSourceConfiguration configuration,
                                       out IPluginDescription pluginDescription)
        {
            var pair = _dataSourcePlugins.First(x => x.Plugin.Id == id);

            pluginDescription = pair.Description;
            var logFile = TryCreateCustomWith(pair.Plugin, configuration);

            return(new NoThrowLogSource(logFile, pluginDescription.Name));
        }
 public NoThrowCustomDataSourceConfiguration(ICustomDataSourcePlugin inner, IServiceContainer serviceContainer)
 {
     try
     {
         Inner = inner.CreateConfiguration(serviceContainer);
     }
     catch (Exception e)
     {
         Log.ErrorFormat("Caught unexpected exception: {0}", e);
     }
 }
 private ILogSource TryCreateCustomWith(ICustomDataSourcePlugin plugin, ICustomDataSourceConfiguration configuration)
 {
     try
     {
         var logFile = plugin.CreateLogSource(_services, configuration);
         return(logFile);
     }
     catch (Exception e)
     {
         Log.ErrorFormat("Caught exception while trying to create custom log file: {0}", e);
         return(null);
     }
 }
        public ILogSource CreateLogSource(IServiceContainer serviceContainer, ICustomDataSourceConfiguration configuration)
        {
            var actualConfig = ((NoThrowCustomDataSourceConfiguration)configuration).Inner;

            try
            {
                var actualLogFile = _inner.CreateLogSource(serviceContainer, actualConfig);
                return(new NoThrowLogSource(actualLogFile, "TODO"));
            }
            catch (Exception e)
            {
                Log.ErrorFormat("Caught unexpected exception: {0}", e);
                return(new EmptyLogSource());
            }
        }
        public ICustomDataSourceViewModel CreateViewModel(IServiceContainer serviceContainer,
                                                          ICustomDataSourceConfiguration configuration)
        {
            var actualConfig = ((NoThrowCustomDataSourceConfiguration)configuration).Inner;

            try
            {
                return(_inner.CreateViewModel(serviceContainer, actualConfig));
            }
            catch (Exception e)
            {
                Log.ErrorFormat("Caught unexpected exception: {0}", e);
                return(null);
            }
        }
 public ILogSource CreateCustom(CustomDataSourceId id, ICustomDataSourceConfiguration configuration)
 {
     return(CreateCustom(id, configuration, out _));
 }
 private NoThrowCustomDataSourceConfiguration(ICustomDataSourceConfiguration clone)
 {
     Inner = clone;
 }