示例#1
0
        public HttpResponseMessage Get(string key)
        {
            PersonaBarResponse response = null;

            if (!File.Exists(SecretsProvider.SecretsFile))
            {
                response = new PersonaBarResponse
                {
                    Success = false
                };

                return(response.ToHttpResponseMessage());
            }

            var json    = File.ReadAllText(SecretsProvider.SecretsFile);
            var secrets = JsonConvert.DeserializeObject <Secrets>(json);

            var value = SecretsProvider.GetAppSettingValue(secrets, key);

            response = new PersonaBarResponse <AppSetting>
            {
                Success = true,
                Result  = new AppSetting
                {
                    Key   = key,
                    Value = value
                }
            };

            return(response.ToHttpResponseMessage());
        }
示例#2
0
        public HttpResponseMessage Delete([FromBody] AppSetting appsetting)
        {
            var response = new PersonaBarResponse();

            if (string.IsNullOrEmpty(appsetting.Key))
            {
                response.Success = false;
                return(response.ToHttpResponseMessage());
            }

            if (!File.Exists(SecretsProvider.SecretsFile))
            {
                response = new PersonaBarResponse
                {
                    Success = false
                };

                return(response.ToHttpResponseMessage());
            }

            var json    = File.ReadAllText(SecretsProvider.SecretsFile);
            var secrets = JsonConvert.DeserializeObject <Secrets>(json);

            response.Success = SecretsProvider.DeleteAppSetting(secrets, appsetting.Key);
            return(response.ToHttpResponseMessage());
        }
示例#3
0
        public HttpResponseMessage Save([FromBody] AppSetting appsetting)
        {
            var response = new PersonaBarResponse();

            if (!ModelState.IsValid || appsetting == null)
            {
                response.Success = false;
                return(response.ToHttpResponseMessage());
            }
            ;

            if (!File.Exists(SecretsProvider.SecretsFile))
            {
                response = new PersonaBarResponse
                {
                    Success = false
                };

                return(response.ToHttpResponseMessage());
            }

            var json    = File.ReadAllText(SecretsProvider.SecretsFile);
            var secrets = JsonConvert.DeserializeObject <Secrets>(json);

            response.Success = SecretsProvider.CreateOrUpdateAppSetting(appsetting.Key, appsetting.Value, secrets);
            return(response.ToHttpResponseMessage());
        }
示例#4
0
        public HttpResponseMessage List()
        {
            PersonaBarResponse response = null;

            if (!File.Exists(SecretsProvider.SecretsFile))
            {
                response = new PersonaBarResponse
                {
                    Success = false
                };

                return(response.ToHttpResponseMessage());
            }

            var json    = File.ReadAllText(SecretsProvider.SecretsFile);
            var secrets = JsonConvert.DeserializeObject <Secrets>(json);

            var keys = SecretsProvider.GetAppSettingsKeys(secrets);

            response = new PersonaBarResponse <IEnumerable <AppSetting> >
            {
                Success = true,
                Result  = keys.Select(x => new AppSetting
                {
                    Key = x
                })
            };

            return(response.ToHttpResponseMessage());
        }
示例#5
0
        public HttpResponseMessage Status()
        {
            PersonaBarResponse response = new PersonaBarResponse();

            if (!File.Exists(SecretsProvider.SecretsFile))
            {
                response.Success = false;
                return(response.ToHttpResponseMessage());
            }

            var json    = File.ReadAllText(SecretsProvider.SecretsFile);
            var secrets = JsonConvert.DeserializeObject <Secrets>(json);

            if (!SecretsProvider.ValidateSecrets(secrets))
            {
                response.Success = false;
                return(response.ToHttpResponseMessage());
            }

            var xml = XDocument.Load(SecretsProvider.WebconfigFile);
            var doc = xml.Element("configuration");

            var connectionString = doc.Element("connectionStrings");

            response.Success = connectionString == null;
            return(response.ToHttpResponseMessage());
        }
示例#6
0
        public HttpResponseMessage Save([FromBody] Secrets secrets)
        {
            PersonaBarResponse response = new PersonaBarResponse();

            if (!ModelState.IsValid || secrets == null)
            {
                response.Success = false;
                return(response.ToHttpResponseMessage());
            }

            try
            {
                var isValid = SecretsProvider.ValidateSecrets(secrets);
                if (!isValid)
                {
                    response.Success = false;
                    return(response.ToHttpResponseMessage());
                }

                File.WriteAllText(SecretsProvider.SecretsFile, JsonConvert.SerializeObject(secrets));

                response.Success = true;
                return(response.ToHttpResponseMessage());
            }
            catch (Exception ex)
            {
                ex.Handle();
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
        }
示例#7
0
        public async void Simple()
        {
            var secrets          = new SecretsProvider().Get();
            var client           = new IamTokenClient();
            var privateKeyStream = new MemoryStream(Encoding.UTF8.GetBytes(secrets.AuthorizationKeyPrivateKey));
            var iamToken         = await client.Get(
                secrets.ServiceAccountId,
                secrets.AuthorizationKeyId,
                privateKeyStream
                );

            output.WriteLine(iamToken);
        }
        public void Simple()
        {
            var secrets          = new SecretsProvider().Get();
            var jwtCreator       = new JwtCreator();
            var expirationTime   = TimeSpan.FromMinutes(15);
            var privateKeyStream = new MemoryStream(Encoding.UTF8.GetBytes(secrets.AuthorizationKeyPrivateKey));
            var jwtToken         = jwtCreator.Create(
                secrets.ServiceAccountId,
                secrets.AuthorizationKeyId,
                privateKeyStream,
                expirationTime
                );

            output.WriteLine(jwtToken);
        }
示例#9
0
        public static void Main(string[] args)
        {
            var host = Host.CreateDefaultBuilder(args)
                       .ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.AddInMemoryCollection(SecretsProvider.GetSecrets());
            })
                       .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                       .ConfigureWebHostDefaults(webHostBuilder =>
            {
                webHostBuilder.UseKestrel()
                .ConfigureServices(s => s.AddAutofac())
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseStartup <Startup>();
            })
                       .Build();

            host.Run();
        }
示例#10
0
        public HttpResponseMessage Test([FromBody] Secrets secrets)
        {
            PersonaBarResponse response = new PersonaBarResponse();

            if (!ModelState.IsValid || secrets == null)
            {
                response.Success = false;
                return(response.ToHttpResponseMessage());
            }

            try
            {
                response.Success = SecretsProvider.ValidateSecrets(secrets);
                return(response.ToHttpResponseMessage());
            }
            catch (Exception ex)
            {
                ex.Handle();
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
        }
        public async void Simple()
        {
            var secrets          = new SecretsProvider().Get();
            var iamTokenClient   = new IamTokenClient();
            var privateKeyStream = new MemoryStream(Encoding.UTF8.GetBytes(secrets.AuthorizationKeyPrivateKey));
            var iamToken         = await iamTokenClient.Get(
                secrets.ServiceAccountId,
                secrets.AuthorizationKeyId,
                privateKeyStream
                );

            var client = new VisionClient();
            var image  = File.OpenRead("Vision/image.png");
            var result = await client.RecognizeText(
                secrets.FolderId,
                iamToken,
                image,
                new[]
            {
                "ru", "en"
            }
                );

            var words = result.Single()
                        .Results.Single()
                        .TextDetection
                        .Pages.Single()
                        .Blocks.Single()
                        .Lines.Single()
                        .Words;

            words.Select(x => x.Text)
            .ShouldBe(
                new[]
            {
                "Какой-то", "текст"
            }
                );
            output.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented));
        }
示例#12
0
 public CertificateManagerClientTest()
 {
     secretsProvider = new SecretsProvider();
     client          = new CertificateManagerClient();
 }
示例#13
0
        public ObjectStorageClientTest()
        {
            var secrets = new SecretsProvider().Get();

            client = new ObjectStorageClient(secrets.AccessKeyId, secrets.AccessKey);
        }