예제 #1
0
        public async Task <GeneratedAccount> ExecuteAsync(IHttpClient httpClient, IResponseCache cache)
        {
            var responseBody = await cache.TryGetAsync(organizationName) ?? await GenerateNewAccount();

            var response = DeserializeAccount(responseBody);

            var publicPartOfCertificate = await driveCertificatesReader.GetPublicPartOfCertificate(response.CertificateInfo.CertificateDrivePath);

            if (publicPartOfCertificate == null)
            {
                responseBody = await GenerateNewAccount();

                response = DeserializeAccount(responseBody);
                publicPartOfCertificate = await driveCertificatesReader.GetPublicPartOfCertificate(response.CertificateInfo.CertificateDrivePath) ??
                                          throw new InvalidOperationException("The content of newly generated account was not found");
            }

            return(ToGeneratedAccount(response, publicPartOfCertificate));