{"id":22538416,"url":"https://github.com/shuttle/shuttle.core.transactionscope","last_synced_at":"2026-02-18T12:02:09.517Z","repository":{"id":251760302,"uuid":"834717241","full_name":"Shuttle/Shuttle.Core.TransactionScope","owner":"Shuttle","description":"Provides transaction scopes abstraction.","archived":false,"fork":false,"pushed_at":"2025-02-02T12:23:23.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T22:39:22.088Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shuttle.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-28T06:26:31.000Z","updated_at":"2025-02-02T12:23:01.000Z","dependencies_parsed_at":"2024-12-07T11:12:10.093Z","dependency_job_id":"56a513fa-6834-467f-ac7a-5a057fb237d1","html_url":"https://github.com/Shuttle/Shuttle.Core.TransactionScope","commit_stats":null,"previous_names":["shuttle/shuttle.core.transactionscope"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shuttle%2FShuttle.Core.TransactionScope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shuttle%2FShuttle.Core.TransactionScope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shuttle%2FShuttle.Core.TransactionScope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shuttle%2FShuttle.Core.TransactionScope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shuttle","download_url":"https://codeload.github.com/Shuttle/Shuttle.Core.TransactionScope/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248104914,"owners_count":21048421,"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":[],"created_at":"2024-12-07T11:11:58.575Z","updated_at":"2026-02-18T12:02:09.504Z","avatar_url":"https://github.com/Shuttle.png","language":"C#","readme":"# Shuttle.Core.TransactionScope\n\n```\nPM\u003e Install-Package Shuttle.Core.TransactionScope\n```\n\nThis package makes use of the .Net `TransactionScope` class to provide ambient transaction handling.\n\n## Configuration\n\nThe relevant components may be configured using `IServiceColletion`:\n\n```c#\nservices.AddTransactionScope(builder =\u003e \n{\n    builder.Options.Enabled = true;\n    builder.Options.IsolationLevel = isolationLevel;\n    builder.Options.Timeout = TimeSpan.FromSeconds(30);\n});\n```\n\nThe default JSON settings structure is as follows::\n\n```json\n{\n\t\"Shuttle\": {\n\t\t\"TransactionScope\": {\n\t\t\t\"Enabled\": true,\n\t\t\t\"IsolationLevel\": \"isolation-level\",\n\t\t\t\"Timeout\": \"00:00:30\"\n\t\t} \n\t}\n}\n```\n\n# ITransactionScope\n\nAn implementation of the `ITransactionScope` interface is used to wrap a `TransactionScope`.\n\nThe `DefaultTransactionScope` makes use of the standard .NET `TransactionScope` functionality.  There is also a `NullTransactionScope`, which is used when the transaction scope handling is disabled, that implements the null pattern so it implements the interface but does not do anything.\n\n## Properties\n\n``` c#\nGuid Id { get; }\n```\n\nReturns the Id of the transaction scope.\n\n## Methods\n\n``` c#\nvoid Complete();\n```\n\nMarks the transaction scope as complete.\n\n# ITransactionScopeFactory\n\nAn implementation of the `ITransactionScopeFactory` interface provides instances of an `ITransactionScope` implementation.\n\nThe `TransactionScopeFactory` provides a `DefaultTransactionScope` instance if transaction scopes are `Enabled`; else a `NullTransactionScope` that implements the null pattern.\n\n## Create\n\n``` c#\nITransactionScope Create(IsolationLevel isolationLevel, TimeSpan timeout);\n```\n\nCreates the relevant instance using the given parameters.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshuttle%2Fshuttle.core.transactionscope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshuttle%2Fshuttle.core.transactionscope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshuttle%2Fshuttle.core.transactionscope/lists"}