async Task <string> GetConfigAsync()
        {
            await SubscribeToSolutionEventsAsync();

            var localConfig = await TryGetLocalConfigAsync();

            if (!string.IsNullOrWhiteSpace(localConfig))
            {
                if (fileAccessor.Exists(localConfig))
                {
                    var(isValid, content) = await TryGetValidConfigFileAsync(localConfig);

                    if (isValid)
                    {
                        return(content);
                    }
                }
            }

            var pathToFolder = Path.GetDirectoryName(ConfigPathUserProfile);

            Directory.CreateDirectory(pathToFolder);

            if (fileAccessor.Exists(ConfigPathUserProfile))
            {
                var(isValid, content) = await TryGetValidConfigFileAsync(ConfigPathUserProfile);

                if (isValid)
                {
                    return(content);
                }
            }

            return(await GenerateDefaultConfigFileAsync(ConfigPathUserProfile));
        }
        public void TEMPLATE_IS_NOT_VALID_WHEN_FILE_DOES_NOT_EXIST()
        {
            //Arrange
            var template = new TemplateInfo(_fileAccessor, _eventWriter)
            {
                Name = "name", FileName = "file"
            };

            _fileAccessor.Exists(template.FileName).Returns(false);
            //Act
            template.ActivateOptions();

            //Assert
            template.IsValid.Should().BeFalse();
        }
Exemple #3
0
        public void TEMPLATE_IS_PUT_WHEN_IS_VALID()
        {
            //Arrange
            var template = new TemplateInfo(_fileAccessor, _eventWriter)
            {
                FileName = "file",
                Name     = "template"
            };
            var rawBody = "body";

            _fileAccessor.Exists("file").Returns(true);
            _fileAccessor.ReadAllText(template.FileName).Returns(rawBody);
            template.ActivateOptions();
            var appender = new ElasticSearchAppender(_elasticClientFactory, "index", "type", _timer,
                                                     _tolerateCallsFactory,
                                                     _bulk, _logEventConverterFactory, _elasticFilters, _fileAccessor, _eventWriter)
            {
                Template = template
            };

            //Act
            appender.ActivateOptions();

            //Assert
            _elasticClient.Received().PutTemplateRaw(template.Name, rawBody);
        }
        public async Task ExecuteAsync(Func <string, Task> openFunc)
        {
            try
            {
                var localConfigPath = await this.configFileProvider.TryGetLocalConfigAsync();

                if (string.IsNullOrWhiteSpace(localConfigPath))
                {
                    return;
                }

                if (fileAccessor.Exists(localConfigPath))
                {
                    await openFunc(localConfigPath);
                }
                else
                {
                    if (popupManager.Confirm("There is no local configuration file yet, do you want to create it for this repository ?", "Init local config file"))
                    {
                        fileAccessor.CopyFile(ConfigFileProvider.ConfigPathUserProfile, localConfigPath);
                        await openFunc(localConfigPath);
                    }
                }
            }
            catch (Exception ex)
            {
                popupManager.Show(ex.ToString(), "An error occured");
            }
        }
Exemple #5
0
        OpenGenerateLocalConfigViewModel getSut(Fixture fixture, ConfigFileProvider configFileProvider, IFileAccessor fileAccessor, string configPath, bool fileExists)
        {
            configFileProvider.Configure().TryGetLocalConfigAsync().Returns(configPath);
            fileAccessor.Exists(Arg.Any <string>()).ReturnsForAnyArgs(fileExists);

            IoC.Container.EjectAllInstancesOf <IConfigFileProvider>();
            IoC.Container.Inject <IConfigFileProvider>(configFileProvider);

            IoC.Container.EjectAllInstancesOf <IFileAccessor>();
            IoC.Container.Inject <IFileAccessor>(fileAccessor);

            return(fixture.Create <OpenGenerateLocalConfigViewModel>());
        }
Exemple #6
0
        public void ActivateOptions()
        {
            if (string.IsNullOrEmpty(Name) || string.IsNullOrEmpty(FileName))
            {
                _eventWriter.Error(GetType(), "Template name or fileName is empty!");
                return;
            }

            if (!_fileAccessor.Exists(FileName))
            {
                _eventWriter.Error(GetType(), string.Format("Could not find template file: {0}", FileName));
                return;
            }

            IsValid = true;
        }