├── .gitignore
├── CosmosDBStudio.sln
├── CosmosDBStudio.sln.DotSettings
├── Directory.Build.props
├── LICENSE
├── README.md
├── assets
├── attributions.txt
├── compass.png
├── cosmosdb-small.png
├── cosmosdb.pdn
├── cosmosdb.png
├── planet.png
└── screenshots
│ └── CosmosDBStudio-screenshot.png
├── global.json
├── pkg
└── CosmosDBStudio.Packaging
│ ├── CosmosDBStudio.Packaging.wapproj
│ ├── Images
│ ├── BadgeLogo.scale-100.png
│ ├── BadgeLogo.scale-125.png
│ ├── BadgeLogo.scale-150.png
│ ├── BadgeLogo.scale-200.png
│ ├── BadgeLogo.scale-400.png
│ ├── LargeTile.scale-100.png
│ ├── LargeTile.scale-125.png
│ ├── LargeTile.scale-150.png
│ ├── LargeTile.scale-200.png
│ ├── LargeTile.scale-400.png
│ ├── LockScreenLogo.scale-200.png
│ ├── SmallTile.scale-100.png
│ ├── SmallTile.scale-125.png
│ ├── SmallTile.scale-150.png
│ ├── SmallTile.scale-200.png
│ ├── SmallTile.scale-400.png
│ ├── SplashScreen.scale-100.png
│ ├── SplashScreen.scale-125.png
│ ├── SplashScreen.scale-150.png
│ ├── SplashScreen.scale-200.png
│ ├── SplashScreen.scale-400.png
│ ├── Square150x150Logo.scale-100.png
│ ├── Square150x150Logo.scale-125.png
│ ├── Square150x150Logo.scale-150.png
│ ├── Square150x150Logo.scale-200.png
│ ├── Square150x150Logo.scale-400.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-16.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-24.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-256.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-32.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-48.png
│ ├── Square44x44Logo.altform-unplated_targetsize-16.png
│ ├── Square44x44Logo.altform-unplated_targetsize-256.png
│ ├── Square44x44Logo.altform-unplated_targetsize-32.png
│ ├── Square44x44Logo.altform-unplated_targetsize-48.png
│ ├── Square44x44Logo.scale-100.png
│ ├── Square44x44Logo.scale-125.png
│ ├── Square44x44Logo.scale-150.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Square44x44Logo.scale-400.png
│ ├── Square44x44Logo.targetsize-16.png
│ ├── Square44x44Logo.targetsize-24.png
│ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ ├── Square44x44Logo.targetsize-256.png
│ ├── Square44x44Logo.targetsize-32.png
│ ├── Square44x44Logo.targetsize-48.png
│ ├── StoreLogo.backup.png
│ ├── StoreLogo.scale-100.png
│ ├── StoreLogo.scale-125.png
│ ├── StoreLogo.scale-150.png
│ ├── StoreLogo.scale-200.png
│ ├── StoreLogo.scale-400.png
│ ├── Wide310x150Logo.scale-100.png
│ ├── Wide310x150Logo.scale-125.png
│ ├── Wide310x150Logo.scale-150.png
│ ├── Wide310x150Logo.scale-200.png
│ └── Wide310x150Logo.scale-400.png
│ ├── Package.StoreAssociation.xml
│ └── Package.appxmanifest
└── src
├── CosmosDBStudio.Model
├── CosmosAccount.cs
├── CosmosAccountFolder.cs
├── CosmosContainer.cs
├── CosmosDBStudio.Model.csproj
├── CosmosDatabase.cs
├── CosmosStoredProcedure.cs
├── CosmosTrigger.cs
├── CosmosUserDefinedFunction.cs
├── Helpers
│ └── CosmosHelper.cs
├── ICosmosItem.cs
├── ICosmosScript.cs
├── OperationResult.cs
├── Query.cs
├── QueryResult.cs
├── QuerySheet.cs
├── ScalarValueType.cs
├── Services
│ ├── IAccountContext.cs
│ ├── IAccountContextFactory.cs
│ ├── IAccountDirectory.cs
│ ├── IApplication.cs
│ ├── IClientPool.cs
│ ├── IContainerContext.cs
│ ├── IContainerService.cs
│ ├── IDatabaseContext.cs
│ ├── IDatabaseService.cs
│ ├── IDocumentService.cs
│ ├── IMessenger.cs
│ ├── IQueryPersistenceService.cs
│ ├── IQueryService.cs
│ ├── IRequestOptionsBuilder.cs
│ ├── IScriptService.cs
│ └── Implementation
│ │ ├── AccountContext.cs
│ │ ├── AccountContextFactory.cs
│ │ ├── AccountDirectory.cs
│ │ ├── ClientPool.cs
│ │ ├── ContainerContext.cs
│ │ ├── ContainerService.cs
│ │ ├── DatabaseContext.cs
│ │ ├── DatabaseService.cs
│ │ ├── DocumentService.cs
│ │ ├── ItemRequestOptionsBuilder.cs
│ │ ├── PartitionKeyHelper.cs
│ │ ├── QueryPersistenceService.cs
│ │ ├── QueryRequestOptionsBuilder.cs
│ │ ├── QueryService.cs
│ │ ├── RequestOptionsBuilderBase.cs
│ │ └── ScriptService.cs
├── StoredProcedureResult.cs
└── Workspace.cs
├── CosmosDBStudio.Util
├── CosmosDBStudio.Util.csproj
├── Extensions
│ ├── JTokenExtensions.cs
│ ├── LinkedListExtensions.cs
│ ├── ObservableCollectionExtensions.cs
│ └── ServiceCollectionExtensions.cs
└── Helpers
│ └── JsonHelper.cs
├── CosmosDBStudio.ViewModel
├── AboutViewModel.cs
├── AccountsViewModel.cs
├── CommandViewModel.cs
├── Commands
│ ├── AccountCommands.cs
│ ├── CommandExtensions.cs
│ ├── ContainerCommands.cs
│ ├── DatabaseCommands.cs
│ └── ScriptCommands.cs
├── CosmosDBStudio.ViewModel.csproj
├── Dialogs
│ ├── AccountEditorViewModel.cs
│ ├── ContainerEditorViewModel.cs
│ ├── ContainerPickerViewModel.cs
│ ├── DatabaseEditorViewModel.cs
│ ├── DialogButton.cs
│ ├── DialogClosingEventArgs.cs
│ ├── DialogViewModelBase.cs
│ ├── DocumentEditorViewModel.cs
│ ├── IDialogViewModel.cs
│ └── TextPromptViewModel.cs
├── EditorTabs
│ ├── ParameterViewModelBase.cs
│ ├── ParametersViewModel.cs
│ ├── Queries
│ │ ├── DocumentResultViewModel.cs
│ │ ├── EmptyResultItemPlaceholderViewModel.cs
│ │ ├── ErrorItemPlaceholderViewModel.cs
│ │ ├── NotRunQueryResultViewModel.cs
│ │ ├── QueryParameterViewModel.cs
│ │ ├── QueryResultViewModel.cs
│ │ ├── QueryResultViewModelBase.cs
│ │ └── ResultItemViewModel.cs
│ ├── QuerySheetViewModel.cs
│ ├── ScriptEditorViewModelBase.cs
│ ├── StoredProcedureEditorViewModel.cs
│ ├── StoredProcedureResultViewModel.cs
│ ├── TabViewModelBase.cs
│ ├── TriggerEditorViewModel.cs
│ └── UserDefinedFunctionEditorViewModel.cs
├── ISaveable.cs
├── IViewModelFactory.cs
├── MainWindowViewModel.cs
├── Messages
│ ├── AccountAddedMessage.cs
│ ├── AccountEditedMessage.cs
│ ├── AccountRemovedMessage.cs
│ ├── ContainerCreatedMessage.cs
│ ├── ContainerDeletedMessage.cs
│ ├── DatabaseCreatedMessage.cs
│ ├── DatabaseDeletedMessage.cs
│ ├── ExplorerSelectedContainerChangedMessage.cs
│ ├── NewQuerySheetMessage.cs
│ ├── OpenScriptMessage.cs
│ └── SetStatusBarMessage.cs
├── Services
│ ├── IClipboardService.cs
│ ├── IDialogService.cs
│ ├── IUIDispatcher.cs
│ └── Implementation
│ │ └── Messenger.cs
├── TreeNodes
│ ├── AccountFolderNodeViewModel.cs
│ ├── AccountNodeViewModel.cs
│ ├── ContainerNodeViewModel.cs
│ ├── DatabaseNodeViewModel.cs
│ ├── NonLeafTreeNodeViewModel.cs
│ ├── ScriptFolderNodeViewModel.cs
│ ├── ScriptNodeViewModel.cs
│ ├── StoredProcedureNodeViewModel.cs
│ ├── StoredProceduresFolderNodeViewModel.cs
│ ├── TreeNodeViewModel.cs
│ ├── TriggerNodeViewModel.cs
│ ├── TriggersFolderNodeViewModel.cs
│ ├── UserDefinedFunctionNodeViewModel.cs
│ └── UserDefinedFunctionsFolderNodeViewModel.cs
├── ViewModelFactoryProxy.cs
└── ViewModelValidator.cs
└── CosmosDBStudio
├── App.xaml
├── App.xaml.cs
├── Behaviors
├── AvalonTextEditorBehavior.cs
├── AvalonTextEditorBindingBehavior.cs
├── ErrorBehavior.cs
├── FocusOnLoadBehavior.cs
├── OpenContextMenuBehavior.cs
└── TreeViewSelectedItemBindingBehavior.cs
├── Converters
├── EnumToInt32Converter.cs
├── NotConverter.cs
└── SuppressAccessKeyConverter.cs
├── CosmosDBStudio.csproj
├── DataTemplates.xaml
├── Extensions
├── CommandExtensions.cs
└── UIElementExtensions.cs
├── Images
├── account.png
├── app.ico
├── container.png
├── database.png
├── folder.png
├── hi-res
│ ├── account.png
│ ├── container.png
│ ├── database.png
│ ├── stored-procedure.png
│ ├── trigger.png
│ └── user-defined-function.png
├── logo.png
├── stored-procedure.png
├── trigger.png
└── user-defined-function.png
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Markup
├── BindingProxy.cs
├── EnumValuesExtension.cs
└── SwitchExtension.cs
├── Program.cs
├── Properties
├── AssemblyInfo.cs
├── Resources.Designer.cs
├── Resources.resx
├── Settings.Designer.cs
└── Settings.settings
├── Resources.xaml
├── Resources
└── fa-solid-900.ttf
├── Services
└── Implementation
│ ├── ClipboardService.cs
│ ├── DialogService.cs
│ └── UIDispatcher.cs
├── Styles.xaml
├── SyntaxHighlighting
├── CosmosJS.xshd
├── CosmosSQL.xshd
├── CosmosSyntax.cs
└── JSON.xshd
├── Themes
├── Generic.xaml
├── RadioChoice.generic.xaml
└── TreeNodeControl.generic.xaml
└── View
├── AboutView.xaml
├── AboutView.xaml.cs
├── AccountEditorView.xaml
├── AccountEditorView.xaml.cs
├── AccountsView.xaml
├── AccountsView.xaml.cs
├── ContainerEditorView.xaml
├── ContainerEditorView.xaml.cs
├── ContainerPickerView.xaml
├── ContainerPickerView.xaml.cs
├── Controls
├── AccountExplorerTreeView.cs
├── AccountExplorerTreeViewItem.cs
├── CosmosTabControl.cs
├── RadioChoice.cs
└── TreeNodeControl.cs
├── CosmosTabItem.xaml
├── CosmosTabItem.xaml.cs
├── DatabaseEditorView.xaml
├── DatabaseEditorView.xaml.cs
├── DialogWindow.xaml
├── DialogWindow.xaml.cs
├── DocumentEditorView.xaml
├── DocumentEditorView.xaml.cs
├── QueryParametersView.xaml
├── QueryParametersView.xaml.cs
├── QueryResultsView.xaml
├── QueryResultsView.xaml.cs
├── QuerySheetView.xaml
├── QuerySheetView.xaml.cs
├── StoredProcedureEditorView.xaml
├── StoredProcedureEditorView.xaml.cs
├── StoredProcedureParametersView.xaml
├── StoredProcedureParametersView.xaml.cs
├── StoredProcedureResultView.xaml
├── StoredProcedureResultView.xaml.cs
├── TextPromptView.xaml
├── TextPromptView.xaml.cs
├── TriggerEditorView.xaml
├── TriggerEditorView.xaml.cs
├── UserDefinedFunctionEditorView.xaml
└── UserDefinedFunctionEditorView.xaml.cs
/.gitignore:
--------------------------------------------------------------------------------
1 | bin/
2 | obj/
3 | .vs/
4 | .idea/
5 | _ReSharper.Caches/
6 | *.user
7 |
8 | AppPackages/
9 | BundleArtifacts/
10 |
--------------------------------------------------------------------------------
/CosmosDBStudio.sln.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | True
--------------------------------------------------------------------------------
/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | 10.0
4 | enable
5 |
6 |
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Thomas Levesque
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/assets/attributions.txt:
--------------------------------------------------------------------------------
1 | Compass by Adrien Coquet from the Noun Project (https://thenounproject.com/browse/?i=1941277)
2 | Planet by Markus from the Noun Project (https://thenounproject.com/browse/?i=2145589)
--------------------------------------------------------------------------------
/assets/compass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/assets/compass.png
--------------------------------------------------------------------------------
/assets/cosmosdb-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/assets/cosmosdb-small.png
--------------------------------------------------------------------------------
/assets/cosmosdb.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/assets/cosmosdb.pdn
--------------------------------------------------------------------------------
/assets/cosmosdb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/assets/cosmosdb.png
--------------------------------------------------------------------------------
/assets/planet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/assets/planet.png
--------------------------------------------------------------------------------
/assets/screenshots/CosmosDBStudio-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/assets/screenshots/CosmosDBStudio-screenshot.png
--------------------------------------------------------------------------------
/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "sdk": {
3 | "version": "6.0.100"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-100.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-125.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-150.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-200.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/BadgeLogo.scale-400.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-100.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-125.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-150.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-200.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/LargeTile.scale-400.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-100.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-125.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-150.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-200.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SmallTile.scale-400.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-100.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-125.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-150.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/SplashScreen.scale-400.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-100.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-125.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-150.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square150x150Logo.scale-400.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-unplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-unplated_targetsize-16.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-unplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-unplated_targetsize-256.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-unplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-unplated_targetsize-32.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-unplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.altform-unplated_targetsize-48.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-100.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-125.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-150.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.scale-400.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-16.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-24.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-256.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-32.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Square44x44Logo.targetsize-48.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.backup.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-100.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-125.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-150.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-200.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/StoreLogo.scale-400.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-100.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-125.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-150.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thomaslevesque/CosmosDBStudio/c91b22e7bcff87406ad76f6c5f05b61202905e66/pkg/CosmosDBStudio.Packaging/Images/Wide310x150Logo.scale-400.png
--------------------------------------------------------------------------------
/pkg/CosmosDBStudio.Packaging/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
13 |
14 |
15 | Cosmos DB Studio
16 | Thomas Levesque
17 | Images\StoreLogo.png
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/CosmosAccount.cs:
--------------------------------------------------------------------------------
1 | namespace CosmosDBStudio.Model
2 | {
3 | public class CosmosAccount
4 | {
5 | public string Id { get; set; } = string.Empty;
6 | public string Name { get; set; } = string.Empty;
7 | public string Endpoint { get; set; } = string.Empty;
8 | public string Key { get; set; } = string.Empty;
9 | public bool IsServerless { get; set; }
10 | public string Folder { get; set; } = string.Empty;
11 |
12 | public CosmosAccount Clone()
13 | {
14 | return new CosmosAccount
15 | {
16 | Id = Id,
17 | Name = Name,
18 | Endpoint = Endpoint,
19 | Key = Key,
20 | IsServerless = IsServerless,
21 | Folder = Folder
22 | };
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/CosmosAccountFolder.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 |
3 | namespace CosmosDBStudio.Model
4 | {
5 | public class CosmosAccountFolder
6 | {
7 | public CosmosAccountFolder(string fullPath)
8 | {
9 | FullPath = fullPath;
10 | }
11 |
12 | public string Name => Path.GetFileName(FullPath);
13 | public string FullPath { get; set; }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/CosmosContainer.cs:
--------------------------------------------------------------------------------
1 | namespace CosmosDBStudio.Model
2 | {
3 | public class CosmosContainer : ICosmosItem
4 | {
5 | public string Id { get; set; } = string.Empty;
6 | public string? ETag { get; set; }
7 | public string PartitionKeyPath { get; set; } = string.Empty;
8 | public bool LargePartitionKey { get; set; }
9 | public int? DefaultTTL { get; set; }
10 | }
11 | }
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/CosmosDBStudio.Model.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/CosmosDatabase.cs:
--------------------------------------------------------------------------------
1 | namespace CosmosDBStudio.Model
2 | {
3 | public class CosmosDatabase : ICosmosItem
4 | {
5 | public string Id { get; set; } = string.Empty;
6 | public string? ETag { get; set; }
7 | }
8 | }
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/CosmosStoredProcedure.cs:
--------------------------------------------------------------------------------
1 | namespace CosmosDBStudio.Model
2 | {
3 | public class CosmosStoredProcedure : ICosmosScript
4 | {
5 | public string Id { get; set; } = string.Empty;
6 | public string Body { get; set; } = string.Empty;
7 | public string? ETag { get; set; } = string.Empty;
8 |
9 | public ICosmosScript Clone() => (ICosmosScript)MemberwiseClone();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/CosmosTrigger.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Azure.Cosmos.Scripts;
2 |
3 | namespace CosmosDBStudio.Model
4 | {
5 | public class CosmosTrigger : ICosmosScript
6 | {
7 | public string Id { get; set; } = string.Empty;
8 | public string Body { get; set; } = string.Empty;
9 | public string? ETag { get; set; }
10 | public TriggerOperation Operation { get; set; }
11 | public TriggerType Type { get; set; }
12 |
13 | public ICosmosScript Clone() => (ICosmosScript)MemberwiseClone();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/CosmosUserDefinedFunction.cs:
--------------------------------------------------------------------------------
1 | namespace CosmosDBStudio.Model
2 | {
3 | public class CosmosUserDefinedFunction : ICosmosScript
4 | {
5 | public string Id { get; set; } = string.Empty;
6 | public string Body { get; set; } = string.Empty;
7 | public string? ETag { get; set; } = string.Empty;
8 |
9 | public ICosmosScript Clone() => (ICosmosScript)MemberwiseClone();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/Helpers/CosmosHelper.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 |
3 | namespace CosmosDBStudio.Model.Helpers
4 | {
5 | public static class CosmosHelper
6 | {
7 | private static readonly char[] ForbiddenCharactersInId = @"/\#?".ToCharArray();
8 |
9 | public static string ValidateId(string id, string? idNameInMessage = null)
10 | {
11 | idNameInMessage ??= "id";
12 |
13 | if (string.IsNullOrEmpty(id))
14 | return $"The {idNameInMessage} must be specified";
15 |
16 | if (id.IndexOfAny(ForbiddenCharactersInId) >= 0)
17 | {
18 | return $"The {idNameInMessage} must not contain characters "
19 | + string.Join(" ", ForbiddenCharactersInId.Select(c => $"'{c}'"));
20 | }
21 |
22 | if (id.Trim() != id)
23 | {
24 | return $"The {idNameInMessage} must not start or end with space";
25 | }
26 |
27 | return string.Empty;
28 | }
29 |
30 | public static string? ValidateThroughput(int? throughput) => ValidateThroughput(throughput ?? 0, throughput.HasValue);
31 |
32 | public static string ValidateThroughput(int throughput, bool isThroughputProvisioned)
33 | {
34 | if (isThroughputProvisioned)
35 | {
36 | if (throughput < 400)
37 | return "Throughput cannot be less than 400";
38 | }
39 |
40 | return string.Empty;
41 | }
42 |
43 | public static string ValidateDefaultTTL(int? defaultTTL) => ValidateDefaultTTL(defaultTTL ?? 0, defaultTTL.HasValue);
44 |
45 | public static string ValidateDefaultTTL(int defaultTTL, bool hasDefaultTTL)
46 | {
47 | if (hasDefaultTTL)
48 | {
49 | if (defaultTTL < 1)
50 | return "Default TTL must be at least 1 second";
51 | }
52 |
53 | return string.Empty;
54 | }
55 |
56 | public static string ValidatePartitionKeyPath(string? partitionKeyPath)
57 | {
58 | if (string.IsNullOrEmpty(partitionKeyPath))
59 | return "The partition key must be specified";
60 |
61 | if (partitionKeyPath.Trim() != partitionKeyPath)
62 | return "The partition key must not start or end with space";
63 |
64 | if (!partitionKeyPath.StartsWith('/'))
65 | return "The partition key must start with '/'";
66 |
67 | return string.Empty;
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/ICosmosItem.cs:
--------------------------------------------------------------------------------
1 | namespace CosmosDBStudio.Model
2 | {
3 | public interface ICosmosItem
4 | {
5 | string Id { get; set; }
6 | string? ETag { get; set; }
7 | }
8 | }
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/ICosmosScript.cs:
--------------------------------------------------------------------------------
1 | namespace CosmosDBStudio.Model
2 | {
3 | public interface ICosmosScript : ICosmosItem
4 | {
5 | string Body { get; set; }
6 |
7 | ICosmosScript Clone();
8 | }
9 | }
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/OperationResult.cs:
--------------------------------------------------------------------------------
1 | namespace CosmosDBStudio.Model
2 | {
3 | public enum OperationResult
4 | {
5 | Success,
6 | AlreadyExists,
7 | EditConflict,
8 | NotFound,
9 | Forbidden
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/CosmosDBStudio.Model/Query.cs:
--------------------------------------------------------------------------------
1 | using Hamlet;
2 | using System.Collections.Generic;
3 |
4 | namespace CosmosDBStudio.Model
5 | {
6 | public class Query
7 | {
8 | public Query(string sql)
9 | {
10 | Sql = sql;
11 | Parameters = new Dictionary();
12 | }
13 |
14 | public string Sql { get; set; }
15 | public Option