public async Task CanGetSecretSecuredHttpGateSettings()
        {
            var repository = _Container.Resolve <ISecretRepository>();
            var securedHttpGateSettingsSecret = new SecretSecuredHttpGateSettings();
            var errorsAndInfos          = new ErrorsAndInfos();
            var securedHttpGateSettings = await repository.GetAsync(securedHttpGateSettingsSecret, errorsAndInfos);

            Assert.IsFalse(errorsAndInfos.AnyErrors(), string.Join("\r\n", errorsAndInfos.Errors));

            var folder = await _Container.Resolve <IFolderResolver>().ResolveAsync(securedHttpGateSettings.LocalhostTempPath, errorsAndInfos);

            Assert.IsFalse(errorsAndInfos.AnyErrors(), string.Join("\r\n", errorsAndInfos.Errors));
            var file = Directory.GetFiles(folder.FullName, "*.txt").FirstOrDefault();

            if (string.IsNullOrEmpty(file))
            {
                return;
            }

            var contents = await File.ReadAllTextAsync(file);

            var shortFileName       = file.Substring(file.LastIndexOf('\\') + 1);
            var httpGate            = _Container.Resolve <IHttpGate>();
            var httpResponseMessage = await httpGate.GetAsync(new Uri(securedHttpGateSettings.LocalhostTempPathUrl + shortFileName));

            var httpContents = await httpResponseMessage.Content.ReadAsStringAsync();

            Assert.AreEqual(contents, httpContents);
        }
Beispiel #2
0
        public static async Task SaveUnhandledExceptionAsync(string applicationName, IFolder exceptionLogFolder, Exception exception, string source)
        {
            await ExceptionSaver.SaveUnhandledExceptionAsync(exceptionLogFolder, exception, source, async e => {
                var container  = new ContainerBuilder().UsePegh(applicationName, new DummyCsArgumentPrompter()).Build();
                var repository = container.Resolve <ISecretRepository>();
                var securedHttpGateSettingsSecret = new SecretSecuredHttpGateSettings();
                var errorsAndInfos          = new ErrorsAndInfos();
                var securedHttpGateSettings = await repository.GetAsync(securedHttpGateSettingsSecret, errorsAndInfos);

                ISecuredHttpGate gate = new SecuredHttpGate(new HttpGate(), securedHttpGateSettings, container.Resolve <IFolderResolver>(),
                                                            container.Resolve <IStringCrypter>());
                await gate.RegisterDefectAsync(e.ExceptionName, e.FileContents, false);
            });
        }
Beispiel #3
0
        private static async Task <SecuredHttpGateSettings> CreateSecuredHttpGateSettingsAsync(string applicationName, ICsArgumentPrompter csArgumentPrompter)
        {
            var peghContainer = new ContainerBuilder().UsePegh(applicationName, csArgumentPrompter).Build();
            var repository    = peghContainer.Resolve <ISecretRepository>();
            var securedHttpGateSettingsSecret = new SecretSecuredHttpGateSettings();
            var errorsAndInfos          = new ErrorsAndInfos();
            var securedHttpGateSettings = await repository.GetAsync(securedHttpGateSettingsSecret, errorsAndInfos);

            if (errorsAndInfos.AnyErrors())
            {
                throw new Exception(errorsAndInfos.ErrorsToString());
            }

            return(securedHttpGateSettings);
        }