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));