public IDisposable Initialize(KeyValuePair <IApplicationArgument, List <string> > applicationArgument)
        {
            IContainer <Logging.Configuration.Configuration> loggingConfigurationContainer;

            var filePath = applicationArgument.Value.LastOrDefault() ?? applicationArgument.Key.DefaultValue;

            var fileReader = _fileConfigurationReaderFactory.GetFileReader(filePath);

            if (_configurationContainerGetterFactory.GetFileConfigurationContainerGetter(filePath)
                .GetContainer(fileReader, out loggingConfigurationContainer) == false)
            {
                return(null);
            }
            _loggingSystem = _systemFactory.GetSystem(loggingConfigurationContainer);

            if (_loggingSystem.Start() == false)
            {
                return(null);
            }

            return(this);
        }
        public ISystem GetLoggingSystem()
        {
            IContainer <Configuration.Configuration> loggingConfigurationContainer;

            var path      = global::System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
            var directory = Path.GetDirectoryName(path) ?? "";
            var filePath  = Path.Combine(directory, "Logging.config");

            var fileReader = _fileConfigurationReaderFactory.GetFileReader(filePath);

            if (_configurationContainerGetterFactory.GetFileConfigurationContainerGetter(filePath)
                .GetContainer(fileReader, out loggingConfigurationContainer) == false)
            {
                return(null);
            }
            var loggingSystem = _systemFactory.GetSystem(loggingConfigurationContainer);

            if (loggingSystem.Start() == false)
            {
                return(null);
            }

            return(loggingSystem);
        }