Dans cet article, vous apprendrez comment implémenter le FiscalClient à l’aide de nuget.
Prérequis
- Connaissances en développement .NET
- Connaissance de l'utilisation des paquets nuget-packages
-
Téléchargez les paquets
RetailForce.Fiscalisation - Plateforme prenant en charge .NET Standard 2.0
Mise en œuvre
Fournisseur de configuration
Pour persister la configuration, vous devez instancier un FileConfigurationProvider en lui transmettant le chemin d’accès au fichier de configuration ainsi qu’un logger :
FileConfigurationProvider fileConfigurationProvider = new FileConfigurationProvider(System.IO.Path.Combine(this.FilesDir.ToString(), "fiscalclient.config.json"), _logger);(Android).
Gestion des modules fiscaux
Pour créer des clients ou charger la configuration depuis le Cloud, vous avez besoin de la classe FiscalModuleManagement :
IClientStatusReporter clientStatusReporter = new EmptyClientStatusReporter();
FiscalModuleManagement moduleManagement = new FiscalModuleManagement(_logger, fileConfigurationProvider, clientStatusReporter);Le logger est dérivé de Microsoft.Extensions.Logging.ILogger.
Le rapporteur d’état du client (IClientStatusReporter) est obligatoire. Si vous ne traitez pas vous-même les rapports d’état, utilisez EmptyClientStatusReporter.
Charger un client depuis le cloud
Pour charger le client depuis le Cloud, vous pouvez utiliser la commande CreateClientByCloud :
uniqueClientId = moduleManagement.CreateClientByCloud(new CompanyIdentification() { Identification = "ATU1234567", Type = CompanyIdentification.IdentificationType.VatNumber }, "T001", "T001", cloudApiKey, cloudApiSecret);Instance de client manuelle
Le client peut également être créé manuellement (FiscalClient). Une fois cette classe instanciée, le client peut être généré à l’aide de CreateClient.
Créer un module fiscal
Un module fiscal peut être créé à l’aide de la classe FiscalModuleCreator :
CloudService cloudService = new CloudService(_logger, storageBasePath, uniqueClientId.Value, cloudApiKey, cloudApiSecret);
FiscalModulCreator creator = new FiscalModulCreator(fileConfigurationProvider, _logger, cloudService, null, clientStatusReporter);Cela permet de créer le module fiscal. La classe CloudService doit être conservée dans le logiciel pendant toute la durée d’exécution. Elle se charge du transfert en arrière-plan vers le cloud.
Le quatrième paramètre (IotService) est facultatif et peut être défini sur null. La classe FiscalModuleCreator accepte également la valeur null pour CloudService, mais le LocalMonitoringClient utilisé ci-dessous nécessite un CloudService.
Création du module fiscal
Une fois la classe FiscalModuleCreator initialisée, le module fiscal peut être créé.
Le module fiscal persiste ses données au moyen de deux fournisseurs de stockage : un FiscalDataStorageProvider pour les données fiscales et un AuditLogStorageProvider pour le journal d’audit. Pour le stockage local, utilisez LocalFiscalDataStorageProvider et LocalAuditLogStorageProvider. storageBasePath correspond au répertoire de base sans l’ID du client (Android : this.GetExternalFilesDir(Android.OS.Environment.DirectoryDocuments).AbsolutePath) ; le chemin d’accès au journal d’audit doit contenir l’ID du client.
IMonitoringClient monitoringClient = new LocalMonitoringClient(cloudService);
FiscalDataStorageProvider storageProvider = new LocalFiscalDataStorageProvider(_logger, uniqueClientId.Value, monitoringClient, storageBasePath);
AuditLogStorageProvider auditLogStorageProvider = new LocalAuditLogStorageProvider(uniqueClientId.Value, _logger, System.IO.Path.Combine(storageBasePath, uniqueClientId.Value.ToString()));
TrustedFiscalModule fiscalModule = creator.CreateFiscalModuleForClient(uniqueClientId.Value, storageProvider, auditLogStorageProvider, cloudApiKey: cloudApiKey, cloudApiSecret: cloudApiSecret);Ici aussi, si la prise en charge du cloud n’est pas nécessaire, les éléments de sécurité liés au cloud (cloudApiKey, cloudApiSecret) peuvent être omis.
IMPORTANT : la configuration du client doit avoir été créée au préalable, soit en la téléchargeant depuis le Cloud, soit via CreateClient (voir ci-dessus).
Cet article a été traduit automatiquement.
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.