private static async Task <string> Run(AppConfiguration configuration) { var validator = new ConfigurationValidator(configuration); if (!validator.Validate()) { return("The validation of provider configuration details failed"); } var tokenProviderOptions = new LogicTokenProviderOptions { AuthorizationScope = configuration.TokenProvider.AuthorizationScope, ClientId = configuration.TokenProvider.ClientId, ClientSecret = configuration.TokenProvider.ClientSecret, }; if (configuration.TokenProvider.AuthorizationTokenIssuer != null) { tokenProviderOptions.AuthorizationTokenIssuer = configuration.TokenProvider.AuthorizationTokenIssuer; } using var httpClient = new HttpClient(); using var tokenProviderFactory = new LogicTokenProviderFactory(tokenProviderOptions); var options = new CitizenDocumentsOptions(configuration.SubscriptionId, configuration.ServiceUri); using var citizenDocumentClient = new CitizenDocumentsClient(httpClient, tokenProviderFactory, options); using Stream stream = File.OpenRead(configuration.DocumentName); var uploadWithLargeSizeDocument = await citizenDocumentClient.UploadFileAsync(stream, new UploadFileParameters( new Guid(configuration.ConfigurationId), new Guid(configuration.SubscriptionId), cpr : configuration.Cpr, documentName : configuration.DocumentName, documentType : configuration.DocumentType, retentionPeriodInDays : configuration.RetentionPeriodInDays)) .ConfigureAwait(false); Log.Information("The {DocumentType} document with id {DocumentId} and file access page url {FileAccessPageUrl} is uploaded successfully", uploadWithLargeSizeDocument.DocumentType, uploadWithLargeSizeDocument.DocumentId, uploadWithLargeSizeDocument.FileAccessPageUrl); return("The citizen document was uploaded successfully"); }