{"id":21597586,"url":"https://github.com/fiskaltrust/middleware-demo-dotnet","last_synced_at":"2025-06-10T11:33:34.420Z","repository":{"id":40877747,"uuid":"238248494","full_name":"fiskaltrust/middleware-demo-dotnet","owner":"fiskaltrust","description":"Demo applications that demonstrate how to call the fiskaltrust.Middleware from .NET/C#. This repository contains examples using GRPC, WCF and REST using both JSON and XML.","archived":false,"fork":false,"pushed_at":"2023-10-23T10:58:37.000Z","size":128,"stargazers_count":3,"open_issues_count":0,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-11T00:53:27.468Z","etag":null,"topics":["csharp","demo-application","dotnet","kassensichv","middleware","pos-systems","rksv"],"latest_commit_sha":null,"homepage":"https://docs.fiskaltrust.cloud","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fiskaltrust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-02-04T16:13:06.000Z","updated_at":"2023-10-23T10:58:53.000Z","dependencies_parsed_at":"2025-04-11T00:53:28.989Z","dependency_job_id":"d47c1eeb-8e1d-415a-b45b-d59e273f5821","html_url":"https://github.com/fiskaltrust/middleware-demo-dotnet","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiskaltrust%2Fmiddleware-demo-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiskaltrust%2Fmiddleware-demo-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiskaltrust%2Fmiddleware-demo-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiskaltrust%2Fmiddleware-demo-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fiskaltrust","download_url":"https://codeload.github.com/fiskaltrust/middleware-demo-dotnet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiskaltrust%2Fmiddleware-demo-dotnet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259066942,"owners_count":22800234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","demo-application","dotnet","kassensichv","middleware","pos-systems","rksv"],"created_at":"2024-11-24T18:09:23.901Z","updated_at":"2025-06-10T11:33:34.383Z","avatar_url":"https://github.com/fiskaltrust.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fiskaltrust.Middleware demo (C#)\nDemo applications that demonstrate how to call the fiskaltrust.Middleware from .NET/C#. This repository contains examples for **GRPC**, **WCF** and **REST** based communication, using both JSON and XML.\n\n## Getting Started\n\n### Prerequisites\nIn order to use this demo application, the following prerequisites are required:\n- *The demo application*: Either clone and run locally, or download the latest binaries from [Releases](https://github.com/fiskaltrust/middleware-de-demo-dotnet/releases)\n- *The fiskaltrust.Middleware* running on your machine, which can be configured and downloaded via the fiskaltrust.Portal ([AT](https://portal.fiskaltrust.at), [DE](https://portal.fiskaltrust.de), [FR](https://portal.fiskaltrust.fr)). Start it (either by running it as a service, or with the `test.cmd` file), and let it run in the background to handle your requests.\n- *Your Cashbox Id* is visible in the portal. It is also displayed in the startup console log of the Middleware. \n\nThis example uses the fiskaltrust.interface and the fiskaltrust.Middleware communication helper packages, which provide a convenient way to implement the middleware interface from .NET. These packages can be downloaded directly from [NuGet](https://www.nuget.org/profiles/fiskaltrust).\n\n### Running the Demo\nThe Demo app needs three startup parameters: `cashbox-id`, `url` and `market`. The Middleware logs out all available endpoints (i.e. the URLs) as configured in the portal on startup. \n\nFor the HTTP example, further parameters can optionally be provided (the communication type and the access token, with the latter only being required when connecting to SignaturCloud).\n\nMinimal startup example:  \n\n```powershell\nfiskaltrust.Middleware.Demo.Grpc.exe --cashbox-id \"54c6b434-cd27-442e-b39f-0960c4ad1bda\" --url \"grpc://localhost:13151\"\n```\n\nIf a parameter is not passed, the user will be prompted at startup.\n\n1. The demo will show up a list of available demo receipts, pulled from the `src/fiskaltrust.Middleware.Demo.Shared/ReceiptExamples` folder. Before executing any receipt, make sure that the SCU is initialized, by calling the *initial-operation-receipt*/the *start receipt*. \n2. To execute a receipt against the middleware, select it by its leading number and press Enter.\n3. This will print the example to the command line and send it to the _Sign_ endpoint of the Middleware. After the receipt is processed, the Middleware will return the result back to the demo app, which again prints it to the console. \n4. Alternatively, a Journal request can also be executed. This is used to export different types of data from the middleware - system information, processed receipts, etc.\n5. To go back to the command list, press enter\n\n## Documentation\nThe full documentation for the interface can be found on https://docs.fiskaltrust.cloud. It is activeliy maintained and developed in our [interface-doc repository](https://github.com/fiskaltrust/interface-doc). \n\nMore information is also available after logging into the portal with a user that has the _PosCreator_ role assigned.\n\n### Communication\nThe fiskaltrust.Middleware supports different communication protocols, effectively giving our customers the possibility to use it on all platforms. Hence, different protocols are recommended for different platforms.\n\n#### gRPC\ngRPC is a cross-platform communication protocol and therefore widely supported by operating systems and programming frameworks. For using it with .NET, we provide a \"code-first\" client on NuGet. \n\nThe .proto files (i.e. the interface description) can be used to generate clients for all supported programming languages and downloaded [here](https://github.com/fiskaltrust/interface-doc/tree/master/dist/protos).\n\n*gRPC is not supported for Middleware versions \u003c 1.3.*\n\n#### WCF/SOAP\nOur WCF implementation supports multiple communication technologies: \n- http\n- https\n- net.pipe\n- net.tcp\n\nBoth the middleware and demo automatically detect the communication type for WCF from the given URL. **This option is only available when running on Windows**.\n\nThe WSDL file can be downloaded [here](https://github.com/fiskaltrust/interface-doc/tree/master/dist/WSDL).\n\n#### HTTP/REST\nHTTP/REST communication is available via JSON and XML, and probably the easiest approach for multi-platform communication. In Middleware versions \u003c 1.3, the _REST helper_ is required - higher versions automatically support this protocol without any helpers.\n\n#### User specific protocols\nWith the helper topology, it is possible to solve every scenario. Please contact our support if you required assistance for a special case scenario.\n\n## Contributions\nWe welcome all kinds of contributions and feedback, e.g. via Issues or Pull Requests. \n\n## Related resources\nOur latest samples are available for the following programming languages and tools:\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/fiskaltrust/middleware-demo-dotnet\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/C_Sharp_wordmark.svg/100px-C_Sharp_wordmark.svg.png\" alt=\"csharp\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://github.com/fiskaltrust/middleware-demo-java\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikiversity/de/thumb/b/b8/Java_cup.svg/100px-Java_cup.svg.png\" alt=\"java\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://github.com/fiskaltrust/middleware-demo-node\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Node.js_logo.svg/100px-Node.js_logo.svg.png\" alt=\"node\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://github.com/fiskaltrust/middleware-demo-android\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Android_robot.svg/100px-Android_robot.svg.png\" alt=\"android\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://github.com/fiskaltrust/middleware-demo-postman\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/10251060?s=100\u0026v=4\" alt=\"node\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nAdditionally, other samples (including legacy ones) can be found in our [demo repository](https://github.com/fiskaltrust/demo).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiskaltrust%2Fmiddleware-demo-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiskaltrust%2Fmiddleware-demo-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiskaltrust%2Fmiddleware-demo-dotnet/lists"}