├── .gitignore ├── LICENSE ├── README.md ├── azure-pipelines.yml ├── demo ├── BlazorFormsDemoBlazorApp │ ├── App.razor │ ├── BlazorFormsDemoBlazorApp.csproj │ ├── Data │ │ ├── WeatherForecast.cs │ │ └── WeatherForecastService.cs │ ├── Pages │ │ ├── Counter.razor │ │ ├── DashboardDemo.razor │ │ ├── DemoCustomForm.razor │ │ ├── DemoCustomFormTyped.razor │ │ ├── DemoFieldSet.razor │ │ ├── DemoFormV2.razor │ │ ├── DemoLayoutForm.razor │ │ ├── EditFormMudUI.razor │ │ ├── Error.cshtml │ │ ├── Error.cshtml.cs │ │ ├── FetchData.razor │ │ ├── Index.razor │ │ ├── ListMudUI.razor │ │ ├── ListV2.razor │ │ ├── ListV2Exception.razor │ │ ├── StartFlowFormV2Generic.razor │ │ ├── _Host.cshtml │ │ └── _Layout.cshtml │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Shared │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ ├── NavMenu.razor.css │ │ └── SurveyPrompt.razor │ ├── Widgets │ │ ├── ImageWidget.razor │ │ └── TableDataWidget.razor │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ ├── css │ │ ├── bootstrap │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ └── site.css │ │ ├── favicon.ico │ │ └── img │ │ └── 20191005-BMNT-104.jpg ├── BlazorFormsDemoFastDesignApp │ ├── App.razor │ ├── BlazorFormsDemoFastDesignApp.csproj │ ├── Data │ │ ├── WeatherForecast.cs │ │ └── WeatherForecastService.cs │ ├── Pages │ │ ├── Counter.razor │ │ ├── DemoCustomForm.razor │ │ ├── DemoCustomFormTyped.razor │ │ ├── DemoFormV2.razor │ │ ├── Error.cshtml │ │ ├── Error.cshtml.cs │ │ ├── FetchData.razor │ │ ├── Index.razor │ │ ├── StartFlowFormGeneric.razor │ │ ├── _Host.cshtml │ │ └── _Layout.cshtml │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Shared │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ ├── NavMenu.razor.css │ │ └── SurveyPrompt.razor │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ ├── css │ │ ├── bootstrap │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ └── site.css │ │ └── favicon.ico ├── BlazorFormsDemoFlows │ ├── BlazorFormsDemoFlows.csproj │ ├── Flows │ │ ├── ArtelProjectSettingsFlow.cs │ │ ├── DocumentFlow.cs │ │ ├── FluentArtelProjectSettings.cs │ │ ├── FormArtelProjectSettings.cs │ │ ├── NavigationFlow1.cs │ │ ├── SampleEditFlowWithException.cs │ │ ├── SampleListEditFlow.cs │ │ ├── SampleListFlow.cs │ │ ├── SampleListFlowWithException.cs │ │ └── SampleSilentFlow.cs │ ├── Forms │ │ ├── FieldSetSampleForm1.cs │ │ ├── FieldSetSampleForm1.json │ │ └── FluentFormGroupedArtelProjectSettings.cs │ └── Mocks │ │ ├── MockFlowRepository.cs │ │ └── MockTenantedScope.cs ├── BlazorFormsDemoModels │ ├── BlazorFormsDemoModels.csproj │ ├── Class1.cs │ └── Models │ │ ├── ArtelProjectDetails.cs │ │ ├── ArtelProjectSettingsModel.cs │ │ ├── ArtelProjectStatistics.cs │ │ ├── ArtelRoleDetails.cs │ │ ├── FrequencyTypeDetails.cs │ │ ├── NavigationModel1.cs │ │ └── SampleModel1.cs ├── BlazorFormsDemoRadzenApp │ ├── App.razor │ ├── BlazorFormsDemoRadzenApp.csproj │ ├── Pages │ │ ├── CustomStartFlowForm.razor │ │ ├── DemoCustomForm.razor │ │ ├── DemoCustomFormTyped.razor │ │ ├── DemoForm.razor │ │ ├── Error.cshtml │ │ ├── Error.cshtml.cs │ │ ├── Index.razor │ │ ├── List.razor │ │ ├── StartFlowFormGeneric.razor │ │ ├── _Host.cshtml │ │ └── _Layout.cshtml │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Shared │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ ├── NavMenu.razor.css │ │ └── SurveyPrompt.razor │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ ├── css │ │ ├── bootstrap │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ └── site.css │ │ └── favicon.ico ├── BlazorFormsDemoWasmNew │ ├── Client │ │ ├── App.razor │ │ ├── BlazorFormsDemoWasmNew.Client.csproj │ │ ├── Flows │ │ │ ├── InlineNavigationFlow1.cs │ │ │ └── InlineNavigationFlow2.cs │ │ ├── Pages │ │ │ ├── Counter.razor │ │ │ ├── Counter2.razor │ │ │ ├── FetchData.razor │ │ │ ├── Index.razor │ │ │ ├── InlineNavigation │ │ │ │ ├── InlineForm1.razor │ │ │ │ ├── InlineForm2.razor │ │ │ │ ├── InlineForm3.razor │ │ │ │ └── InlineNavigationStart.razor │ │ │ ├── List.razor │ │ │ ├── ListItemView.razor │ │ │ ├── NavigationForm1.razor │ │ │ ├── NavigationForm2.razor │ │ │ ├── NavigationForm3.razor │ │ │ ├── NavigationFormBase.razor │ │ │ ├── NavigationStart.razor │ │ │ └── StartFlowFormGeneric.razor │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Shared │ │ │ ├── MainLayout.razor │ │ │ ├── MainLayout.razor.css │ │ │ ├── NavMenu.razor │ │ │ ├── NavMenu.razor.css │ │ │ └── SurveyPrompt.razor │ │ ├── _Imports.razor │ │ └── wwwroot │ │ │ ├── css │ │ │ ├── app.css │ │ │ ├── bootstrap │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── bootstrap.min.css.map │ │ │ └── open-iconic │ │ │ │ ├── FONT-LICENSE │ │ │ │ ├── ICON-LICENSE │ │ │ │ ├── README.md │ │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ │ ├── favicon.ico │ │ │ ├── icon-192.png │ │ │ └── index.html │ ├── Server │ │ ├── BlazorFormsDemoWasmNew.Server.csproj │ │ ├── Controllers │ │ │ └── WeatherForecastController.cs │ │ ├── Pages │ │ │ ├── Error.cshtml │ │ │ └── Error.cshtml.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── SampleFlows │ │ │ ├── SampleFlow1.cs │ │ │ ├── SampleListEditFlow.cs │ │ │ ├── SampleListFlow.cs │ │ │ ├── SampleSilentFlow.cs │ │ │ └── SampleSilentFlowFluentForm.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ └── Shared │ │ ├── BlazorFormsDemoWasmNew.Shared.csproj │ │ ├── SampleModel1.cs │ │ └── WeatherForecast.cs ├── BlazorFormsStateFlowDemoApp │ ├── App.razor │ ├── BlazorFormsStateFlowDemoApp.csproj │ ├── BusinessObjects │ │ ├── DocumentApi.cs │ │ ├── DocumentFlow.cs │ │ ├── DocumentFlowBase.cs │ │ ├── DocumentModel.cs │ │ ├── DocumentViewModel.cs │ │ ├── ServiceCollectionExtensions.cs │ │ └── WorkingDaysCustomTransitionTrigger.cs │ ├── Components │ │ └── TransactionTable.razor │ ├── Pages │ │ ├── Error.cshtml │ │ ├── Error.cshtml.cs │ │ ├── Index.razor │ │ ├── _Host.cshtml │ │ └── _Layout.cshtml │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Shared │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ └── NavMenu.razor.css │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ ├── css │ │ ├── bootstrap │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ └── site.css │ │ └── favicon.ico ├── BlazorFormsStateFlowDemoAppNuget │ ├── App.razor │ ├── BlazorFormsStateFlowDemoAppNuget.csproj │ ├── Components │ │ └── TransactionTable.razor │ ├── FodyWeavers.xml │ ├── FodyWeavers.xsd │ ├── Pages │ │ ├── Error.cshtml │ │ ├── Error.cshtml.cs │ │ ├── Index.razor │ │ ├── _Host.cshtml │ │ └── _Layout.cshtml │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Shared │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ └── NavMenu.razor.css │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ ├── css │ │ ├── bootstrap │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ └── site.css │ │ └── favicon.ico ├── MudBlazorUIDemo │ ├── App.razor │ ├── Flows │ │ ├── Customer │ │ │ ├── CustomerEditFlow.cs │ │ │ ├── CustomerFlowModel.cs │ │ │ ├── CustomerListFlow.cs │ │ │ ├── CustomerService.cs │ │ │ ├── ICustomerService.cs │ │ │ ├── MockCustomerDataGenerator.cs │ │ │ └── RegisterServices.cs │ │ ├── RandomNameHelper.cs │ │ ├── SampleEditFlow.cs │ │ ├── SampleListLargeEditFlow.cs │ │ ├── SampleListLargeFlow.cs │ │ └── SampleStateFlow.cs │ ├── MudBlazorUIDemo.csproj │ ├── Pages │ │ ├── BoardMudUI.razor │ │ ├── Customer │ │ │ ├── CustomerEdit.razor │ │ │ ├── CustomerEdit.razor~Added CustomerFlow demos │ │ │ ├── CustomerEdit.razor~refs │ │ │ │ └── remotes │ │ │ │ │ └── origin │ │ │ │ │ └── main │ │ │ ├── CustomerList.razor │ │ │ ├── CustomerList.razor~Added CustomerFlow demos │ │ │ └── CustomerList.razor~refs │ │ │ │ └── remotes │ │ │ │ └── origin │ │ │ │ └── main │ │ ├── EditFormMudUI.razor │ │ ├── Error.cshtml │ │ ├── Error.cshtml.cs │ │ ├── Index.razor │ │ ├── ListLarge.razor │ │ ├── ListMudUI.razor │ │ ├── SampleEditForm.razor │ │ ├── ToolBar.razor │ │ └── _Host.cshtml │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Shared │ │ ├── AppBar.razor │ │ ├── AppBar.razor.cs │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ ├── NavMenu.razor.css │ │ └── SurveyPrompt.razor │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ ├── assets │ │ └── blackAsset-2@4x.png │ │ ├── css │ │ ├── bootstrap │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ └── site.css │ │ └── favicon.png └── StateFlow │ └── DemoStateFlowObjects │ ├── BusinessObjects │ ├── DocumentApi.cs │ ├── DocumentFlow.cs │ ├── DocumentFlowBase.cs │ ├── DocumentModel.cs │ ├── DocumentViewModel.cs │ ├── ServiceCollectionExtensions.cs │ └── WorkingDaysCustomTransitionTrigger.cs │ ├── Component1.razor │ ├── Component1.razor.css │ ├── Components │ └── TransactionTable.razor │ ├── DemoStateFlowObjects.csproj │ ├── ExampleJsInterop.cs │ ├── _Imports.razor │ └── wwwroot │ ├── background.png │ └── exampleJsInterop.js ├── seed ├── BlazorFormsSandpit │ ├── App.razor │ ├── BlazorFormsSandpit.csproj │ ├── BlazorFormsSandpit.sln │ ├── Flows │ │ └── SampleFlow.cs │ ├── Pages │ │ ├── Index.razor │ │ ├── Sample.razor │ │ └── _Host.cshtml │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Shared │ │ ├── AppBar.razor │ │ ├── AppBar.razor.cs │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ └── NavMenu.razor.css │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ ├── assets │ │ └── blackAsset-2@4x.png │ │ ├── css │ │ ├── bootstrap │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ └── site.css │ │ └── favicon.png ├── BlazorFormsSeed │ ├── App.razor │ ├── BlazorFormsSeed.csproj │ ├── BlazorFormsSeed.sln │ ├── Flows │ │ └── SampleFlow.cs │ ├── Pages │ │ ├── Index.razor │ │ ├── Sample.razor │ │ └── _Host.cshtml │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Shared │ │ ├── AppBar.razor │ │ ├── AppBar.razor.cs │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ └── NavMenu.razor.css │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ ├── assets │ │ └── blackAsset-2@4x.png │ │ ├── css │ │ ├── bootstrap │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ └── site.css │ │ └── favicon.png ├── CrmLightDemoApp.Store │ ├── .dockerignore │ ├── .idea │ │ └── .idea.CrmLightDemoApp │ │ │ └── .idea │ │ │ ├── .gitignore │ │ │ ├── encodings.xml │ │ │ ├── indexLayout.xml │ │ │ └── vcs.xml │ ├── App.razor │ ├── AzureExtensions.cs │ ├── Components │ │ ├── Home.razor │ │ └── UserAccount.razor │ ├── ConfigurationBuilder.cs │ ├── CrmLightDemoApp.Store.csproj │ ├── Dockerfile │ ├── GlobalSettings.cs │ ├── Onion │ │ ├── OnionServiceCollectionExtensions.cs │ │ └── Services │ │ │ ├── Abstractions │ │ │ ├── IAppAuthState.cs │ │ │ ├── IBoardService.cs │ │ │ ├── INotificationService.cs │ │ │ └── IUserService.cs │ │ │ ├── Flow │ │ │ ├── Admin │ │ │ │ ├── TenantAccountEditFlow.cs │ │ │ │ ├── UserEditFlow.cs │ │ │ │ └── UserListFlow.cs │ │ │ ├── ClientCompanyEditFlow.cs │ │ │ ├── ClientCompanyListFlow.cs │ │ │ ├── CompanyEditFlow.cs │ │ │ ├── CompanyListFlow.cs │ │ │ ├── LeadBoard │ │ │ │ ├── CardHistoryRuleHelper.cs │ │ │ │ ├── CompanyDialogFlow.cs │ │ │ │ ├── FormCardCommit.cs │ │ │ │ ├── FormContactedCardEdit.cs │ │ │ │ ├── FormLeadCardEdit.cs │ │ │ │ ├── LeadBoardStateFlow.cs │ │ │ │ └── PersonDialogFlow.cs │ │ │ ├── PersonCompanyLinkTypeEditFlow.cs │ │ │ ├── PersonEditFlow.cs │ │ │ ├── PersonListFlow.cs │ │ │ ├── Resolution │ │ │ │ └── ResolutionFlow.cs │ │ │ └── StaticTypeEditFlow.cs │ │ │ ├── MockAppAuthState.cs │ │ │ ├── Model │ │ │ ├── CardHistoryModel.cs │ │ │ ├── ClientCompanyListModel.cs │ │ │ ├── ClientCompanyModel.cs │ │ │ ├── CompanyListModel.cs │ │ │ ├── CompanyModel.cs │ │ │ ├── LeadBoardCardModel.cs │ │ │ ├── LeadSourceTypeModel.cs │ │ │ ├── PersonCompanyLinkModel.cs │ │ │ ├── PersonCompanyLinkTypeModel.cs │ │ │ ├── PersonListModel.cs │ │ │ ├── PersonModel.cs │ │ │ ├── ResolutionModel.cs │ │ │ ├── RoleModel.cs │ │ │ ├── StaticDataModel.cs │ │ │ ├── TenantAccountModel.cs │ │ │ ├── UserListModel.cs │ │ │ ├── UserModel.cs │ │ │ └── UserRoleLinkModel.cs │ │ │ ├── NotificationService.cs │ │ │ └── UserService.cs │ ├── Pages │ │ ├── ClientCompanyEdit.razor │ │ ├── ClientCompanyList.razor │ │ ├── CompanyEdit.razor │ │ ├── CompanyList.razor │ │ ├── Error.cshtml │ │ ├── Error.cshtml.cs │ │ ├── Index.razor │ │ ├── LeadBoard.razor │ │ ├── PersonCompanyListType.razor │ │ ├── PersonEdit.razor │ │ ├── PersonList.razor │ │ ├── RegisteredFlows.razor │ │ ├── RegisteredFlowsView.razor │ │ ├── StaticTypeEdit.razor │ │ ├── StaticTypeEditInternal.razor │ │ ├── TenantSettings.razor │ │ ├── UserEdit.razor │ │ ├── UserList.razor │ │ └── _Host.cshtml │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Shared │ │ ├── AppBar.razor │ │ ├── AppBar.razor.cs │ │ ├── MainLayout.razor │ │ ├── MainLayout.razor.css │ │ ├── NavMenu.razor │ │ ├── NavMenu.razor.css │ │ └── SurveyPrompt.razor │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── cicd │ │ ├── azure-pipelines.yml │ │ ├── bicep │ │ │ ├── app-environment.bicep │ │ │ ├── app-with-store.bicep │ │ │ ├── app.bicep │ │ │ ├── key-vault.bicep │ │ │ ├── law.bicep │ │ │ ├── my-environment.bicep │ │ │ ├── service-identity.bicep │ │ │ ├── storage-access.bicep │ │ │ └── storage.bicep │ │ ├── config-Production.json │ │ ├── main.bicep │ │ └── yml │ │ │ ├── build.yml │ │ │ ├── deploy.yml │ │ │ └── variables.yml │ └── wwwroot │ │ ├── assets │ │ └── blackAsset-2@4x.png │ │ ├── css │ │ ├── bootstrap │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ ├── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ │ ├── css │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ └── fonts │ │ │ │ ├── open-iconic.eot │ │ │ │ ├── open-iconic.otf │ │ │ │ ├── open-iconic.svg │ │ │ │ ├── open-iconic.ttf │ │ │ │ └── open-iconic.woff │ │ └── site.css │ │ └── favicon.png └── CrmLightDemoApp │ ├── .dockerignore │ ├── .idea │ └── .idea.CrmLightDemoApp │ │ └── .idea │ │ ├── .gitignore │ │ ├── encodings.xml │ │ ├── indexLayout.xml │ │ └── vcs.xml │ ├── App.razor │ ├── AzureExtensions.cs │ ├── Components │ ├── Home.razor │ └── UserAccount.razor │ ├── ConfigurationBuilder.cs │ ├── CrmLightDemoApp.csproj │ ├── CrmLightDemoApp.sln │ ├── Dockerfile │ ├── GlobalSettings.cs │ ├── Onion │ ├── Domain │ │ ├── BoardCardHistoryDetails.cs │ │ ├── ClientCompanyDetails.cs │ │ ├── Entities │ │ │ ├── Board.cs │ │ │ ├── BoardCard.cs │ │ │ ├── BoardCardHistory.cs │ │ │ ├── ClientCompany.cs │ │ │ ├── Company.cs │ │ │ ├── IEntity.cs │ │ │ ├── LeadSourceType.cs │ │ │ ├── Person.cs │ │ │ ├── PersonCompanyLink.cs │ │ │ ├── PersonCompanyLinkType.cs │ │ │ ├── Role.cs │ │ │ ├── TenantAccount.cs │ │ │ ├── User.cs │ │ │ └── UserRoleLink.cs │ │ ├── PersonCompanyLinkDetails.cs │ │ ├── Repositories │ │ │ ├── ContextQuery.cs │ │ │ ├── IBoardCardHistoryRepository.cs │ │ │ ├── IBoardCardRepository.cs │ │ │ ├── IClientCompanyRepository.cs │ │ │ ├── ICompanyRepository.cs │ │ │ ├── IPersonCompanyLinkTypeRepository.cs │ │ │ ├── IPersonCompanyRepository.cs │ │ │ ├── IPersonRepository.cs │ │ │ ├── IRepository.cs │ │ │ ├── IRoleRepository.cs │ │ │ ├── ITenantAccountRepository.cs │ │ │ ├── IUserRepository.cs │ │ │ └── IUserRoleLinkRepository.cs │ │ ├── TenantAccountDetails.cs │ │ └── UserDetails.cs │ ├── Infrastructure │ │ ├── BoardCardHistoryRepository.cs │ │ ├── BoardCardRepository.cs │ │ ├── ClientCompanyRepository.cs │ │ ├── CompanyRepository.cs │ │ ├── LeadSourceTypeRepository.cs │ │ ├── LocalCacheRepository.cs │ │ ├── PersonCompanyLinkRepository.cs │ │ ├── PersonCompanyLinkTypeRepository.cs │ │ ├── PersonRepository.cs │ │ ├── RepositoryBase.cs │ │ ├── RoleRepository.cs │ │ ├── TenantAccountRepository.cs │ │ ├── UserRepository.cs │ │ └── UserRoleLinkRepository.cs │ ├── OnionServiceCollectionExtensions.cs │ └── Services │ │ ├── Abstractions │ │ ├── IAppAuthState.cs │ │ ├── IBoardService.cs │ │ ├── INotificationService.cs │ │ └── IUserService.cs │ │ ├── BoardService.cs │ │ ├── Flow │ │ ├── Admin │ │ │ ├── TenantAccountEditFlow.cs │ │ │ ├── UserEditFlow.cs │ │ │ └── UserListFlow.cs │ │ ├── ClientCompanyEditFlow.cs │ │ ├── ClientCompanyListFlow.cs │ │ ├── CompanyEditFlow.cs │ │ ├── CompanyListFlow.cs │ │ ├── LeadBoard │ │ │ ├── CardHistoryRuleHelper.cs │ │ │ ├── CompanyDialogFlow.cs │ │ │ ├── FormCardCommit.cs │ │ │ ├── FormContactedCardEdit.cs │ │ │ ├── FormLeadCardEdit.cs │ │ │ ├── LeadBoardStateFlow.cs │ │ │ └── PersonDialogFlow.cs │ │ ├── PersonCompanyLinkTypeEditFlow.cs │ │ ├── PersonEditFlow.cs │ │ ├── PersonListFlow.cs │ │ ├── Resolution │ │ │ └── ResolutionFlow.cs │ │ └── StaticTypeEditFlow.cs │ │ ├── MockAppAuthState.cs │ │ ├── Model │ │ ├── ClientCompanyListModel.cs │ │ ├── ClientCompanyModel.cs │ │ ├── CompanyListModel.cs │ │ ├── CompanyModel.cs │ │ ├── LeadBoardCardModel.cs │ │ ├── PersonCompanyLinkDetailsModel.cs │ │ ├── PersonCompanyLinkTypeModel.cs │ │ ├── PersonListModel.cs │ │ ├── PersonModel.cs │ │ ├── ResolutionModel.cs │ │ ├── StaticDataModel.cs │ │ ├── TenantAccountModel.cs │ │ ├── UserListModel.cs │ │ ├── UserModel.cs │ │ └── UserRoleLinkModel.cs │ │ ├── NotificationService.cs │ │ └── UserService.cs │ ├── Pages │ ├── ClientCompanyEdit.razor │ ├── ClientCompanyList.razor │ ├── CompanyEdit.razor │ ├── CompanyList.razor │ ├── Error.cshtml │ ├── Error.cshtml.cs │ ├── Index.razor │ ├── LeadBoard.razor │ ├── PersonCompanyListType.razor │ ├── PersonEdit.razor │ ├── PersonList.razor │ ├── RegisteredFlows.razor │ ├── RegisteredFlowsView.razor │ ├── StaticTypeEdit.razor │ ├── StaticTypeEditInternal.razor │ ├── TenantSettings.razor │ ├── UserEdit.razor │ ├── UserList.razor │ └── _Host.cshtml │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Shared │ ├── AppBar.razor │ ├── AppBar.razor.cs │ ├── MainLayout.razor │ ├── MainLayout.razor.css │ ├── NavMenu.razor │ ├── NavMenu.razor.css │ └── SurveyPrompt.razor │ ├── _Imports.razor │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── cicd │ ├── azure-pipelines.yml │ ├── bicep │ │ ├── app-environment.bicep │ │ ├── app-with-store.bicep │ │ ├── app.bicep │ │ ├── key-vault.bicep │ │ ├── law.bicep │ │ ├── my-environment.bicep │ │ ├── service-identity.bicep │ │ ├── storage-access.bicep │ │ └── storage.bicep │ ├── config-Production.json │ ├── main.bicep │ └── yml │ │ ├── build.yml │ │ ├── deploy.yml │ │ └── variables.yml │ └── wwwroot │ ├── assets │ └── blackAsset-2@4x.png │ ├── css │ ├── bootstrap │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ ├── open-iconic │ │ ├── FONT-LICENSE │ │ ├── ICON-LICENSE │ │ ├── README.md │ │ └── font │ │ │ ├── css │ │ │ └── open-iconic-bootstrap.min.css │ │ │ └── fonts │ │ │ ├── open-iconic.eot │ │ │ ├── open-iconic.otf │ │ │ ├── open-iconic.svg │ │ │ ├── open-iconic.ttf │ │ │ └── open-iconic.woff │ └── site.css │ └── favicon.png ├── src ├── .idea │ └── .idea.BlazorForms.Framework │ │ └── .idea │ │ ├── .gitignore │ │ ├── .name │ │ ├── encodings.xml │ │ ├── indexLayout.xml │ │ ├── riderPublish.xml │ │ └── vcs.xml ├── BlazorForms.Framework.sln ├── admin │ ├── BlazorForms.Admin.App │ │ ├── App.razor │ │ ├── BlazorForms.Admin.App.csproj │ │ ├── Pages │ │ │ ├── Error.cshtml │ │ │ ├── Error.cshtml.cs │ │ │ ├── Index.razor │ │ │ ├── RegisteredFlows.razor │ │ │ ├── RegisteredFlowsItemView.razor │ │ │ ├── StoredFlows.razor │ │ │ ├── _Host.cshtml │ │ │ └── _Layout.cshtml │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Shared │ │ │ ├── MainLayout.razor │ │ │ ├── MainLayout.razor.css │ │ │ ├── NavMenu.razor │ │ │ ├── NavMenu.razor.css │ │ │ └── SurveyPrompt.razor │ │ ├── _Imports.razor │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot │ │ │ ├── css │ │ │ ├── bootstrap │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── bootstrap.min.css.map │ │ │ ├── open-iconic │ │ │ │ ├── FONT-LICENSE │ │ │ │ ├── ICON-LICENSE │ │ │ │ ├── README.md │ │ │ │ └── font │ │ │ │ │ ├── css │ │ │ │ │ └── open-iconic-bootstrap.min.css │ │ │ │ │ └── fonts │ │ │ │ │ ├── open-iconic.eot │ │ │ │ │ ├── open-iconic.otf │ │ │ │ │ ├── open-iconic.svg │ │ │ │ │ ├── open-iconic.ttf │ │ │ │ │ └── open-iconic.woff │ │ │ └── site.css │ │ │ └── favicon.ico │ └── BlazorForms.Admin.BusinessObjects │ │ ├── AdminBusinessObjectsServiceCollectionExtensions.cs │ │ ├── BlazorForms.Admin.BusinessObjects.csproj │ │ ├── Class1.cs │ │ ├── Interfaces │ │ └── IFlowDataProvider.cs │ │ ├── Model │ │ ├── FlowDataOptions.cs │ │ └── FlowDetailsModel.cs │ │ ├── Providers │ │ └── FlowDataProvider.cs │ │ ├── RegisteredFlows │ │ ├── RegisteredListFlow.cs │ │ └── RegisteredListItemViewFlow.cs │ │ └── StorageFlows │ │ └── StoredListFlow.cs ├── dynamic-code │ └── BlazorForms.DynamicCode │ │ ├── BlazorForms.DynamicCode.csproj │ │ ├── BlazorFormsDynamicCodeServiceCollectionExtensions.cs │ │ ├── Engine │ │ ├── CollectibleAssemblyLoadContext.cs │ │ ├── DynamicCodeEngine.cs │ │ ├── DynamicCodeValidationEngine.cs │ │ ├── DynamicFlowProvider.cs │ │ └── SqlDynamicFlowRepository.cs │ │ ├── Interfaces │ │ ├── IDynamicCodeEngine.cs │ │ ├── IDynamicCodeValidationEngine.cs │ │ ├── IDynamicCodeValidationRule.cs │ │ ├── IDynamicFlowProvider.cs │ │ └── IDynamicFlowRepository.cs │ │ ├── Model │ │ ├── DynamicCodeContext.cs │ │ ├── DynamicCodeParameters.cs │ │ └── DynamicCodeValidationIssue.cs │ │ └── Validation │ │ └── FlowBaseTypeValidationRule.cs ├── expressions │ └── BlazorForms.Expressions │ │ ├── BlazorForms.Expressions.csproj │ │ └── Sql │ │ ├── SqlExpressionEngine.cs │ │ ├── SqlJsonObjectResolver.cs │ │ └── SqlTokenizer.cs ├── flows │ ├── BlazorForms.Flows.Definitions │ │ ├── Abstractions │ │ │ ├── BindingModelAbstract.cs │ │ │ ├── FlowAbstract.cs │ │ │ └── FlowModelBase.cs │ │ ├── Attributes │ │ │ └── FlowAttributes.cs │ │ ├── Binding │ │ │ ├── FlowParamsBase.cs │ │ │ ├── FlowParamsGeneric.cs │ │ │ ├── ModelBindingFlowReference.cs │ │ │ └── RepeaterParameters.cs │ │ ├── BlazorForms.Flows.Definitions.csproj │ │ ├── Exceptions │ │ │ ├── FlowCreateException.cs │ │ │ ├── FlowFailedException.cs │ │ │ ├── FlowInvalidDependencyException.cs │ │ │ ├── FlowStopException.cs │ │ │ ├── InvalidFlowException.cs │ │ │ └── InvalidStateException.cs │ │ ├── Interfaces │ │ │ ├── IFlow.cs │ │ │ ├── IFlowContext.cs │ │ │ ├── IFlowContextNoModel.cs │ │ │ ├── IFlowForm.cs │ │ │ ├── IFlowModel.cs │ │ │ ├── IFlowModelListItem.cs │ │ │ ├── IFlowParams.cs │ │ │ ├── IFlowParser.cs │ │ │ ├── IFlowRepository.cs │ │ │ ├── IFlowRunEngine.cs │ │ │ ├── IFlowRunIdGenerator.cs │ │ │ ├── IFlowRunStorage.cs │ │ │ ├── IFlowTask.cs │ │ │ ├── IObjectCloner.cs │ │ │ ├── IStateFlow.cs │ │ │ ├── IStateFlowRunEngine.cs │ │ │ ├── ITaskExecutor.cs │ │ │ └── ITenantedScope.cs │ │ ├── InternalVisible.cs │ │ ├── Model │ │ │ ├── ClientKeptContext.cs │ │ │ ├── Entities │ │ │ │ └── FlowEntity.cs │ │ │ ├── FlowConstants.cs │ │ │ ├── FlowContext.cs │ │ │ ├── FlowContextJsonModel.cs │ │ │ ├── FlowContextNoModel.cs │ │ │ ├── FlowDefinitionDetails.cs │ │ │ ├── FlowDetails.cs │ │ │ ├── FlowEvent.cs │ │ │ ├── FlowRunParameters.cs │ │ │ ├── FlowSettings.cs │ │ │ ├── FlowTaskDetails.cs │ │ │ ├── FormTaskStateEnum.cs │ │ │ ├── StateFlows │ │ │ │ ├── FormDef.cs │ │ │ │ ├── StateDef.cs │ │ │ │ ├── StateFlowObject.cs │ │ │ │ ├── StateFlowTransitionSelector.cs │ │ │ │ ├── TransitionDef.cs │ │ │ │ └── Triggers │ │ │ │ │ ├── ButtonTransitionTrigger.cs │ │ │ │ │ ├── ConditionTransitionTrigger.cs │ │ │ │ │ ├── DateSpan.cs │ │ │ │ │ ├── SpanFromChangeTransitionTrigger.cs │ │ │ │ │ ├── SpanTransitionTrigger.cs │ │ │ │ │ ├── TransitionTrigger.cs │ │ │ │ │ └── UserActionTransitionTrigger.cs │ │ │ ├── TaskExecutionFlowStateEnum.cs │ │ │ ├── TaskExecutionResult.cs │ │ │ ├── TaskExecutionResultStateEnum.cs │ │ │ ├── TaskExecutionValidationResult.cs │ │ │ └── UserViewModelPageResult.cs │ │ ├── Query │ │ │ └── FlowModelsQueryOptions .cs │ │ └── Tasks │ │ │ ├── EntryFormTask.cs │ │ │ ├── NonVisualTask.cs │ │ │ └── ViewWithCallbackTask.cs │ └── BlazorForms.Flows.Engine │ │ ├── Base │ │ └── FlowBase.cs │ │ ├── BlazorForms.Flows.Engine.csproj │ │ ├── FlowParser.cs │ │ ├── FlowRunHelper.cs │ │ ├── Fluent │ │ ├── DialogFlowBase.cs │ │ ├── FluentFlowBase.cs │ │ ├── FluentFlowDefinition.cs │ │ ├── FluentFlowDetails.cs │ │ ├── FluentFlowException.cs │ │ ├── FluentFlowRunEngine.cs │ │ ├── IFluentFlow.cs │ │ ├── IFluentFlowRunEngine.cs │ │ └── ListFlowBase.cs │ │ ├── Persistence │ │ ├── CachedFlowRepository.cs │ │ └── FlowRunStorage.cs │ │ └── StateFlow │ │ ├── FlowContextExtensions.cs │ │ ├── StateFlowBase.cs │ │ ├── StateFlowDefinition.cs │ │ └── StateFlowRunEngine.cs ├── forms │ └── BlazorForms.Forms.Definitions │ │ ├── Attributes │ │ ├── ComponentGroupAttribute.cs │ │ ├── DisplayAttribute.cs │ │ ├── FormAttribute.cs │ │ └── FormComponentAttribute.cs │ │ ├── BaseComponents │ │ ├── Autocomplete.cs │ │ ├── Button.cs │ │ ├── Checkbox.cs │ │ ├── CustomComponent.cs │ │ ├── DateEdit.cs │ │ ├── DatePicker.cs │ │ ├── DropDown.cs │ │ ├── DropDownSearch.cs │ │ ├── FileUpload.cs │ │ ├── FormComponentBase.cs │ │ ├── Header.cs │ │ ├── Label.cs │ │ ├── MoneyEdit.cs │ │ ├── PercentEdit.cs │ │ ├── Repeater.cs │ │ ├── SelectableList.cs │ │ ├── Subtitle.cs │ │ ├── Table.cs │ │ ├── TextArea.cs │ │ ├── TextEdit.cs │ │ └── TextSearchEdit.cs │ │ ├── BlazorForms.Forms.Definitions.csproj │ │ ├── FluentForms │ │ ├── Controls │ │ │ ├── DefaultCheckboxControl.cs │ │ │ ├── DefaultDateEditControl.cs │ │ │ ├── DefaultDropdownControl.cs │ │ │ ├── DefaultDropdownReadonlyControl.cs │ │ │ ├── DefaultFormattedViewControl.cs │ │ │ ├── DefaultNumberEditControl.cs │ │ │ ├── DefaultReadonlyCheckboxControl.cs │ │ │ └── DefaultTextEditControl.cs │ │ ├── FormBuilders │ │ │ ├── FieldBuilder.cs │ │ │ ├── FieldColumnBuilder.cs │ │ │ ├── FormBuilderBase.cs │ │ │ ├── FormCardListTypeBuilder.cs │ │ │ ├── FormEntityTypeBuilder.cs │ │ │ ├── FormListBuilder.cs │ │ │ ├── FormListTypeBuilder.cs │ │ │ ├── FormRepeaterTypeBuilder.cs │ │ │ └── RepeaterFieldBuilder.cs │ │ ├── Forms │ │ │ ├── FormEditBase.cs │ │ │ └── FormListBase.cs │ │ ├── Helpers │ │ │ ├── JsonPathExtensions.cs │ │ │ └── TypeExtensions.cs │ │ ├── Interfaces │ │ │ ├── IDataFieldProcessor.cs │ │ │ └── IModelDefinitionForm.cs │ │ ├── Logic │ │ │ └── DefaultDataFieldProcessor.cs │ │ ├── Model │ │ │ ├── ActionRouteLink.cs │ │ │ ├── ButtonActionTypes.cs │ │ │ ├── ConfirmationDetails.cs │ │ │ ├── ControlType.cs │ │ │ ├── DataField.cs │ │ │ ├── DialogButtonDetails.cs │ │ │ ├── Field.cs │ │ │ ├── FieldRule.cs │ │ │ ├── FormAllowAccess.cs │ │ │ └── FormLayout.cs │ │ ├── Validation │ │ │ └── RuleVirtualPropertyValidation.cs │ │ └── rules │ │ │ └── IFormRule.cs │ │ ├── Interfaces │ │ ├── IFormComponent.cs │ │ ├── IFormDefinition.cs │ │ └── IFormDefinitionParser.cs │ │ ├── JsonForms │ │ ├── IStoreObject.cs │ │ ├── JsonFormConverter.cs │ │ └── StoreForm.cs │ │ └── Parser │ │ ├── ContainerDetails.cs │ │ ├── ControlTypeExtensions.cs │ │ ├── FieldControlDetails.cs │ │ ├── FieldSetControlDetails.cs │ │ ├── FormAccessDetails.cs │ │ ├── FormConfirmationDetails.cs │ │ ├── FormDefinitionParser.cs │ │ ├── FormDetails.cs │ │ ├── FormDisplayDetails.cs │ │ └── FormFlowRuleDetails.cs ├── platform │ ├── BlazorForms.Platform.BackgroundService │ │ ├── BlazorForms.Platform.BackgroundTasks.csproj │ │ ├── HostedService │ │ │ ├── BackgroundTaskQueue.cs │ │ │ ├── BlazorFormsHostedServiceCollectionExtensions.cs │ │ │ ├── HostedFeaturesToggle.cs │ │ │ └── QueuedHostedService.cs │ │ └── Interfaces │ │ │ └── IBackgroundTaskQueue.cs │ ├── BlazorForms.Platform.Config │ │ ├── BlazorForms.Platform.Config.csproj │ │ └── FeatureToggle │ │ │ ├── DefaultFeatureToggle.cs │ │ │ └── EnvironmentFeatureToggle.cs │ ├── BlazorForms.Platform.Core.Examples │ │ ├── BlazorForms.Platform.Core.Examples.csproj │ │ ├── BlazorFormsExamplesServiceCollectionExtensions.cs │ │ ├── Flows │ │ │ └── SampleFlow1.cs │ │ ├── Rendering │ │ │ ├── ExampleCustom.cs │ │ │ └── ExampleCustomComponent.razor │ │ └── wwwroot │ │ │ ├── background.png │ │ │ ├── exampleJsInterop.js │ │ │ └── styles.css │ ├── BlazorForms.Platform.Cosmos │ │ ├── BlazorForms.Platform.Cosmos.csproj │ │ ├── BlazorFormsCosmosServiceCollectionExtensions.cs │ │ ├── Configuration │ │ │ └── CosmosDbOptions.cs │ │ ├── CosmosFlowRepository.cs │ │ └── Nuspec │ │ │ ├── BlazorForms.Cosmos.nuspec │ │ │ ├── contentFiles │ │ │ └── any │ │ │ │ └── any │ │ │ │ └── Platz.Cosmos.Link │ │ │ │ ├── appsettings.cosmos.json │ │ │ │ └── readme.txt │ │ │ └── readme.txt │ ├── BlazorForms.Platform.Definitions │ │ ├── BlazorForms.Platform.Definitions.csproj │ │ ├── IApplicationPart.cs │ │ ├── IAuthState.cs │ │ ├── IFlowRunProvider.cs │ │ ├── IReflectionProvider.cs │ │ ├── IUserViewDataResolver.cs │ │ ├── Model │ │ │ ├── ErrorModel.cs │ │ │ ├── FieldDisplayDetails.cs │ │ │ ├── FlowRunUserViewDetails.cs │ │ │ ├── RuleExecutionRequest.cs │ │ │ ├── SelectableListItem.cs │ │ │ └── UserViewModel.cs │ │ ├── Shared │ │ │ ├── PlatformConstants.cs │ │ │ ├── ReflectionProvider.cs │ │ │ ├── RegistrationContext.cs │ │ │ ├── TimeZoneFormats.cs │ │ │ ├── UserViewDataResolver.cs │ │ │ └── UserViewDataResolverJsonPath.cs │ │ └── Wrappers │ │ │ ├── CheckFormAccessData.cs │ │ │ ├── FlowContextAndModel.cs │ │ │ ├── FlowContextWrapper.cs │ │ │ ├── FlowEntityWrapper.cs │ │ │ ├── FlowModelWrapper.cs │ │ │ ├── JsonModelWrapper.cs │ │ │ ├── ModelAndClientKeptContextRequest.cs │ │ │ ├── ModelAndFieldDisplayDetails.cs │ │ │ ├── ModelAndParametersDataUntyped.cs │ │ │ ├── ModelAndRuleExecutionRequest.cs │ │ │ ├── NullFlowModel.cs │ │ │ ├── QueryOptionsAndParams.cs │ │ │ └── RuleEngineExecutionResultWrapper.cs │ ├── BlazorForms.Platform.PostgreSql │ │ ├── BlazorForms.Platform.PostgreSql.csproj │ │ ├── BlazorFormsPostgresServiceCollectionExtensions.cs │ │ ├── NpgsqlFlowRepository.cs │ │ ├── NpgsqlFlowRunIdGenerator.cs │ │ └── Nuspec │ │ │ ├── BlazorForms.PostgreSql.nuspec │ │ │ ├── contentFiles │ │ │ └── any │ │ │ │ └── any │ │ │ │ ├── Platz.Cosmos.Link │ │ │ │ ├── appsettings.cosmos.json │ │ │ │ └── readme.txt │ │ │ │ └── Platz.PostgreSql.Link │ │ │ │ ├── 01_CreateDatabase.sql │ │ │ │ ├── appsettings.postresql.json │ │ │ │ └── readme.txt │ │ │ └── readme.txt │ ├── BlazorForms.Platform.Shared │ │ ├── ApplicationParts │ │ │ ├── ApplicationPartsManager.cs │ │ │ ├── AutoMapperConfiguration.cs │ │ │ ├── PlatformAssemblyRegistrator.cs │ │ │ └── PlatformProxyScopeConfiguration.cs │ │ ├── Attributes │ │ │ ├── ProxyScopeAttribute.cs │ │ │ └── ResolveTableDataAttribute.cs │ │ ├── BlazorForms.Platform.Shared.csproj │ │ ├── Exceptions │ │ │ ├── AuthStateException.cs │ │ │ └── ConfigurationException.cs │ │ └── Interfaces │ │ │ ├── IAutoMapperConfiguration.cs │ │ │ └── ISqlRepository.cs │ ├── BlazorForms.Platform.WebAssembly │ │ ├── BlazorForms.Platform.WebAssembly.csproj │ │ ├── BlazorFormsWasmServiceCollectionExtensions.cs │ │ ├── MockAuthState.cs │ │ ├── Nuspec │ │ │ ├── BlazorForms.WebAssembly.nuspec │ │ │ └── readme.txt │ │ └── RestFlowRunProvider.cs │ └── BlazorForms.Platform │ │ ├── Api.Controllers │ │ ├── FlowFormsApiController.cs │ │ └── UploadApiController.cs │ │ ├── BlazorForms.Platform.csproj │ │ ├── CodeGeneration │ │ ├── CodeConst.cs │ │ ├── CodeGeneratorFactory.cs │ │ ├── EditFlowGenerator.cs │ │ ├── FormGenerator.cs │ │ ├── IModelCentricCodeGenerator.cs │ │ └── ListFlowGenerator.cs │ │ ├── CustomConfig │ │ ├── CustomConfigProvider.cs │ │ ├── CustomConfigStore.cs │ │ ├── CustomModelConfig1.json │ │ ├── CustomModelDataProvider.cs │ │ ├── Model │ │ │ ├── CustomFormConfig.cs │ │ │ ├── CustomItemStoreConfig.cs │ │ │ └── CustomModelConfig.cs │ │ └── ProjectCustomConfig.json │ │ ├── Flows │ │ └── ErrorEditFlow.cs │ │ ├── Interfaces │ │ └── IUniqueIdGenerator.cs │ │ ├── Nuspec │ │ ├── BlazorForms.Cosmos.nuspec │ │ ├── BlazorForms.Rendering.Flows.nuspec │ │ ├── BlazorForms.Rendering.nuspec │ │ ├── BlazorForms.Shared.nuspec │ │ ├── BlazorForms.nuspec │ │ ├── cmd.bat │ │ ├── cmdTemp.bat │ │ └── contentFiles │ │ │ └── any │ │ │ └── any │ │ │ ├── Georgia.ttf │ │ │ ├── Platz.Config.Link │ │ │ ├── SqlServerScripts.sql │ │ │ ├── appsettings.localdb.json │ │ │ ├── appsettings.mssql.json │ │ │ ├── localdb.cmd │ │ │ └── readme.txt │ │ │ ├── Roboto-Regular.ttf │ │ │ └── Verdana.ttf │ │ ├── ProcessFlow │ │ ├── Dto │ │ │ ├── FormBusinessRulesDto.cs │ │ │ ├── FormDefinitionResponse.cs │ │ │ ├── FormModelResponse.cs │ │ │ └── ModelResponse.cs │ │ ├── FlowRuleCheckerNonVisualTaskDefinition.cs │ │ ├── FlowRunProvider.cs │ │ ├── FlowSingleTaskDefinitionBase.cs │ │ ├── FlowTaskDefinitionBase.cs │ │ ├── Models │ │ │ ├── FieldDetails.cs │ │ │ └── FieldRuleDetails.cs │ │ ├── NonVisualFlowTaskBase.cs │ │ ├── ObjectCloner.cs │ │ ├── SqlFlowRepository.cs │ │ ├── SqlFlowRunIdGenerator.cs │ │ └── UniqueIdGenerator.cs │ │ ├── Settings │ │ ├── BlazorFormsConfiguration.cs │ │ ├── BlazorFormsServerServiceApplicationBuilderExtensions.cs │ │ ├── BlazorFormsServerServiceCollectionExtensions.cs │ │ ├── BlazorFormsServiceCollectionExtensions.cs │ │ ├── PlatformApplicationPart.cs │ │ └── PlatformFeatures.cs │ │ └── Stubs │ │ ├── MockAuthState.cs │ │ └── MockTenantedScope.cs ├── proxy │ └── BlazorForms.Proxyma │ │ ├── BlazorForms.Proxyma.csproj │ │ ├── Engine │ │ ├── ModelProxyFactoryProvider.cs │ │ ├── ProxymaProviderBase.cs │ │ ├── PullPropertyBagInterceptor.cs │ │ ├── PullProxymaProvider.cs │ │ ├── PushPropertyBagInterceptor.cs │ │ └── PushProxymaProvider.cs │ │ ├── Interfaces │ │ ├── IModelProxyInterceptor.cs │ │ ├── IProxyPropertyBagStore.cs │ │ ├── IProxyScopeConfiguration.cs │ │ ├── IProxymaInterceptor.cs │ │ └── IProxymaProvider.cs │ │ └── Model │ │ ├── ProxyPropertyBag.cs │ │ └── ProxyPropertyBagStore.cs ├── rendering │ ├── BlazorForms.Rendering.Flows │ │ ├── BlazorForms.Rendering.Flows.csproj │ │ ├── BlazorFormsFlowDiagram.razor │ │ ├── BlazorFormsFlowDiagram.razor.css │ │ ├── BlazorFormsRenderingFlowsServiceCollectionExtensions.cs │ │ ├── ExampleJsInterop.cs │ │ ├── FlowDiagramViewModel.cs │ │ ├── Georgia.ttf │ │ ├── Roboto-Regular.ttf │ │ ├── Svg │ │ │ ├── ComponentNode.cs │ │ │ ├── Connector.cs │ │ │ ├── Diagram.cs │ │ │ ├── FontFactory.cs │ │ │ ├── ISvgElement.cs │ │ │ ├── Label.cs │ │ │ ├── LabeledNode.cs │ │ │ ├── SvgElement.cs │ │ │ ├── SvgRect.cs │ │ │ ├── Text.cs │ │ │ └── Utils.cs │ │ ├── Verdana.ttf │ │ ├── _Imports.razor │ │ └── wwwroot │ │ │ ├── background.png │ │ │ └── exampleJsInterop.js │ ├── BlazorForms.Rendering.MaterialBlazor │ │ ├── BlazorForms.MaterialBlazor.csproj │ │ ├── BlazorForms.Rendering.MaterialBlazor - Copy.csproj │ │ ├── BlazorForms.Rendering.MaterialBlazor.csproj │ │ ├── BlazorFormsRenderingMatBlazorApplicationPart.cs │ │ ├── BlazorFormsRenderingMatBlazorServiceCollectionExtensions.cs │ │ ├── Component1.razor │ │ ├── Components │ │ │ ├── AutocompleteControl.razor │ │ │ ├── ButtonControl.razor │ │ │ ├── CheckboxEditControl.razor │ │ │ ├── CustomComponent.razor │ │ │ ├── Dashboard.razor │ │ │ ├── Dashboard.razor.css │ │ │ ├── DateEditControl.razor │ │ │ ├── DateEditControl.razor.js │ │ │ ├── DropDownColumnControl.razor │ │ │ ├── DropDownControl.razor │ │ │ ├── DynamicDialogForm.razor │ │ │ ├── DynamicForm.razor │ │ │ ├── DynamicFormTyped.razor │ │ │ ├── DynamicListForm.razor │ │ │ ├── DynamicListFormRowContextMenu.razor │ │ │ ├── FileUploadControl.razor │ │ │ ├── FormContent.razor │ │ │ ├── FormFieldSet.razor │ │ │ ├── FormGroupContent.razor │ │ │ ├── GridControl.razor │ │ │ ├── HeaderControl.razor │ │ │ ├── LayoutForm.razor │ │ │ ├── LayoutForm.razor.css │ │ │ ├── LoginPageButton.razor │ │ │ ├── MatBlazorComponent.razor │ │ │ ├── MatBlazorComponent.razor.js │ │ │ ├── MoneyEditControl.razor │ │ │ ├── PercentEditControl.razor │ │ │ ├── PlugableFieldControl.razor │ │ │ ├── RepeaterControl.razor │ │ │ ├── RowFilterComponent.razor │ │ │ ├── SelectableListControl.razor │ │ │ ├── SimpleControl.razor │ │ │ ├── SubtitleControl.razor │ │ │ ├── TextAreaControl.razor │ │ │ ├── TextEditControl.razor │ │ │ ├── TextSearchEditControl.razor │ │ │ ├── ThemeColorSelector.razor │ │ │ └── ValidatorControl.razor │ │ ├── ContentLoader.cs │ │ ├── ExampleJsInterop.cs │ │ ├── MaterialClientBrowserService.cs │ │ ├── Nuspec │ │ │ ├── BlazorForms.MaterialBlazor.nuspec │ │ │ ├── BlazorForms.Rendering.MaterialBlazor.nuspec │ │ │ ├── cmd-old.bat │ │ │ └── cmd.bat │ │ ├── _Imports.razor │ │ └── wwwroot │ │ │ ├── background.png │ │ │ ├── exampleJsInterop.js │ │ │ ├── styles.css │ │ │ └── timeZone.js │ ├── BlazorForms.Rendering.MudBlazorUI │ │ ├── BlazorForms.Rendering.MudBlazorUI.csproj │ │ ├── Components │ │ │ ├── AutocompleteControl.razor │ │ │ ├── Boards │ │ │ │ ├── BoardDialogForm.razor │ │ │ │ ├── FlowBoard.razor │ │ │ │ └── StateBoard.razor │ │ │ ├── ButtonControl.razor │ │ │ ├── CardControl.razor │ │ │ ├── CardListControl.razor │ │ │ ├── CheckboxEditControl.razor │ │ │ ├── DateEditControl.razor │ │ │ ├── DateEditControl.razor.js │ │ │ ├── DropDownControl.razor │ │ │ ├── DropDownSearchControl.razor │ │ │ ├── EmbeddedDialogForm.razor │ │ │ ├── FileUploadControl.razor │ │ │ ├── FlowDialogForm.razor │ │ │ ├── FlowEditForm.razor │ │ │ ├── FlowEditForm.razor.css │ │ │ ├── FlowListForm.razor │ │ │ ├── FormConfirmationDialog.razor │ │ │ ├── FormContent.razor │ │ │ ├── FormGroupContent.razor │ │ │ ├── Fragments │ │ │ │ └── ToolBarFragment.razor │ │ │ ├── GridControl.razor │ │ │ ├── HeaderControl.razor │ │ │ ├── ListFormRowContextMenu.razor │ │ │ ├── MoneyEditControl.razor │ │ │ ├── PercentEditControl.razor │ │ │ ├── RepeaterControl.razor │ │ │ ├── SelectableListControl.razor │ │ │ ├── SimpleControl.razor │ │ │ ├── SubtitleControl.razor │ │ │ ├── TextAreaControl.razor │ │ │ ├── TextEditControl.razor │ │ │ ├── TextSearchEditControl.razor │ │ │ └── ValidatorControl.razor │ │ ├── ExampleJsInterop.cs │ │ ├── Logic │ │ │ ├── BoardFormOptions.cs │ │ │ ├── EditFormOptions.cs │ │ │ ├── FormOptions.cs │ │ │ ├── ListFormOptions.cs │ │ │ └── MudBlazorUIClientBrowserService.cs │ │ ├── MudBlazorUIServiceCollectionExtensions.cs │ │ ├── Nuspec │ │ │ └── cmd.bat │ │ ├── _Imports.razor │ │ └── wwwroot │ │ │ ├── background.png │ │ │ ├── exampleJsInterop.js │ │ │ └── timeZone.js │ ├── BlazorForms.Rendering.RadzenBlazor │ │ ├── BlazorForms.Rendering.RadzenBlazor.csproj │ │ ├── BlazorFormsRenderingRadzenApplicationPart.cs │ │ ├── BlazorFormsRenderingRadzenServiceCollectionExtensions.cs │ │ ├── Components │ │ │ ├── AutocompleteControl.razor │ │ │ ├── ButtonControl.razor │ │ │ ├── CheckboxEditControl.razor │ │ │ ├── CustomComponent.razor │ │ │ ├── DateEditControl.razor │ │ │ ├── DropDownColumnControl.razor │ │ │ ├── DropDownControl.razor │ │ │ ├── DynamicDialogForm.razor │ │ │ ├── DynamicForm.razor │ │ │ ├── DynamicFormContent.razor │ │ │ ├── DynamicFormDialog.razor │ │ │ ├── DynamicFormGroupContent.razor │ │ │ ├── DynamicFormSilent.razor │ │ │ ├── DynamicFormTyped.razor │ │ │ ├── DynamicListForm.razor │ │ │ ├── DynamicListFormRowContextMenu.razor │ │ │ ├── DynamicSimpleControl.razor │ │ │ ├── FieldControl.razor │ │ │ ├── FileUploadControl.razor │ │ │ ├── FormContent.razor │ │ │ ├── FormGroupContent.razor │ │ │ ├── GridControl.razor │ │ │ ├── HeaderControl.razor │ │ │ ├── LoginPageButton.razor │ │ │ ├── MoneyEditControl.razor │ │ │ ├── PercentEditControl.razor │ │ │ ├── PlugableFieldControl.razor │ │ │ ├── RepeaterControl.razor │ │ │ ├── RowFilterComponent.razor │ │ │ ├── SelectableListControl.razor │ │ │ ├── SimpleControl.razor │ │ │ ├── SubtitleControl.razor │ │ │ ├── TableControl.razor │ │ │ ├── TextAreaControl.razor │ │ │ ├── TextEditControl.razor │ │ │ ├── TextSearchEditControl.razor │ │ │ ├── ThemeColorSelector.razor │ │ │ ├── ValidatorControl.razor │ │ │ └── ValueControl.razor │ │ ├── _Imports.razor │ │ └── wwwroot │ │ │ ├── css │ │ │ └── default.css │ │ │ └── js │ │ │ └── BlazorInterop.js │ ├── BlazorForms.Rendering.Standard │ │ ├── BlazorForms.Rendering.Standard.csproj │ │ ├── BlazorFormsRenderingMatBlazorApplicationPart.cs │ │ ├── BlazorFormsRenderingStandardServiceCollectionExtensions.cs │ │ ├── Component1.razor │ │ ├── Components │ │ │ ├── AutocompleteControl.razor │ │ │ ├── ButtonControl.razor │ │ │ ├── CheckboxEditControl.razor │ │ │ ├── CustomComponent.razor │ │ │ ├── DateEditControl.razor │ │ │ ├── DropDownColumnControl.razor │ │ │ ├── DropDownControl.razor │ │ │ ├── DynamicDialogForm.razor │ │ │ ├── DynamicForm.razor │ │ │ ├── DynamicFormContent.razor │ │ │ ├── DynamicFormDialog.razor │ │ │ ├── DynamicFormGroupContent.razor │ │ │ ├── DynamicFormSilent.razor │ │ │ ├── DynamicFormTyped.razor │ │ │ ├── DynamicListForm.razor │ │ │ ├── DynamicListFormRowContextMenu.razor │ │ │ ├── DynamicSimpleControl.razor │ │ │ ├── FileUploadControl.razor │ │ │ ├── FormContent.razor │ │ │ ├── FormGroupContent.razor │ │ │ ├── GridControl.razor │ │ │ ├── HeaderControl.razor │ │ │ ├── LoginPageButton.razor │ │ │ ├── MoneyEditControl.razor │ │ │ ├── PercentEditControl.razor │ │ │ ├── PlugableFieldControl.razor │ │ │ ├── RepeaterControl.razor │ │ │ ├── RowFilterComponent.razor │ │ │ ├── SelectableListControl.razor │ │ │ ├── SimpleControl.razor │ │ │ ├── SubtitleControl.razor │ │ │ ├── TableControl.razor │ │ │ ├── TextAreaControl.razor │ │ │ ├── TextEditControl.razor │ │ │ ├── TextSearchEditControl.razor │ │ │ ├── ThemeColorSelector.razor │ │ │ └── ValidatorControl.razor │ │ ├── _Imports.razor │ │ └── wwwroot │ │ │ ├── background.png │ │ │ ├── exampleJsInterop.js │ │ │ └── styles.css │ └── BlazorForms.Rendering │ │ ├── BlazorForms.Rendering.csproj │ │ ├── BlazorFormsRenderingApplicationPart.cs │ │ ├── Interfaces │ │ ├── IClientBrowserService.cs │ │ ├── IClientDateService.cs │ │ ├── ICustomFlowFormController.cs │ │ ├── IDialogFormViewModel.cs │ │ ├── IFlowBoardViewModel.cs │ │ ├── IFormViewModel.cs │ │ ├── IListFormViewModel.cs │ │ └── IRenderingViewModel.cs │ │ ├── Model │ │ ├── Boards │ │ │ └── FlowBoardModel.cs │ │ ├── FormConfirmationData.cs │ │ ├── FormField.cs │ │ ├── FormSettingsViewState.cs │ │ ├── FormSubmittedArgs.cs │ │ ├── TestModel.cs │ │ └── ValueChangedArgs.cs │ │ ├── State │ │ ├── ClientBrowserService.cs │ │ └── ClientDateService.cs │ │ ├── Types │ │ ├── ComponentTypes.cs │ │ ├── DashboardParams.cs │ │ ├── DynamicListFormRowContextMenuItemClickArgs.cs │ │ ├── FormOptionsBase.cs │ │ └── LayoutFormParams.cs │ │ ├── Validation │ │ └── DynamicFieldValidator.cs │ │ └── ViewModels │ │ ├── BoardDialogViewModel.cs │ │ ├── CardListViewModel.cs │ │ ├── ControlDialogFormViewModel.cs │ │ ├── ControlViewModel.cs │ │ ├── DialogFormViewModel.cs │ │ ├── FlowBoardViewModel.cs │ │ ├── FormViewModel.cs │ │ ├── ListFormViewModel.cs │ │ ├── RenderingViewModel.cs │ │ └── StateBoardViewModel.cs ├── rules │ ├── BlazorForms.FlowRules.Definition │ │ ├── BlazorForms.FlowRules.Definition.csproj │ │ ├── Interfaces │ │ │ ├── IFlowRule.cs │ │ │ ├── IRuleDefinitionParser.cs │ │ │ ├── IRuleExecutionEngine.cs │ │ │ └── ITaskRulesDefinition.cs │ │ ├── Model │ │ │ ├── AccessRuleModel.cs │ │ │ ├── DisplayDetails.cs │ │ │ ├── ExecutableRuleDetails.cs │ │ │ ├── FieldDetails.cs │ │ │ ├── RuleDetails.cs │ │ │ ├── RuleEngineExecutionResult.cs │ │ │ ├── RuleExecutionContext.cs │ │ │ ├── RuleExecutionParameters.cs │ │ │ ├── RuleExecutionResult.cs │ │ │ ├── RuleTypes.cs │ │ │ └── RuleValidationResult.cs │ │ └── TaskRulesDefinition.cs │ └── BlazorForms.FlowRules │ │ ├── Attributes │ │ └── FlowRuleAttribute.cs │ │ ├── Bases │ │ ├── FlowRuleAsyncBase.cs │ │ └── FlowRuleBase.cs │ │ ├── BlazorForms.FlowRules.csproj │ │ ├── Engine │ │ ├── AccessRuleEngine.cs │ │ ├── InterceptorBasedRuleEngine.cs │ │ ├── RuleExecutionEngineBase.cs │ │ └── SimpleFastRuleEngine.cs │ │ ├── Exceptions │ │ └── RuleExecutionInfiniteLoopException.cs │ │ └── Parser │ │ └── RuleDefinitionParser.cs ├── shared │ └── BlazorForms.Shared │ │ ├── BindingModel │ │ ├── BindingControlType.cs │ │ ├── BindingFlowAction.cs │ │ ├── BindingFlowReference.cs │ │ ├── BindingParameters.cs │ │ ├── FieldBinding.cs │ │ ├── FieldBindingType.cs │ │ ├── FilterObject.cs │ │ ├── IBindingContextMenu.cs │ │ ├── IBindingControlType.cs │ │ ├── ListBindingControlType.cs │ │ ├── ModelBinding.cs │ │ ├── RepeaterBindingControlType.cs │ │ ├── SelectableListBindingControlType.cs │ │ ├── TableColumnBindingControlType.cs │ │ └── TableCountBindingControlType.cs │ │ ├── BlazorForms.Shared.csproj │ │ ├── DataStructures │ │ ├── ConvertHelper.cs │ │ ├── Currency.cs │ │ ├── DateConvertHelper.cs │ │ ├── DynamicRecordset.cs │ │ ├── FileDetails.cs │ │ ├── FormRuleTriggers.cs │ │ └── Money.cs │ │ ├── Exceptions │ │ ├── BlazorFormsModelNotFoundException.cs │ │ └── BlazorFormsValidationException.cs │ │ ├── Extensions │ │ ├── AutoDictionary.cs │ │ ├── Dates.cs │ │ ├── EnumExtensions.cs │ │ ├── EnumFieldFilterType.cs │ │ ├── ExpandoObjectExtensions.cs │ │ ├── HashSetExtensions.cs │ │ ├── ObjectConvert.cs │ │ ├── QueryOptions.cs │ │ ├── QueryOptionsFilterHelper.cs │ │ ├── QueryOptionsPaginationHelper.cs │ │ ├── QueryOptionsSortHelper.cs │ │ ├── ReflectionObjectCloner.cs │ │ ├── SortDirection.cs │ │ ├── SortExtensions.cs │ │ ├── StatusList.cs │ │ ├── StringExtensions.cs │ │ └── TypeExtensions.cs │ │ ├── FastReflection │ │ ├── FastReflectionProvider.cs │ │ ├── IFastReflectionProvider.cs │ │ └── ModelBindingNavigator.cs │ │ ├── Logging │ │ ├── ILogStreamer.cs │ │ ├── MethodTimeLogger.cs │ │ ├── MockLogStreamer.cs │ │ └── WatchTracer.cs │ │ ├── Reflection │ │ ├── AssemblyHelper.cs │ │ ├── EmbeddedResourceHelper.cs │ │ ├── ExpressionTreeReflectionHelper.cs │ │ ├── FastReflectionPrototype.cs │ │ ├── IAssemblyRegistrator.cs │ │ ├── IKnownTypesBinder.cs │ │ ├── InvalidDependencyException.cs │ │ ├── JsonPathHelper.cs │ │ ├── JsonPathNavigator.cs │ │ ├── JsonPathNavigatorFastEmitted.cs │ │ ├── KnownTypesBinder.cs │ │ ├── ModelNavigator.cs │ │ └── TypeHelper.cs │ │ ├── ShortGuid.cs │ │ └── Types │ │ └── Confirmations.cs ├── store │ ├── BlazorForms.ItemStore │ │ ├── BlazorForms.ItemStore.csproj │ │ ├── Engine │ │ │ ├── ExpressionBuilder.cs │ │ │ ├── QueryParameter.cs │ │ │ ├── SqlJsonDatabaseDriver.cs │ │ │ ├── SqlJsonObjectResolver.cs │ │ │ └── SqlScriptHelper.cs │ │ ├── Exceptions │ │ │ └── SqlJsonQueryBuildException.cs │ │ ├── Interfaces │ │ │ ├── IStoreCodeGenerator.cs │ │ │ ├── IStoreDatabaseDriver.cs │ │ │ ├── IStoreObjectResolver.cs │ │ │ └── IStoreSchemaEngine.cs │ │ ├── ItemStoreDataProvider.cs │ │ ├── Mappings │ │ │ ├── ModelMapping.cs │ │ │ ├── StoreMappingModel.cs │ │ │ ├── StoreObject.cs │ │ │ └── StoreRecordset.cs │ │ └── Schema │ │ │ ├── Model │ │ │ ├── StoreQuery.cs │ │ │ └── StoreSchema.cs │ │ │ └── StoreSchemaEngine.cs │ └── BlazorForms.Storage │ │ ├── BlazorForms.Storage.csproj │ │ ├── ContextQuery.cs │ │ ├── InMemory │ │ ├── InMemoryHighStore.cs │ │ └── InMemoryModelRepository.cs │ │ └── Interfaces │ │ ├── IContextQuery.cs │ │ ├── IEntity.cs │ │ ├── IHighStore.cs │ │ └── IModelRepository.cs └── wasm │ └── BlazorForms.Wasm.InlineFlows │ ├── BlazorForms.Wasm.InlineFlows.csproj │ ├── Component1.razor │ ├── Component1.razor.css │ ├── ExampleJsInterop.cs │ ├── InlineNavigationFormBase.razor │ ├── Interfaces │ └── IInlineFlowProvider.cs │ ├── Mocks │ ├── MockFlowRepository.cs │ ├── MockObjectCloner.cs │ └── MockTenantedScope.cs │ ├── Providers │ ├── BlazorFormsWasmInlineFlowsServiceCollectionExtensions.cs │ ├── InlineFlowProvider.cs │ └── WasmInlineFlowsAssemblyRegistrator.cs │ ├── _Imports.razor │ └── wwwroot │ ├── background.png │ └── exampleJsInterop.js └── tests ├── BlazorForms.IntegrationTests.Server ├── BlazorForms.IntegrationTests.Server.csproj ├── Controllers │ └── WeatherForecastController.cs ├── Flows │ └── TestSampleFlow1.cs ├── Mocks │ └── MockFlowRepository.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── Providers │ ├── ApplicationDbContext.cs │ └── RevalidatingIdentityAuthenticationStateProvider.cs ├── Settings │ ├── MockAccessService.cs │ ├── TestAuthState.cs │ └── WasmServerPart.cs ├── WeatherForecast.cs ├── appsettings.Development.json └── appsettings.json ├── BlazorForms.Platform.IntegrationTests ├── BlazorForms.Platform.IntegrationTests.csproj ├── RestFlowRunProviderTests.cs ├── SampleTest1.cs ├── SilentFlowApiTests.cs └── TestApi │ ├── AppPartsRegistrationHelper.cs │ ├── TestApiApplication.cs │ └── WebApiTestBase.cs ├── BlazorForms.Platform.Tests ├── BlazorForms.Platform.Tests.csproj ├── CodeGeneration │ └── FormGeneratorTests.cs ├── Expressions │ └── SqlExpressionsTest.cs ├── Flows │ ├── DefinitionFluentFlowTests.cs │ ├── DemoClientTableFlow.cs │ ├── DemoClientTableParamsFlow.cs │ ├── DemoNullClientTableFlow.cs │ ├── FlowExecutionTests.cs │ ├── FlowParamsTests.cs │ ├── FlowStatementsTests.cs │ └── SilentFlowTests.cs ├── FluentForms │ ├── ControlTypeTests.cs │ ├── FluentFormsDefinitionTests.cs │ ├── FluentFormsExtendedDefinitionTests.cs │ └── TestModels.cs ├── Forms │ ├── FormParserTests.cs │ └── QuizFormTests.cs ├── HighStore │ ├── HighStoreBasicTests.cs │ └── Model │ │ ├── Company.cs │ │ ├── Person.cs │ │ ├── PersonCompanyLink.cs │ │ ├── PersonCompanyLinkType.cs │ │ ├── Role.cs │ │ ├── User.cs │ │ └── UserRoleLink.cs ├── Providers │ ├── AdminObjectsTests.cs │ └── UserViewDataResolverTests.cs ├── Proxyma │ ├── ModelProxyProviderTests.cs │ ├── Models │ │ ├── AddressModel.cs │ │ ├── ClientModel.cs │ │ ├── EmailModel.cs │ │ └── PhoneModel.cs │ └── PushPropertyBagStoreTests.cs ├── Rules │ ├── DisplayRuleTests.cs │ ├── DynamicRecordsetRuleTests.cs │ ├── InfiniteLoopRuleExecutionTests.cs │ ├── RepeaterRuleExecutionTests.cs │ ├── RuleDefinitionParserTests.cs │ ├── RuleExecutionTests.cs │ ├── SimpleFastRuleEngineTests │ │ └── SimpleFastRuleEngineRuleExecutionTests.cs │ └── ValidationRuleTests.cs ├── Shared │ ├── DynamicParamsTests.cs │ ├── FeatureToggleTests.cs │ └── KnownTypesBinderTests.cs ├── StateFlow │ ├── StateFlowTests.cs │ └── TestStateFlow1.cs ├── Store │ ├── Query1.json │ ├── StoreSchemaTests.cs │ ├── TestQuery1.json │ └── TestSchema1.json ├── Usings.cs └── c.csproj ├── BlazorForms.Proxyma.Tests ├── BlazorForms.Proxyma.Tests.csproj ├── DynamicRecordsetProxyTests.cs ├── Models │ └── Model1.cs ├── ProxyProvidersHierarchyTests.cs ├── PushProxyFactoryTests.cs └── Usings.cs ├── BlazorForms.Shared.Tests ├── BlazorForms.Shared.Tests.csproj ├── ConvertHelperTests.cs ├── Data │ └── FlowEntity.json ├── FastReflectionProviderTests.cs ├── FastReflectionTests.cs ├── JsonPathHelperTests.cs ├── JsonPathNavigatorFastEmittedTests.cs ├── JsonPathNavigatorTests.cs ├── ModelBindingNavigatorTests.cs ├── Models │ ├── AddressModel.cs │ ├── ClientModel.cs │ ├── EmailModel.cs │ └── PhoneModel.cs ├── StringExtensionsTests.cs ├── TypeHelperTests.cs └── Usings.cs ├── BlazorForms.Tests.Framework ├── BlazorForms.Tests.Framework.csproj ├── Core │ ├── FlowRunProviderCreator.cs │ ├── MockClientBrowserService.cs │ ├── MockFlowRepository.cs │ ├── MockFlowRunStorage.cs │ ├── MockNavigationManager.cs │ ├── MockObjectCloner.cs │ ├── MockStoreDatabaseDriver.cs │ ├── TestAuthState.cs │ └── TestInfraAssemblyRegistratorBase.cs ├── Crm │ ├── Artel │ │ ├── ArtelMemberEditFlow.cs │ │ ├── ArtelProjectDashboardFlow.cs │ │ ├── ArtelProjectDeleteFlow.cs │ │ ├── ArtelProjectListFlow.cs │ │ ├── ArtelProjectService.cs │ │ ├── ArtelProjectSettingsFlow.cs │ │ ├── ArtelTeamListFlow.cs │ │ └── Forms │ │ │ ├── FormArtelProjectDashboard.cs │ │ │ └── FormArtelProjectSettings.cs │ ├── BusinessObjects │ │ ├── ArtelMemberDetails.cs │ │ ├── ArtelMemberStatistics.cs │ │ ├── ArtelProjectDetails.cs │ │ ├── ArtelProjectStatistics.cs │ │ ├── ArtelRoleDetails.cs │ │ ├── AuthUser.cs │ │ ├── BackgroundTaskModel.cs │ │ ├── Email.cs │ │ ├── FrequencyTypeDetails.cs │ │ └── UserDetails.cs │ ├── Connection │ │ ├── ConnectionStringSettings.cs │ │ └── CrmSettings.cs │ ├── Definitions │ │ ├── IAccessService.cs │ │ ├── IArtelProjectService.cs │ │ ├── IAuthService.cs │ │ ├── IBackgroundTaskService.cs │ │ └── IEmailService.cs │ └── Models │ │ ├── ArtelMemberModel.cs │ │ ├── ArtelProjectDashboardModel.cs │ │ ├── ArtelProjectListModel.cs │ │ ├── ArtelProjectSettingsModel.cs │ │ └── ArtelTeamListModel.cs └── Helpers │ └── AppPartsRegistrationHelper.cs └── FastReflectionBenchmarkApp ├── FastReflectionBenchmarkApp.csproj ├── Program.cs ├── ReflectionBenchmarks.cs └── ReflectionUsage.cs /README.md: -------------------------------------------------------------------------------- 1 | # BlazorForms 2 | Modern low-code framework that simplifies creation of flows, forms and rules. 3 | 4 | Pro Coders PTY LTD developers worked hard to bring it to open-source community. 5 | 6 | Our main contributors: Ev Uklad euklad@gmail.com and Michael Shmalko mutabot@gmail.com 7 | 8 | Please contact us if you need any help with BlazorForms 9 | 10 | We are based in Sydney, Australia 11 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/App.razor: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Not found 8 | 9 |

Sorry, there's nothing at this address.

10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Data/WeatherForecast.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorFormsDemoBlazorApp.Data 2 | { 3 | public class WeatherForecast 4 | { 5 | public DateTime Date { get; set; } 6 | 7 | public int TemperatureC { get; set; } 8 | 9 | public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); 10 | 11 | public string? Summary { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Pages/Counter.razor: -------------------------------------------------------------------------------- 1 | @page "/counter" 2 | @using BlazorForms.Rendering.Flows 3 | 4 | 5 | 6 | @code { 7 | private int currentCount = 0; 8 | 9 | private void IncrementCount() 10 | { 11 | currentCount++; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Pages/DemoFormV2.razor: -------------------------------------------------------------------------------- 1 | @page "/demoFormV2/{store:bool}" 2 | 3 | Form V2 4 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public bool Store { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Pages/EditFormMudUI.razor: -------------------------------------------------------------------------------- 1 | @page "/demoForm3/{store:bool}" 2 | 3 | @using BlazorForms.Rendering.MudBlazorUI.Components 4 | 5 | Form V2 6 | 7 | 9 | 10 | @code { 11 | [Parameter] 12 | public bool Store { get; set; } 13 | } 14 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Pages/ListV2Exception.razor: -------------------------------------------------------------------------------- 1 | @page "/list2exc" 2 | @using BlazorForms.Rendering.Interfaces 3 | @using BlazorForms.Flows.Definitions 4 | @using BlazorForms.Rendering.State 5 | 6 | @inject IDialogFormViewModel DialogVM 7 | 8 | 9 | 10 | @code { 11 | } 12 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Pages/StartFlowFormV2Generic.razor: -------------------------------------------------------------------------------- 1 | @page "/start-flow-form-v2-generic/{flowName}/{Pk}" 2 | @using BlazorForms.Rendering.MaterialBlazor.Components 3 | 4 | 5 | 6 | 7 | 8 | @code { 9 | [Parameter] 10 | public string FlowName { get; set; } 11 | 12 | [Parameter] 13 | public string Pk { get; set; } 14 | 15 | } 16 | 17 | 18 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Pages/_Host.cshtml: -------------------------------------------------------------------------------- 1 | @page "/" 2 | @namespace BlazorFormsDemoBlazorApp.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | @{ 5 | Layout = "_Layout"; 6 | } 7 | 8 | 9 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 | BlazorFormsDemoBlazorApp 4 | 5 |
6 | 9 | 10 |
11 |
12 | About 13 |
14 | 15 |
16 | @Body 17 |
18 |
19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Widgets/ImageWidget.razor: -------------------------------------------------------------------------------- 1 | 

ImageWidget

2 | some image 3 | 4 | @code { 5 | 6 | } -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/Widgets/TableDataWidget.razor: -------------------------------------------------------------------------------- 1 | 

TableDataWidget

2 |

This is a table widget with parameters

3 | 4 |

DataSource: @DataSource

5 | 6 | @code { 7 | 8 | [Parameter] 9 | public string DataSource { get; set; } = ""; 10 | 11 | } -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*", 9 | 10 | "ConnectionStrings": { 11 | "SqlFlowRepositoryConnection": "Server=(local);Database=pcdev;Trusted_Connection=True;MultipleActiveResultSets=true" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoBlazorApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoBlazorApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoBlazorApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoBlazorApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoBlazorApp/wwwroot/favicon.ico -------------------------------------------------------------------------------- /demo/BlazorFormsDemoBlazorApp/wwwroot/img/20191005-BMNT-104.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoBlazorApp/wwwroot/img/20191005-BMNT-104.jpg -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/Data/WeatherForecast.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorFormsDemoFastDesignApp.Data 2 | { 3 | public class WeatherForecast 4 | { 5 | public DateTime Date { get; set; } 6 | 7 | public int TemperatureC { get; set; } 8 | 9 | public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); 10 | 11 | public string? Summary { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/Pages/Counter.razor: -------------------------------------------------------------------------------- 1 | @page "/counter" 2 | 3 | Counter 4 | 5 |

Counter

6 | 7 |

Current count: @currentCount

8 | 9 | 10 | 11 | @code { 12 | private int currentCount = 0; 13 | 14 | private void IncrementCount() 15 | { 16 | currentCount++; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/Pages/DemoFormV2.razor: -------------------------------------------------------------------------------- 1 | @page "/demoFormV2/{store:bool}" 2 | 3 | Form V2 4 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public bool Store { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | 3 | Index 4 | 5 |

Hello, world!

6 | 7 | Welcome to your new app. 8 | 9 | 10 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/Pages/StartFlowFormGeneric.razor: -------------------------------------------------------------------------------- 1 | @page "/start-flow-form-generic/{flowName}/{Pk}" 2 | 3 | 4 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string FlowName { get; set; } 10 | 11 | [Parameter] 12 | public string Pk { get; set; } 13 | 14 | } 15 | 16 | 17 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/Pages/_Host.cshtml: -------------------------------------------------------------------------------- 1 | @page "/" 2 | @namespace BlazorFormsDemoFastDesignApp.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | @{ 5 | Layout = "_Layout"; 6 | } 7 | 8 | 9 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 | BlazorFormsDemoFastDesignApp 4 | 5 |
6 | 9 | 10 |
11 |
12 | About 13 |
14 | 15 |
16 | @Body 17 |
18 |
19 |
20 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*", 9 | } 10 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoFastDesignApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoFastDesignApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoFastDesignApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoFastDesignApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFastDesignApp/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoFastDesignApp/wwwroot/favicon.ico -------------------------------------------------------------------------------- /demo/BlazorFormsDemoFlows/Mocks/MockTenantedScope.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using System.Threading.Tasks; 3 | 4 | namespace BlazorFormsDemoFlows 5 | { 6 | public class MockTenantedScope : ITenantedScope 7 | { 8 | public async Task GetTenantId() 9 | { 10 | return "1"; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoModels/Class1.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorFormsDemoModels 2 | { 3 | public class Class1 4 | { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /demo/BlazorFormsDemoModels/Models/FrequencyTypeDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform.Crm.Domain.Models.Artel 6 | { 7 | public class FrequencyTypeDetails 8 | { 9 | public virtual string Code { get; set; } 10 | public virtual string Name { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoModels/Models/NavigationModel1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using BlazorForms.Flows.Definitions; 7 | 8 | namespace BlazorFormsDemoModels.Models 9 | { 10 | public class NavigationModel1 : FlowModelBase 11 | { 12 | public string? WelcomeText { get; set; } 13 | public string? UserName { get; set; } 14 | public bool Continue { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/Pages/DemoForm.razor: -------------------------------------------------------------------------------- 1 | @page "/demoForm/{store:bool}" 2 | 3 | Form 4 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public bool Store { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | 3 | Index 4 | 5 |

Hello, world!

6 | 7 | Welcome to your new app. 8 | 9 | 10 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/Pages/StartFlowFormGeneric.razor: -------------------------------------------------------------------------------- 1 | @page "/start-flow-form-generic/{flowName}/{Pk}" 2 | 3 | 4 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string FlowName { get; set; } 10 | 11 | [Parameter] 12 | public string Pk { get; set; } 13 | 14 | } 15 | 16 | 17 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/Pages/_Host.cshtml: -------------------------------------------------------------------------------- 1 | @page "/" 2 | @namespace BlazorFormsDemoRadzenApp.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | @{ 5 | Layout = "_Layout"; 6 | } 7 | 8 | 9 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*", 9 | 10 | "ConnectionStrings": { 11 | "SqlFlowRepositoryConnection": "Server=(local);Database=pcdev;Trusted_Connection=True;MultipleActiveResultSets=true", 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoRadzenApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoRadzenApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoRadzenApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoRadzenApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /demo/BlazorFormsDemoRadzenApp/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoRadzenApp/wwwroot/favicon.ico -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | 3 | Index 4 | 5 |

Hello, world!

6 | 7 | Welcome to your new app. 8 | 9 | @* 10 | *@ 11 | @code { 12 | private int currentCount = 0; 13 | private string RefId { get; set; } 14 | 15 | private void IncrementCount() 16 | { 17 | currentCount++; 18 | } 19 | } -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/Pages/ListItemView.razor: -------------------------------------------------------------------------------- 1 | @page "/ListItemView/{pk}" 2 | 3 | Form V2 4 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/Pages/StartFlowFormGeneric.razor: -------------------------------------------------------------------------------- 1 | @page "/start-flow-form-generic/{flowName}/{Pk}" 2 | @using BlazorForms.Rendering.MaterialBlazor.Components 3 | 4 | 5 | 6 | 7 | 8 | @code { 9 | [Parameter] 10 | public string FlowName { get; set; } 11 | 12 | [Parameter] 13 | public string Pk { get; set; } 14 | 15 | } 16 | 17 | 18 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
4 | 7 | 8 |
9 |
10 | About 11 |
12 | 13 |
14 | @Body 15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoWasmNew/Client/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoWasmNew/Client/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoWasmNew/Client/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoWasmNew/Client/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoWasmNew/Client/wwwroot/favicon.ico -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Client/wwwroot/icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsDemoWasmNew/Client/wwwroot/icon-192.png -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Server/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*", 9 | 10 | } 11 | 12 | 13 | -------------------------------------------------------------------------------- /demo/BlazorFormsDemoWasmNew/Shared/WeatherForecast.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorFormsDemoWasmNew.Shared 2 | { 3 | public class WeatherForecast 4 | { 5 | public DateTime Date { get; set; } 6 | 7 | public int TemperatureC { get; set; } 8 | 9 | public string? Summary { get; set; } 10 | 11 | public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); 12 | } 13 | } -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/Pages/_Host.cshtml: -------------------------------------------------------------------------------- 1 | @page "/" 2 | @namespace BlazorFormsStateFlowDemoApp.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | @{ 5 | Layout = "_Layout"; 6 | } 7 | 8 | 9 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 | BlazorFormsStateFlowDemoApp 4 | 5 |
6 | @**@ 9 | 10 |
11 | 12 |
13 | @Body 14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using System.Net.Http 2 | @using Microsoft.AspNetCore.Authorization 3 | @using Microsoft.AspNetCore.Components.Authorization 4 | @using Microsoft.AspNetCore.Components.Forms 5 | @using Microsoft.AspNetCore.Components.Routing 6 | @using Microsoft.AspNetCore.Components.Web 7 | @using Microsoft.AspNetCore.Components.Web.Virtualization 8 | @using Microsoft.JSInterop 9 | @using BlazorFormsStateFlowDemoApp 10 | @using BlazorFormsStateFlowDemoApp.Shared 11 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*", 9 | 10 | "ConnectionStrings": { 11 | "SqlFlowRepositoryConnection": "Server=(local);Database=pcdev;Trusted_Connection=True;MultipleActiveResultSets=true" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoApp/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoApp/wwwroot/favicon.ico -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/Pages/_Host.cshtml: -------------------------------------------------------------------------------- 1 | @page "/" 2 | @namespace BlazorFormsStateFlowDemoAppNuget.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | @{ 5 | Layout = "_Layout"; 6 | } 7 | 8 | 9 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 | BlazorFormsStateFlowDemoApp 4 | 5 |
6 | @**@ 9 | 10 |
11 | 12 |
13 | @Body 14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*", 9 | 10 | "ConnectionStrings": { 11 | "SqlFlowRepositoryConnection": "Server=(local);Database=pcdev;Trusted_Connection=True;MultipleActiveResultSets=true" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/BlazorFormsStateFlowDemoAppNuget/wwwroot/favicon.ico -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/App.razor: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Not found 8 | 9 |

Sorry, there's nothing at this address.

10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/Flows/Customer/ICustomerService.cs: -------------------------------------------------------------------------------- 1 | namespace MudBlazorUIDemo.Flows.Customer; 2 | 3 | public interface ICustomerService 4 | { 5 | Task GetByIdAsync(string Uid); 6 | Task DeleteByIdAsync(string Uid); 7 | Task UpsertAsync(CustomerType customer, CancellationToken cancellationToken); 8 | Task> GetAllCustomersAsync(CancellationToken cancellationToken); 9 | Task> GetAllTags(CancellationToken cancellationToken); 10 | } -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/Pages/Customer/CustomerList.razor: -------------------------------------------------------------------------------- 1 | @page "/customer-list" 2 | @using MudBlazorUIDemo.Flows.Customer 3 | 4 | 5 | 6 | @code { 7 | 8 | private readonly ListFormOptions _options = new ListFormOptions 9 | { 10 | Variant = Variant.Outlined, 11 | MudBlazorProvidersDefined = true, 12 | DataOptimization = DataOptimization.ServerPagination, 13 | UseToolBarCaption = true, 14 | }; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/Pages/ToolBar.razor: -------------------------------------------------------------------------------- 1 | @using MudBlazor 2 | 3 | @Caption 4 | 5 | 7 | 8 | @code { 9 | [Parameter] 10 | public string Caption { get; set; } 11 | 12 | [Parameter] 13 | public EventCallback OnSearch { get; set; } 14 | } 15 | -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/wwwroot/assets/blackAsset-2@4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/MudBlazorUIDemo/wwwroot/assets/blackAsset-2@4x.png -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/MudBlazorUIDemo/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/MudBlazorUIDemo/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/MudBlazorUIDemo/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/MudBlazorUIDemo/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /demo/MudBlazorUIDemo/wwwroot/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/MudBlazorUIDemo/wwwroot/favicon.png -------------------------------------------------------------------------------- /demo/StateFlow/DemoStateFlowObjects/Component1.razor: -------------------------------------------------------------------------------- 1 | 
2 | This component is defined in the DemoStateFlowObjects library. 3 |
4 | -------------------------------------------------------------------------------- /demo/StateFlow/DemoStateFlowObjects/Component1.razor.css: -------------------------------------------------------------------------------- 1 | .my-component { 2 | border: 2px dashed red; 3 | padding: 1em; 4 | margin: 1em 0; 5 | background-image: url('background.png'); 6 | } 7 | -------------------------------------------------------------------------------- /demo/StateFlow/DemoStateFlowObjects/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | -------------------------------------------------------------------------------- /demo/StateFlow/DemoStateFlowObjects/wwwroot/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/demo/StateFlow/DemoStateFlowObjects/wwwroot/background.png -------------------------------------------------------------------------------- /demo/StateFlow/DemoStateFlowObjects/wwwroot/exampleJsInterop.js: -------------------------------------------------------------------------------- 1 | // This is a JavaScript module that is loaded on demand. It can export any number of 2 | // functions, and may import other JavaScript modules if required. 3 | 4 | export function showPrompt(message) { 5 | return prompt(message, 'Type anything here'); 6 | } 7 | -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/App.razor: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Not found 8 | 9 |

Sorry, there's nothing at this address.

10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/Pages/Sample.razor: -------------------------------------------------------------------------------- 1 | @page "/sample" 2 | 3 | 4 | 5 | @code { 6 | EditFormOptions Options = new EditFormOptions { MudBlazorProvidersDefined = true, Variant=Variant.Filled }; 7 | } -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/wwwroot/assets/blackAsset-2@4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSandpit/wwwroot/assets/blackAsset-2@4x.png -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSandpit/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSandpit/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSandpit/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSandpit/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /seed/BlazorFormsSandpit/wwwroot/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSandpit/wwwroot/favicon.png -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/App.razor: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Not found 8 | 9 |

Sorry, there's nothing at this address.

10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/Pages/Sample.razor: -------------------------------------------------------------------------------- 1 | @page "/sample" 2 | 3 | 4 | 5 | @code { 6 | EditFormOptions Options = new EditFormOptions { MudBlazorProvidersDefined = true, Variant=Variant.Filled }; 7 | } -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using System.Net.Http 2 | @using Microsoft.AspNetCore.Authorization 3 | @using Microsoft.AspNetCore.Components.Authorization 4 | @using Microsoft.AspNetCore.Components.Forms 5 | @using Microsoft.AspNetCore.Components.Routing 6 | @using Microsoft.AspNetCore.Components.Web 7 | @using Microsoft.AspNetCore.Components.Web.Virtualization 8 | @using Microsoft.JSInterop 9 | @using BlazorFormsSeed 10 | @using BlazorFormsSeed.Shared 11 | @using BlazorForms.Rendering.MudBlazorUI.Components 12 | @using MudBlazor 13 | -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/wwwroot/assets/blackAsset-2@4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSeed/wwwroot/assets/blackAsset-2@4x.png -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSeed/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSeed/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSeed/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSeed/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /seed/BlazorFormsSeed/wwwroot/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/BlazorFormsSeed/wwwroot/favicon.png -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/.dockerignore: -------------------------------------------------------------------------------- 1 | **/.classpath 2 | **/.dockerignore 3 | **/.env 4 | **/.git 5 | **/.gitignore 6 | **/.project 7 | **/.settings 8 | **/.toolstarget 9 | **/.vs 10 | **/.vscode 11 | **/*.*proj.user 12 | **/*.dbmdl 13 | **/*.jfm 14 | **/azds.yaml 15 | **/bin 16 | **/charts 17 | **/docker-compose* 18 | **/Dockerfile* 19 | **/node_modules 20 | **/npm-debug.log 21 | **/obj 22 | **/secrets.dev.yaml 23 | **/values.dev.yaml 24 | LICENSE 25 | README.md -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/.idea/.idea.CrmLightDemoApp/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /modules.xml 6 | /.idea.CrmLightDemoApp.iml 7 | /projectSettingsUpdater.xml 8 | /contentModel.xml 9 | # Editor-based HTTP Client requests 10 | /httpRequests/ 11 | # Datasource local storage ignored files 12 | /dataSources/ 13 | /dataSources.local.xml 14 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/.idea/.idea.CrmLightDemoApp/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/.idea/.idea.CrmLightDemoApp/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/.idea/.idea.CrmLightDemoApp/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Onion/Services/Abstractions/IAppAuthState.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Store.Onion.Services.Model; 2 | 3 | namespace CrmLightDemoApp.Store.Onion.Services.Abstractions 4 | { 5 | public interface IAppAuthState 6 | { 7 | UserModel GetCurrentUser(); 8 | TenantAccountModel GetCurrentTenantAccount(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Onion/Services/Abstractions/IUserService.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Store.Onion.Services.Model; 2 | 3 | namespace CrmLightDemoApp.Store.Onion.Services.Abstractions 4 | { 5 | public interface IUserService 6 | { 7 | Task> GetAllUserDetailsAsync(); 8 | Task GetUserDetailsAsync(int id); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Onion/Services/Model/ClientCompanyListModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | 3 | namespace CrmLightDemoApp.Store.Onion.Services.Model 4 | { 5 | public class ClientCompanyListModel : IFlowModel 6 | { 7 | public virtual List? Data { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Onion/Services/Model/CompanyListModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | 3 | namespace CrmLightDemoApp.Store.Onion.Services.Model 4 | { 5 | public class CompanyListModel : IFlowModel 6 | { 7 | public virtual List? Data { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Onion/Services/Model/LeadSourceTypeModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Storage; 2 | 3 | namespace CrmLightDemoApp.Store.Onion.Services.Model 4 | { 5 | public class LeadSourceTypeModel : IEntity 6 | { 7 | public int Id { get; set; } 8 | public bool Deleted { get; set; } 9 | public virtual string? Name { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Onion/Services/Model/PersonListModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | 3 | namespace CrmLightDemoApp.Store.Onion.Services.Model 4 | { 5 | public class PersonListModel : IFlowModel 6 | { 7 | public virtual List? Data { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Onion/Services/Model/ResolutionModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using BlazorForms.Storage; 3 | 4 | namespace CrmLightDemoApp.Store.Onion.Services.Model 5 | { 6 | public class ResolutionModel : IEntity, IFlowModel 7 | { 8 | public int Id { get; set; } 9 | public bool Deleted { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Onion/Services/Model/RoleModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Storage; 2 | 3 | namespace CrmLightDemoApp.Store.Onion.Services.Model 4 | { 5 | public class RoleModel : IEntity 6 | { 7 | public virtual int Id { get; set; } 8 | public virtual bool Deleted { get; set; } 9 | public virtual string Name { get; set; } 10 | 11 | // FK 12 | public List RefUserRoleLink { get; } = new(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Onion/Services/Model/UserListModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | 3 | namespace CrmLightDemoApp.Store.Onion.Services.Model 4 | { 5 | public class UserListModel : IFlowModel 6 | { 7 | public virtual List? Data { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/ClientCompanyEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/client-company-edit/{pk}" 2 | 3 | @using BlazorForms.Rendering.MudBlazorUI.Components 4 | 5 | 7 | 8 | 9 | @code { 10 | [Parameter] 11 | public string Pk { get; set; } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/ClientCompanyList.razor: -------------------------------------------------------------------------------- 1 | @page "/client-company-list" 2 | 3 | 4 | 5 | @code { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/CompanyEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/company-edit/{pk}" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/CompanyList.razor: -------------------------------------------------------------------------------- 1 | @page "/company-list" 2 | 3 | 4 | 5 | @code { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | 3 | 4 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/PersonCompanyListType.razor: -------------------------------------------------------------------------------- 1 | @page "/person-company-list-type/{Pk}" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/PersonEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/person-edit/{pk}" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/PersonList.razor: -------------------------------------------------------------------------------- 1 | @page "/person-list" 2 | 3 | 4 | 5 | @code { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/RegisteredFlows.razor: -------------------------------------------------------------------------------- 1 | @page "/_BlazorForms/admin/registered-flows" 2 | @using BlazorForms.Rendering.Interfaces 3 | @using BlazorForms.Flows.Definitions 4 | @using BlazorForms.Rendering.State 5 | 6 | 7 | 8 | @code { 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/StaticTypeEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/static-type-edit/{entityType}" 2 | @inject NavigationManager NavigationManager; 3 | 4 | @code { 5 | [Parameter] 6 | public string entityType { get; set; } 7 | 8 | protected override void OnAfterRender(bool firstRender) 9 | { 10 | NavigationManager.NavigateTo($"/static-type-edit-internal/{entityType}"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/TenantSettings.razor: -------------------------------------------------------------------------------- 1 | @page "/tenant-settings" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/UserEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/user-edit/{pk}" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/Pages/UserList.razor: -------------------------------------------------------------------------------- 1 | @page "/user-list" 2 | 3 | 4 | 5 | @code { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/cicd/bicep/key-vault.bicep: -------------------------------------------------------------------------------- 1 | param keyVaultName string 2 | param location string 3 | 4 | resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { 5 | name: keyVaultName 6 | location: location 7 | properties: { 8 | enabledForTemplateDeployment: true 9 | tenantId: tenant().tenantId 10 | accessPolicies: [ 11 | ] 12 | sku: { 13 | name: 'standard' 14 | family: 'A' 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/cicd/bicep/law.bicep: -------------------------------------------------------------------------------- 1 | param location string 2 | param name string 3 | 4 | resource law 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = { 5 | name: name 6 | location: location 7 | properties: any({ 8 | retentionInDays: 30 9 | features: { 10 | searchVersion: 1 11 | } 12 | sku: { 13 | name: 'PerGB2018' 14 | } 15 | }) 16 | } 17 | output clientId string = law.properties.customerId 18 | output clientSecret string = law.listKeys().primarySharedKey 19 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/cicd/bicep/my-environment.bicep: -------------------------------------------------------------------------------- 1 | param environment string 2 | 3 | var environments = { 4 | Production: loadJsonContent('../config-Production.json') 5 | } 6 | 7 | output config object = environments[environment] 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/cicd/bicep/service-identity.bicep: -------------------------------------------------------------------------------- 1 | param location string 2 | param tags object 3 | 4 | 5 | /////////////////////////////////// 6 | // Resource names 7 | 8 | param svcUserName string 9 | 10 | 11 | /////////////////////////////////// 12 | // New resources 13 | 14 | resource svcUser 'Microsoft.ManagedIdentity/userAssignedIdentities@2022-01-31-preview' = { 15 | name: svcUserName 16 | location: location 17 | tags: tags 18 | } 19 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/cicd/config-Production.json: -------------------------------------------------------------------------------- 1 | { 2 | "environmentName": "prod", 3 | "blazor-forms-demo-service": { 4 | "serviceName": "blazor-forms-demo-service", 5 | "certificateName": "crmlight-platz-app", 6 | "domainName": "crmlight.platz.app" 7 | }, 8 | 9 | "cpu": "0.25", 10 | "memory": "0.5Gi" 11 | } -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/cicd/yml/build.yml: -------------------------------------------------------------------------------- 1 | parameters: 2 | - name: 'dockerfilePath' 3 | 4 | jobs: 5 | - job: Build 6 | displayName: Build 7 | 8 | steps: 9 | - task: Docker@2 10 | inputs: 11 | containerRegistry: $(dockerRegistryServiceConnection) 12 | repository: '$(imageName)' 13 | tags: '$(imageTag)' 14 | command: 'buildAndPush' 15 | Dockerfile: '${{ parameters.dockerfilePath }}' -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/cicd/yml/variables.yml: -------------------------------------------------------------------------------- 1 | variables: 2 | azureSubscription: 'pc-partner-subscription' 3 | dockerRegistryServiceConnection: 'pc-container-registry' 4 | containerRegistry: 'procoders.azurecr.io' 5 | dockerfilePath: '**/Dockerfile' 6 | location: 'australiaeast' 7 | major: 1 8 | minor: $[counter(variables['major'], 1)] -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/wwwroot/assets/blackAsset-2@4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp.Store/wwwroot/assets/blackAsset-2@4x.png -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp.Store/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp.Store/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp.Store/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp.Store/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /seed/CrmLightDemoApp.Store/wwwroot/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp.Store/wwwroot/favicon.png -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/.dockerignore: -------------------------------------------------------------------------------- 1 | **/.classpath 2 | **/.dockerignore 3 | **/.env 4 | **/.git 5 | **/.gitignore 6 | **/.project 7 | **/.settings 8 | **/.toolstarget 9 | **/.vs 10 | **/.vscode 11 | **/*.*proj.user 12 | **/*.dbmdl 13 | **/*.jfm 14 | **/azds.yaml 15 | **/bin 16 | **/charts 17 | **/docker-compose* 18 | **/Dockerfile* 19 | **/node_modules 20 | **/npm-debug.log 21 | **/obj 22 | **/secrets.dev.yaml 23 | **/values.dev.yaml 24 | LICENSE 25 | README.md -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/.idea/.idea.CrmLightDemoApp/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /modules.xml 6 | /.idea.CrmLightDemoApp.iml 7 | /projectSettingsUpdater.xml 8 | /contentModel.xml 9 | # Editor-based HTTP Client requests 10 | /httpRequests/ 11 | # Datasource local storage ignored files 12 | /dataSources/ 13 | /dataSources.local.xml 14 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/.idea/.idea.CrmLightDemoApp/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/.idea/.idea.CrmLightDemoApp/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/.idea/.idea.CrmLightDemoApp/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/App.razor: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | Not found 8 | 9 |

Sorry, there's nothing at this address.

10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/BoardCardHistoryDetails.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain 4 | { 5 | public class BoardCardHistoryDetails : BoardCardHistory 6 | { 7 | public virtual string? PersonFullName { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Entities/Board.cs: -------------------------------------------------------------------------------- 1 | namespace CrmLightDemoApp.Onion.Domain.Entities 2 | { 3 | public class Board : IEntity 4 | { 5 | public virtual int Id { get; set; } 6 | public virtual bool Deleted { get; set; } 7 | 8 | public virtual string Name { get; set; } 9 | 10 | // FK 11 | public List RefBoardCard { get; } = new(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Entities/IEntity.cs: -------------------------------------------------------------------------------- 1 | namespace CrmLightDemoApp.Onion.Domain.Entities 2 | { 3 | public interface IEntity 4 | { 5 | public int Id { get; set; } 6 | public bool Deleted { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Entities/LeadSourceType.cs: -------------------------------------------------------------------------------- 1 | namespace CrmLightDemoApp.Onion.Domain.Entities 2 | { 3 | public class LeadSourceType : IEntity 4 | { 5 | public int Id { get; set; } 6 | public bool Deleted { get; set; } 7 | public virtual string? Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Entities/PersonCompanyLink.cs: -------------------------------------------------------------------------------- 1 | namespace CrmLightDemoApp.Onion.Domain.Entities 2 | { 3 | public class PersonCompanyLink : IEntity 4 | { 5 | public virtual int Id { get; set; } 6 | public virtual int PersonId { get; set; } 7 | public virtual int CompanyId { get; set; } 8 | public virtual int LinkTypeId { get; set; } 9 | public virtual bool Deleted { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Entities/PersonCompanyLinkType.cs: -------------------------------------------------------------------------------- 1 | namespace CrmLightDemoApp.Onion.Domain.Entities 2 | { 3 | public class PersonCompanyLinkType : IEntity 4 | { 5 | public virtual int Id { get; set; } 6 | public virtual string? Name { get; set; } 7 | public virtual bool Deleted { get; set; } 8 | 9 | // FK 10 | public List RefPersonCompanyLink { get; } = new(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Entities/Role.cs: -------------------------------------------------------------------------------- 1 | namespace CrmLightDemoApp.Onion.Domain.Entities 2 | { 3 | public class Role : IEntity 4 | { 5 | public virtual int Id { get; set; } 6 | public virtual bool Deleted { get; set; } 7 | public virtual string Name { get; set; } 8 | 9 | // FK 10 | public List RefUserRoleLink { get; } = new(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Entities/UserRoleLink.cs: -------------------------------------------------------------------------------- 1 | namespace CrmLightDemoApp.Onion.Domain.Entities 2 | { 3 | public class UserRoleLink : IEntity 4 | { 5 | public virtual int Id { get; set; } 6 | public virtual bool Deleted { get; set; } 7 | public virtual int UserId { get; set; } 8 | public virtual int RoleId { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/IBoardCardHistoryRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface IBoardCardHistoryRepository : IRepository 6 | { 7 | Task> GetListByCardIdAsync(int cardId); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/IBoardCardRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface IBoardCardRepository : IRepository 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/ICompanyRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface ICompanyRepository : IRepository 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/IPersonCompanyLinkTypeRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface IPersonCompanyLinkTypeRepository : IRepository 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/IPersonCompanyRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface IPersonCompanyRepository : IRepository 6 | { 7 | Task> GetByPersonIdAsync(int personId); 8 | Task> GetByCompanyIdAsync(int companyId); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/IPersonRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface IPersonRepository : IRepository 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/IRoleRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface IRoleRepository : IRepository 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/ITenantAccountRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface ITenantAccountRepository : IRepository 6 | { 7 | Task GetTenantAccountDetailsAsync(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface IUserRepository : IRepository 6 | { 7 | Task> GetAllUserDetailsAsync(); 8 | ContextQuery GetAllDetailsContextQuery(); 9 | Task> RunAllDetailsContextQueryAsync(ContextQuery ctx); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/Repositories/IUserRoleLinkRepository.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain.Repositories 4 | { 5 | public interface IUserRoleLinkRepository : IRepository 6 | { 7 | Task> GetAllByUserIdAsync(int userId); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/TenantAccountDetails.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain 4 | { 5 | public class TenantAccountDetails : TenantAccount 6 | { 7 | public Company Company { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Domain/UserDetails.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Domain.Entities; 2 | 3 | namespace CrmLightDemoApp.Onion.Domain 4 | { 5 | public class UserDetails : User 6 | { 7 | public virtual string? PersonFullName { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Infrastructure/RepositoryBase.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows; 2 | using BlazorForms.Shared; 3 | using CrmLightDemoApp.Onion.Domain.Entities; 4 | using CrmLightDemoApp.Onion.Domain.Repositories; 5 | using Microsoft.EntityFrameworkCore; 6 | 7 | namespace CrmLightDemoApp.Onion.Infrastructure 8 | { 9 | public class RepositoryBase : LocalCacheRepository 10 | where T : class, IEntity 11 | { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Services/Abstractions/IAppAuthState.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Services.Model; 2 | 3 | namespace CrmLightDemoApp.Onion.Services.Abstractions 4 | { 5 | public interface IAppAuthState 6 | { 7 | UserModel GetCurrentUser(); 8 | TenantAccountModel GetCurrentTenantAccount(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Services/Abstractions/IUserService.cs: -------------------------------------------------------------------------------- 1 | using CrmLightDemoApp.Onion.Services.Model; 2 | 3 | namespace CrmLightDemoApp.Onion.Services.Abstractions 4 | { 5 | public interface IUserService 6 | { 7 | Task> GetAllUserDetailsAsync(); 8 | Task GetUserDetailsAsync(int id); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Services/Model/ClientCompanyListModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using CrmLightDemoApp.Onion.Domain; 3 | 4 | namespace CrmLightDemoApp.Onion.Services.Model 5 | { 6 | public class ClientCompanyListModel : IFlowModel 7 | { 8 | public virtual List? Data { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Services/Model/CompanyListModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using CrmLightDemoApp.Onion.Domain; 3 | 4 | namespace CrmLightDemoApp.Onion.Services.Model 5 | { 6 | public class CompanyListModel : IFlowModel 7 | { 8 | public virtual List? Data { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Services/Model/PersonCompanyLinkDetailsModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using CrmLightDemoApp.Onion.Domain; 3 | 4 | namespace CrmLightDemoApp.Onion.Services.Model 5 | { 6 | public class PersonCompanyLinkDetailsModel : PersonCompanyLinkDetails, IFlowModelListItem 7 | { 8 | public virtual bool Changed { get; set; } 9 | public virtual bool Deleted { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Services/Model/PersonListModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using CrmLightDemoApp.Onion.Domain.Entities; 3 | 4 | namespace CrmLightDemoApp.Onion.Services.Model 5 | { 6 | public class PersonListModel : IFlowModel 7 | { 8 | public virtual List? Data { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Services/Model/ResolutionModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | 3 | namespace CrmLightDemoApp.Onion.Services.Model 4 | { 5 | public class ResolutionModel : IFlowModel 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Services/Model/TenantAccountModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using BlazorForms.Shared; 3 | using CrmLightDemoApp.Onion.Domain; 4 | 5 | namespace CrmLightDemoApp.Onion.Services.Model 6 | { 7 | public class TenantAccountModel : TenantAccountDetails, IFlowModel 8 | { 9 | public static TenantAccountModel FromDetails(TenantAccountDetails val) 10 | { 11 | var model = new TenantAccountModel(); 12 | val.ReflectionCopyTo(model); 13 | return model; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Onion/Services/Model/UserListModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | 3 | namespace CrmLightDemoApp.Onion.Services.Model 4 | { 5 | public class UserListModel : IFlowModel 6 | { 7 | public virtual List? Data { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/ClientCompanyEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/client-company-edit/{pk}" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/ClientCompanyList.razor: -------------------------------------------------------------------------------- 1 | @page "/client-company-list" 2 | 3 | 4 | 5 | @code { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/CompanyEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/company-edit/{pk}" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/CompanyList.razor: -------------------------------------------------------------------------------- 1 | @page "/company-list" 2 | 3 | 4 | 5 | @code { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | 3 | 4 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/PersonCompanyListType.razor: -------------------------------------------------------------------------------- 1 | @page "/person-company-list-type/{Pk}" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/PersonEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/person-edit/{pk}" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/PersonList.razor: -------------------------------------------------------------------------------- 1 | @page "/person-list" 2 | 3 | 4 | 5 | @code { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/RegisteredFlows.razor: -------------------------------------------------------------------------------- 1 | @page "/_BlazorForms/admin/registered-flows" 2 | @using BlazorForms.Rendering.Interfaces 3 | @using BlazorForms.Flows.Definitions 4 | @using BlazorForms.Rendering.State 5 | 6 | 7 | 8 | @code { 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/StaticTypeEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/static-type-edit/{entityType}" 2 | @inject NavigationManager NavigationManager; 3 | 4 | @code { 5 | [Parameter] 6 | public string entityType { get; set; } 7 | 8 | protected override void OnAfterRender(bool firstRender) 9 | { 10 | NavigationManager.NavigateTo($"/static-type-edit-internal/{entityType}"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/TenantSettings.razor: -------------------------------------------------------------------------------- 1 | @page "/tenant-settings" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/UserEdit.razor: -------------------------------------------------------------------------------- 1 | @page "/user-edit/{pk}" 2 | 3 | 5 | 6 | 7 | @code { 8 | [Parameter] 9 | public string Pk { get; set; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/Pages/UserList.razor: -------------------------------------------------------------------------------- 1 | @page "/user-list" 2 | 3 | 4 | 5 | @code { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/cicd/bicep/key-vault.bicep: -------------------------------------------------------------------------------- 1 | param keyVaultName string 2 | param location string 3 | 4 | resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { 5 | name: keyVaultName 6 | location: location 7 | properties: { 8 | enabledForTemplateDeployment: true 9 | tenantId: tenant().tenantId 10 | accessPolicies: [ 11 | ] 12 | sku: { 13 | name: 'standard' 14 | family: 'A' 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/cicd/bicep/law.bicep: -------------------------------------------------------------------------------- 1 | param location string 2 | param name string 3 | 4 | resource law 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = { 5 | name: name 6 | location: location 7 | properties: any({ 8 | retentionInDays: 30 9 | features: { 10 | searchVersion: 1 11 | } 12 | sku: { 13 | name: 'PerGB2018' 14 | } 15 | }) 16 | } 17 | output clientId string = law.properties.customerId 18 | output clientSecret string = law.listKeys().primarySharedKey 19 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/cicd/bicep/my-environment.bicep: -------------------------------------------------------------------------------- 1 | param environment string 2 | 3 | var environments = { 4 | Production: loadJsonContent('../config-Production.json') 5 | } 6 | 7 | output config object = environments[environment] 8 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/cicd/bicep/service-identity.bicep: -------------------------------------------------------------------------------- 1 | param location string 2 | param tags object 3 | 4 | 5 | /////////////////////////////////// 6 | // Resource names 7 | 8 | param svcUserName string 9 | 10 | 11 | /////////////////////////////////// 12 | // New resources 13 | 14 | resource svcUser 'Microsoft.ManagedIdentity/userAssignedIdentities@2022-01-31-preview' = { 15 | name: svcUserName 16 | location: location 17 | tags: tags 18 | } 19 | -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/cicd/config-Production.json: -------------------------------------------------------------------------------- 1 | { 2 | "environmentName": "prod", 3 | "blazor-forms-demo-service": { 4 | "serviceName": "blazor-forms-demo-service", 5 | "certificateName": "crmlight-platz-app", 6 | "domainName": "crmlight.platz.app" 7 | }, 8 | 9 | "cpu": "0.25", 10 | "memory": "0.5Gi" 11 | } -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/cicd/yml/build.yml: -------------------------------------------------------------------------------- 1 | parameters: 2 | - name: 'dockerfilePath' 3 | 4 | jobs: 5 | - job: Build 6 | displayName: Build 7 | 8 | steps: 9 | - task: Docker@2 10 | inputs: 11 | containerRegistry: $(dockerRegistryServiceConnection) 12 | repository: '$(imageName)' 13 | tags: '$(imageTag)' 14 | command: 'buildAndPush' 15 | Dockerfile: '${{ parameters.dockerfilePath }}' -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/cicd/yml/variables.yml: -------------------------------------------------------------------------------- 1 | variables: 2 | azureSubscription: 'pc-partner-subscription' 3 | dockerRegistryServiceConnection: 'pc-container-registry' 4 | containerRegistry: 'procoders.azurecr.io' 5 | dockerfilePath: '**/Dockerfile' 6 | location: 'australiaeast' 7 | major: 1 8 | minor: $[counter(variables['major'], 1)] -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/wwwroot/assets/blackAsset-2@4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp/wwwroot/assets/blackAsset-2@4x.png -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /seed/CrmLightDemoApp/wwwroot/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/seed/CrmLightDemoApp/wwwroot/favicon.png -------------------------------------------------------------------------------- /src/.idea/.idea.BlazorForms.Framework/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /contentModel.xml 6 | /projectSettingsUpdater.xml 7 | /.idea.BlazorForms.Framework.iml 8 | /modules.xml 9 | # Editor-based HTTP Client requests 10 | /httpRequests/ 11 | # Datasource local storage ignored files 12 | /dataSources/ 13 | /dataSources.local.xml 14 | -------------------------------------------------------------------------------- /src/.idea/.idea.BlazorForms.Framework/.idea/.name: -------------------------------------------------------------------------------- 1 | BlazorForms.Framework -------------------------------------------------------------------------------- /src/.idea/.idea.BlazorForms.Framework/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/.idea/.idea.BlazorForms.Framework/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/.idea/.idea.BlazorForms.Framework/.idea/riderPublish.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /src/.idea/.idea.BlazorForms.Framework/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/Pages/Index.razor: -------------------------------------------------------------------------------- 1 | @page "/" 2 | 3 | Index 4 | 5 |

Hello, world!

6 | 7 | Welcome to your new app. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/Pages/RegisteredFlowsItemView.razor: -------------------------------------------------------------------------------- 1 | @page "/_BlazorForms/admin/registered-flows/{item}" 2 | @using BlazorForms.Rendering.Interfaces 3 | @using BlazorForms.Flows.Definitions 4 | @using BlazorForms.Rendering.State 5 | 6 | 7 | 8 | @code { 9 | [Parameter] 10 | public string Item { get; set; } 11 | } 12 | -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/Pages/StoredFlows.razor: -------------------------------------------------------------------------------- 1 | @page "/_BlazorForms/admin/stored-flows" 2 | @using BlazorForms.Rendering.Interfaces 3 | @using BlazorForms.Flows.Definitions 4 | @using BlazorForms.Rendering.State 5 | 6 | @inject IDialogFormViewModel DialogVM 7 | 8 | 9 | 10 | @code { 11 | } 12 | -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/Pages/_Host.cshtml: -------------------------------------------------------------------------------- 1 | @page "/" 2 | @namespace BlazorForms.Admin.App.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | @{ 5 | Layout = "_Layout"; 6 | } 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/Shared/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 | BlazorForms.Admin.App 4 | 5 |
6 | 9 | 10 |
11 |
12 | About 13 |
14 | 15 |
16 | @Body 17 |
18 |
19 |
20 | -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*", 9 | 10 | "ConnectionStrings": { 11 | "SqlFlowRepositoryConnection": "Server=(local);Database=pcdev;Trusted_Connection=True;MultipleActiveResultSets=true" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/wwwroot/css/open-iconic/font/fonts/open-iconic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/admin/BlazorForms.Admin.App/wwwroot/css/open-iconic/font/fonts/open-iconic.eot -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/wwwroot/css/open-iconic/font/fonts/open-iconic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/admin/BlazorForms.Admin.App/wwwroot/css/open-iconic/font/fonts/open-iconic.otf -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/admin/BlazorForms.Admin.App/wwwroot/css/open-iconic/font/fonts/open-iconic.ttf -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/wwwroot/css/open-iconic/font/fonts/open-iconic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/admin/BlazorForms.Admin.App/wwwroot/css/open-iconic/font/fonts/open-iconic.woff -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.App/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/admin/BlazorForms.Admin.App/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.BusinessObjects/BlazorForms.Admin.BusinessObjects.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net6.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.BusinessObjects/Class1.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Admin.BusinessObjects 2 | { 3 | public class Class1 4 | { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /src/admin/BlazorForms.Admin.BusinessObjects/Model/FlowDataOptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Admin.BusinessObjects.Model 8 | { 9 | public class FlowDataOptions 10 | { 11 | public bool? ShowNamespaces; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/dynamic-code/BlazorForms.DynamicCode/Engine/SqlDynamicFlowRepository.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.DynamicCode.Interfaces; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazorForms.DynamicCode.Engine 9 | { 10 | public class SqlDynamicFlowRepository : IDynamicFlowRepository 11 | { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/dynamic-code/BlazorForms.DynamicCode/Interfaces/IDynamicCodeEngine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.DynamicCode 8 | { 9 | public interface IDynamicCodeEngine 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/dynamic-code/BlazorForms.DynamicCode/Interfaces/IDynamicCodeValidationEngine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.DynamicCode.Interfaces 8 | { 9 | public interface IDynamicCodeValidationEngine 10 | { 11 | public void Validate(Type ruleInterface, DynamicCodeContext ctx); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/dynamic-code/BlazorForms.DynamicCode/Interfaces/IDynamicCodeValidationRule.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.DynamicCode.Interfaces 8 | { 9 | public interface IDynamicCodeValidationRule 10 | { 11 | void Validate(DynamicCodeContext ctx); 12 | } 13 | 14 | public interface IDynamicCodeFlowValidationRule : IDynamicCodeValidationRule 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/dynamic-code/BlazorForms.DynamicCode/Interfaces/IDynamicFlowProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.DynamicCode 8 | { 9 | public interface IDynamicFlowProvider 10 | { 11 | DynamicCodeContext GetFlow(string fullName); 12 | void RemoveFlow(string fullName); 13 | DynamicCodeContext CompileFlow(DynamicCodeParameters ps); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/dynamic-code/BlazorForms.DynamicCode/Interfaces/IDynamicFlowRepository.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.DynamicCode.Interfaces 8 | { 9 | public interface IDynamicFlowRepository 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/expressions/BlazorForms.Expressions/BlazorForms.Expressions.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net6.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Binding/RepeaterParameters.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Shared.BindingModel; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Flows.Definitions 7 | { 8 | public class RepeaterParameters : BindingParameters 9 | { 10 | public bool IsFixedList { get; set; } 11 | public int? CurrentRow { get; set; } 12 | public bool IsLineEditing { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Exceptions/FlowCreateException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public class FlowCreateException : Exception 8 | { 9 | public FlowCreateException() : base() 10 | { 11 | 12 | } 13 | 14 | public FlowCreateException(string message) : base(message) 15 | { 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Exceptions/FlowFailedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public class FlowFailedException : Exception 8 | { 9 | public FlowFailedException() : base() 10 | { 11 | } 12 | 13 | public FlowFailedException(string message) : base(message) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Exceptions/FlowInvalidDependencyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public class FlowInvalidDependencyException : Exception 8 | { 9 | public FlowInvalidDependencyException() : base() 10 | { 11 | 12 | } 13 | 14 | public FlowInvalidDependencyException(string message) : base(message) 15 | { 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Exceptions/FlowStopException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public class FlowStopException : Exception 8 | { 9 | public FlowStopException() : base() 10 | { 11 | } 12 | 13 | public FlowStopException(string message) : base(message) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Exceptions/InvalidFlowException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public class InvalidFlowException : Exception 8 | { 9 | public InvalidFlowException() : base() 10 | { 11 | 12 | } 13 | 14 | public InvalidFlowException(string message) : base(message) 15 | { 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Exceptions/InvalidStateException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public class InvalidStateException : Exception 8 | { 9 | public InvalidStateException() : base() 10 | { 11 | 12 | } 13 | 14 | public InvalidStateException(string message) : base(message) 15 | { 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/IFlowContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public interface IFlowContext : IFlowContextNoModel 8 | { 9 | IFlowModel Model { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/IFlowForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public interface IFlowForm 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/IFlowModel.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Shared; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Dynamic; 5 | using System.Text; 6 | 7 | namespace BlazorForms.Flows.Definitions 8 | { 9 | public interface IFlowModel 10 | { 11 | } 12 | 13 | public interface IFlowModelExtended : IFlowModel 14 | { 15 | ExpandoObject Bag { get; } 16 | 17 | Dictionary Ext { get; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/IFlowModelListItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Flows.Definitions 8 | { 9 | public interface IFlowModelListItem 10 | { 11 | public bool Changed { get; set; } 12 | public bool Deleted { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/IFlowParams.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Flows.Definitions 2 | { 3 | public interface IFlowParams 4 | { 5 | string this[string index] { get; set;} 6 | string AssignedUser { get; set; } 7 | string AssignedTeam { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/IFlowRunIdGenerator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | 6 | namespace BlazorForms.Flows 7 | { 8 | public interface IFlowRunIdGenerator 9 | { 10 | Task GetNextFlowRunId(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/IFlowTask.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Shared; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Flows.Definitions 8 | { 9 | public interface IFlowTask 10 | { 11 | Task Execute(IFlowContext context, Type taskType, ILogStreamer logStreamer); 12 | //void Skip(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/IObjectCloner.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | 6 | namespace BlazorForms.Flows 7 | { 8 | public interface IObjectCloner 9 | { 10 | Task CloneObject(T source); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/ITaskExecutor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | 6 | namespace BlazorForms.Flows.Definitions 7 | { 8 | public interface ITaskExecutor 9 | { 10 | IFlowContext CurrentContext { get; } 11 | 12 | Task CallTask(Type taskType); 13 | Task CallForm(Type formType); 14 | Task CallViewDataCallback(Type formType, string callbackMethodName); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Interfaces/ITenantedScope.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace BlazorForms.Flows.Definitions 4 | { 5 | public interface ITenantedScope 6 | { 7 | Task GetTenantId(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/InternalVisible.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.CompilerServices; 2 | using System; 3 | 4 | [assembly: InternalsVisibleTo("BlazorForms.Flows.Engine")] 5 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/ClientKeptContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using BlazorForms.Flows.Definitions; 4 | 5 | namespace BlazorForms.Flows 6 | { 7 | public class ClientKeptContext : FlowContextNoModel 8 | { 9 | public ClientKeptContext() 10 | { 11 | } 12 | 13 | public bool IsEmpty() 14 | { 15 | return string.IsNullOrEmpty(RefId); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/FlowConstants.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Flows.Definitions 8 | { 9 | public class FlowConstants 10 | { 11 | public const string SecondPass = "__FlowConstants:SecondPass"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/FlowDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public class FlowDetails 8 | { 9 | public string Name { get; set; } 10 | public Type ClassType { get; set; } 11 | public Dictionary Tasks { get; internal set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/FlowEvent.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Flows 7 | { 8 | public delegate void FlowEvent(object sender, FlowEventArgs e); 9 | 10 | public class FlowEventArgs 11 | { 12 | public string TaskName { get; set; } 13 | public IFlowContext Context { get; set; } 14 | public IFlowModelExtended Model { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/FlowSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows 6 | { 7 | public class FlowSettings 8 | { 9 | public FlowExecutionStoreModel StoreModel { get; set; } 10 | } 11 | 12 | public enum FlowExecutionStoreModel 13 | { 14 | Full = 1, 15 | FullNoHistory, 16 | NoStoreTillStop 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/FlowTaskDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public class FlowTaskDetails 8 | { 9 | public string Name { get; set; } 10 | public bool IsBegin { get; set; } 11 | public bool IsEnd { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/FormTaskStateEnum.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public enum FormTaskStateEnum 8 | { 9 | Initialized = 0, 10 | Loaded, 11 | Saved, 12 | Submitted, 13 | Rejected 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/StateFlows/FormDef.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Flows.Definitions 8 | { 9 | public class FormDef 10 | { 11 | public string State { get; set; } 12 | public string FormType { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/StateFlows/StateDef.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Flows.Definitions 8 | { 9 | public class StateDef 10 | { 11 | public string State { get; set; } 12 | public string Type { get; set; } 13 | public string Caption { get; set; } 14 | public bool IsEnd { get; internal set; } 15 | public Func OnBeginAsync { get; internal set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/TaskExecutionFlowStateEnum.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Flows.Definitions 7 | { 8 | public enum TaskExecutionFlowStateEnum 9 | { 10 | [Description("Stop")] 11 | Stop = 0, 12 | [Description("In progress")] 13 | Continue, 14 | [Description("Finished")] 15 | Finished 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/TaskExecutionResultStateEnum.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Flows.Definitions 7 | { 8 | public enum TaskExecutionResultStateEnum 9 | { 10 | [Description("Failed")] 11 | Fail = 0, 12 | [Description("Success")] 13 | Success 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Definitions/Model/UserViewModelPageResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Flows.Definitions 6 | { 7 | public class UserViewModelPageResult 8 | { 9 | public IFlowModel Model { get; set; } 10 | public IEnumerable MethodTaskAttributes { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Engine/Fluent/IFluentFlowRunEngine.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | 3 | namespace BlazorForms.Flows 4 | { 5 | public interface IFluentFlowRunEngine : IFlowRunEngine 6 | { 7 | 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/flows/BlazorForms.Flows.Engine/StateFlow/FlowContextExtensions.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | 3 | namespace BlazorForms.Flows 4 | { 5 | public static class FlowContextExtensions 6 | { 7 | public static string GetState(this IFlowContext context) 8 | { 9 | return context.CurrentTask; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/Attributes/ComponentGroupAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] 8 | public class ComponentGroupAttribute : Attribute 9 | { 10 | public string Name { get; set; } 11 | 12 | public ComponentGroupAttribute(string groupName) 13 | { 14 | Name = groupName; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/Autocomplete.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class Autocomplete : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/Button.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class Button : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/Checkbox.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace BlazorForms.Forms 3 | { 4 | public class Checkbox : FormComponentBase 5 | { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/CustomComponent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class CustomComponent : IFormComponent 8 | where T : class, IFormComponent 9 | { 10 | public string GetFullName() 11 | { 12 | throw new NotImplementedException(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/DateEdit.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DateEdit : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/DatePicker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DatePicker : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/DropDown.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DropDown : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/DropDownSearch.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DropDownSearch : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/FileUpload.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class FileUpload : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/FormComponentBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class FormComponentBase : IFormComponent 8 | { 9 | public virtual string GetFullName() 10 | { 11 | throw new NotImplementedException(); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/Header.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class Header : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/Label.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class Label : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/MoneyEdit.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class MoneyEdit : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/PercentEdit.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class PercentEdit : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/Repeater.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class Repeater : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/SelectableList.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class SelectableList : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/Subtitle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class Subtitle : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/Table.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class Table : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/TextArea.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class TextArea : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/TextEdit.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class TextEdit : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/BaseComponents/TextSearchEdit.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class TextSearchEdit : FormComponentBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Controls/DefaultCheckboxControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DefaultCheckboxControl 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Controls/DefaultDateEditControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DefaultDateEditControl 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Controls/DefaultDropdownControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DefaultDropdownControl 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Controls/DefaultDropdownReadonlyControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DefaultDropdownReadonlyControl 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Controls/DefaultFormattedViewControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DefaultFormattedViewControl 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Controls/DefaultNumberEditControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DefaultNumberEditControl 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Controls/DefaultReadonlyCheckboxControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DefaultReadonlyCheckboxControl 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Controls/DefaultTextEditControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class DefaultTextEditControl 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Interfaces/IDataFieldProcessor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public interface IDataFieldProcessor 8 | { 9 | List PrepareFields(List list, Type type); 10 | void ResolveLabel(Type type, DataField field); 11 | void ResolveControlType(Type type, DataField field); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Model/ConfirmationDetails.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Shared; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazorForms.Forms.Definitions.FluentForms.Model 9 | { 10 | public class ConfirmationDetails 11 | { 12 | public ConfirmType Type { get; set; } 13 | public string Message { get; set; } 14 | public ConfirmButtons Buttons { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Model/FieldRule.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Shared; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Forms 7 | { 8 | public class FieldRule 9 | { 10 | public Type RuleType { get; set; } 11 | public FormRuleTriggers Trigger { get; set; } 12 | public Type EntityType { get; set; } 13 | public bool IsOuterProperty { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Model/FormAllowAccess.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Forms 8 | { 9 | public class FormAllowAccess 10 | { 11 | public bool Allow { get; set; } 12 | public bool OnlyAssignee { get; set; } 13 | public string Roles { get; set; } 14 | public Type CustomRule { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/FluentForms/Model/FormLayout.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Forms 8 | { 9 | public enum FormLayout 10 | { 11 | Default, 12 | TwoColumns, 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/Interfaces/IFormComponent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public interface IFormComponent 8 | { 9 | string GetFullName(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/Interfaces/IFormDefinitionParser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public interface IFormDefinitionParser 8 | { 9 | FormDetails Parse(Type formType); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/JsonForms/IStoreObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Forms 8 | { 9 | public interface IStoreObject 10 | { 11 | public string Name { get; set; } 12 | public bool Validated { get; set; } 13 | } 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/Parser/FormAccessDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class FormAccessDetails 8 | { 9 | public bool OnlyAssignee { get; set; } 10 | public string Roles { get; set; } 11 | public FormFlowRuleDetails CustomRule { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/forms/BlazorForms.Forms.Definitions/Parser/FormFlowRuleDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Forms 6 | { 7 | public class FormFlowRuleDetails 8 | { 9 | public string FormRuleCode { get; set; } 10 | public string FormRuleType { get; set; } 11 | public string FormRuleTriggerType { get; set; } 12 | public bool IsOuterProperty { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.BackgroundService/HostedService/HostedFeaturesToggle.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Platform.Config; 2 | 3 | namespace BlazorForms.Platform.BackgroundTasks.HostedService 4 | { 5 | public class HostedFeaturesToggle 6 | { 7 | public static EnvironmentFeatureToggle DisableBackgroundServiceFeature { get; set; } = new DisableBackgroundService(); 8 | 9 | private class DisableBackgroundService : EnvironmentFeatureToggle 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.BackgroundService/Interfaces/IBackgroundTaskQueue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading; 3 | using System.Threading.Tasks; 4 | 5 | namespace BlazorForms.Platform.BackgroundTasks 6 | { 7 | public interface IBackgroundTaskQueue 8 | { 9 | void QueueBackgroundWorkItem(Func workItem); 10 | 11 | Task> DequeueAsync(CancellationToken cancellationToken); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Core.Examples/wwwroot/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/platform/BlazorForms.Platform.Core.Examples/wwwroot/background.png -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Core.Examples/wwwroot/exampleJsInterop.js: -------------------------------------------------------------------------------- 1 | // This file is to show how a library package may provide JavaScript interop features 2 | // wrapped in a .NET API 3 | 4 | window.exampleJsFunctions = { 5 | showPrompt: function (message) { 6 | return prompt(message, 'Type anything here'); 7 | } 8 | }; 9 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Core.Examples/wwwroot/styles.css: -------------------------------------------------------------------------------- 1 | /* 2 | This file is to show how CSS and other static resources (such as images) can be 3 | used from a library project/package. 4 | */ 5 | 6 | .my-component { 7 | border: 2px dashed red; 8 | padding: 1em; 9 | margin: 1em 0; 10 | background-image: url('background.png'); 11 | } 12 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Cosmos/Configuration/CosmosDbOptions.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Platform.Cosmos.Configuration; 2 | 3 | public class CosmosDbOptions 4 | { 5 | public string Database { get; set; } 6 | public string Uri { get; set; } 7 | public string Key { get; set; } 8 | public string EnvironmentTag { get; set; } 9 | public string FlowCollection { get; set; } 10 | } -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Cosmos/Nuspec/contentFiles/any/any/Platz.Cosmos.Link/appsettings.cosmos.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Definitions/IApplicationPart.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform 6 | { 7 | public interface IApplicationPart 8 | { 9 | void Register(RegistrationContext context); 10 | void Initialize(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Definitions/IAuthState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Security.Claims; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Platform 8 | { 9 | public interface IAuthState 10 | { 11 | Task User(); 12 | Task UserLogin(); 13 | Task SetLogin(string login); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Definitions/IReflectionProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform 6 | { 7 | public interface IReflectionProvider 8 | { 9 | T CloneObject(T source); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Definitions/Model/FlowRunUserViewDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform 6 | { 7 | public class FlowRunUserViewDetails 8 | { 9 | public string UserViewName { get; set; } 10 | public string UserViewCallbackTaskName { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Definitions/Model/SelectableListItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform 6 | { 7 | public class SelectableListItem 8 | { 9 | public int Id { get; set; } 10 | public string PrimaryText { get; set; } 11 | public string SecondaryText { get; set; } 12 | public object Object { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Definitions/Shared/PlatformConstants.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform.Definitions.Shared 6 | { 7 | public static class PlatformConstants 8 | { 9 | public static string BaseUri = "BaseUri"; 10 | public static string BaseDateFormat = "dd/MM/yyyy"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Definitions/Wrappers/JsonModelWrapper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform 6 | { 7 | public class JsonModelWrapper 8 | { 9 | public string ModelFullName { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.PostgreSql/Nuspec/contentFiles/any/any/Platz.Cosmos.Link/appsettings.cosmos.json: -------------------------------------------------------------------------------- 1 | { 2 | "CosmosDb": { 3 | }, 4 | } 5 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.PostgreSql/Nuspec/contentFiles/any/any/Platz.PostgreSql.Link/appsettings.postresql.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PostgresNoSqlConnection": "Server=(Server);Database=(Database);Port=5432;User Id=(Login);Password=(Password);Ssl Mode=Require;" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Shared/Attributes/ProxyScopeAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform.Shared.Attributes 6 | { 7 | public class ProxyScopeAttribute : Attribute 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Shared/Attributes/ResolveTableDataAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform.Shared.Attributes 6 | { 7 | public class ResolveTableDataAttribute : Attribute 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Shared/Exceptions/AuthStateException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform.Shared.Exceptions 6 | { 7 | public class AuthStateException : Exception 8 | { 9 | public AuthStateException() : base() 10 | { } 11 | 12 | public AuthStateException(string message) : base(message) 13 | { } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Shared/Exceptions/ConfigurationException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform.Shared.Exceptions 6 | { 7 | public class ConfigurationException : Exception 8 | { 9 | public ConfigurationException() : base() 10 | { } 11 | 12 | public ConfigurationException(string message) : base(message) 13 | { } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform.Shared/Interfaces/IAutoMapperConfiguration.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Platform.Shared.Interfaces 7 | { 8 | public interface IAutoMapperConfiguration 9 | { 10 | MapperConfiguration Configuration { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/CustomConfig/CustomModelConfig1.json: -------------------------------------------------------------------------------- 1 | { 2 | "FlowName": "Platform.Crm.Business.Clients.ProjectListEditFlow", 3 | "TaskName": "PopulateDetailsAsync", 4 | "Models": [ 5 | { 6 | "Name": "ExtraProject", 7 | "PkJsonPath": "$.Project.Id", 8 | "Query": { 9 | "SchemaName": "_pc1", 10 | "TableName": "ExtraProjectTable" 11 | } 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/CustomConfig/Model/CustomItemStoreConfig.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.ItemStore; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Platform 7 | { 8 | public class CustomItemStoreConfig 9 | { 10 | public StoreSchema Schema { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/Interfaces/IUniqueIdGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Platform.ProcessFlow 2 | { 3 | public interface IUniqueIdGenerator 4 | { 5 | int NextId(); 6 | } 7 | } -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/Nuspec/cmdTemp.bat: -------------------------------------------------------------------------------- 1 | rem 2 | rem nuget.exe pack BlazorForms.Rendering.Flows.nuspec -NonInteractive -OutputDirectory c:\temp\Nuget -Verbosity Detailed -version 1.9.5 3 | rem nuget.exe pack BlazorForms.Cosmos.nuspec -NonInteractive -OutputDirectory c:\temp\Nuget -Verbosity Detailed -version 1.9.0 4 | nuget.exe pack BlazorForms.Shared.nuspec -NonInteractive -OutputDirectory c:\temp\Nuget -Verbosity Detailed -version 1.11.0 5 | 6 | pause -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/Nuspec/contentFiles/any/any/Georgia.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/platform/BlazorForms.Platform/Nuspec/contentFiles/any/any/Georgia.ttf -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/Nuspec/contentFiles/any/any/Platz.Config.Link/appsettings.localdb.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "SqlFlowRepositoryConnection": "Server=(localdb)\\mssqllocaldb;Database=BlazorForms;Trusted_Connection=True;MultipleActiveResultSets=true;" 4 | }, 5 | 6 | "SqlJsonDatabaseDriver": { 7 | "ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=BlazorForms;Trusted_Connection=True;MultipleActiveResultSets=true;" 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/Nuspec/contentFiles/any/any/Platz.Config.Link/appsettings.mssql.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "SqlFlowRepositoryConnection": "Server=(local);Database=;Trusted_Connection=True;MultipleActiveResultSets=true;" 4 | }, 5 | 6 | "SqlJsonDatabaseDriver": { 7 | "ConnectionString": "Server=(local);Database=;Trusted_Connection=True;MultipleActiveResultSets=true" 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/Nuspec/contentFiles/any/any/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/platform/BlazorForms.Platform/Nuspec/contentFiles/any/any/Roboto-Regular.ttf -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/Nuspec/contentFiles/any/any/Verdana.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/platform/BlazorForms.Platform/Nuspec/contentFiles/any/any/Verdana.ttf -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/ProcessFlow/Dto/FormBusinessRulesDto.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using BlazorForms.Platform; 3 | 4 | namespace BlazorForms.Platform.ProcessFlow.Dto 5 | { 6 | public class FormBusinessRulesDto 7 | { 8 | public FieldDisplayDetails[] DisplayProperties { get; set; } 9 | public IFlowModel Model { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/ProcessFlow/Dto/FormDefinitionResponse.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Platform; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Collections.ObjectModel; 5 | using System.Text; 6 | 7 | namespace BlazorForms.Platform.ProcessFlow.Dto 8 | { 9 | public class FormDefinitionResponse 10 | { 11 | public Collection Fields { get; set; } 12 | public Collection DisplayProperties { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/ProcessFlow/Models/FieldRuleDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform 6 | { 7 | public class FieldRuleDetails 8 | { 9 | public string RuleCode { get; set; } 10 | public string RuleTypeCode { get; set; } 11 | public string RuleTriggerTypeCode { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/platform/BlazorForms.Platform/Stubs/MockTenantedScope.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazorForms.Platform.Stubs 9 | { 10 | public class MockTenantedScope : ITenantedScope 11 | { 12 | public async Task GetTenantId() 13 | { 14 | return "1"; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/proxy/BlazorForms.Proxyma/Interfaces/IModelProxyInterceptor.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Proxyma 2 | { 3 | public interface IModelProxyInterceptor 4 | { 5 | bool InterceptSetter(IProxyPropertyBagStore obj, string prop, object val); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/proxy/BlazorForms.Proxyma/Interfaces/IProxyPropertyBagStore.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Proxyma.Model; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Proxyma 7 | { 8 | public interface IProxyPropertyBagStore 9 | { 10 | ProxyPropertyBag PropertyBag { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/proxy/BlazorForms.Proxyma/Interfaces/IProxyScopeConfiguration.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Proxyma 6 | { 7 | public interface IProxyScopeConfiguration 8 | { 9 | IEnumerable GetScopeTypes(); 10 | string GetProxyEngineType(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/proxy/BlazorForms.Proxyma/Interfaces/IProxymaInterceptor.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Proxyma 2 | { 3 | public interface IProxymaInterceptor 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/proxy/BlazorForms.Proxyma/Model/ProxyPropertyBag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Proxyma.Model 6 | { 7 | public class ProxyPropertyBag 8 | { 9 | public string JsonPath { get; set; } 10 | public string Name { get; set; } 11 | public object Parent { get; set; } 12 | public object Model { get; set; } 13 | public int? Index { get; set; } 14 | public object Key { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/proxy/BlazorForms.Proxyma/Model/ProxyPropertyBagStore.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Proxyma.Model 6 | { 7 | public class ProxyPropertyBagStore : IProxyPropertyBagStore 8 | { 9 | public ProxyPropertyBag PropertyBag { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Flows/BlazorFormsFlowDiagram.razor.css: -------------------------------------------------------------------------------- 1 | .my-component { 2 | border: 2px dashed red; 3 | padding: 1em; 4 | margin: 1em 0; 5 | background-image: url('background.png'); 6 | } 7 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Flows/Georgia.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/rendering/BlazorForms.Rendering.Flows/Georgia.ttf -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Flows/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/rendering/BlazorForms.Rendering.Flows/Roboto-Regular.ttf -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Flows/Verdana.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/rendering/BlazorForms.Rendering.Flows/Verdana.ttf -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Flows/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Flows/wwwroot/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/rendering/BlazorForms.Rendering.Flows/wwwroot/background.png -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Flows/wwwroot/exampleJsInterop.js: -------------------------------------------------------------------------------- 1 | // This is a JavaScript module that is loaded on demand. It can export any number of 2 | // functions, and may import other JavaScript modules if required. 3 | 4 | export function showPrompt(message) { 5 | return prompt(message, 'Type anything here'); 6 | } 7 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/Component1.razor: -------------------------------------------------------------------------------- 1 | 
2 | This Blazor component is defined in the BlazorForms.Rendering package. 3 |
4 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/Components/Dashboard.razor.css: -------------------------------------------------------------------------------- 1 | .grid-layout { 2 | display: grid; 3 | grid-template-columns: repeat(10, 160px); 4 | grid-template-rows: repeat(10, 160px); 5 | grid-gap: 10px; 6 | } 7 | 8 | .grid-item { 9 | min-width: 160px; 10 | min-height: 160px; 11 | overflow-wrap: anywhere; 12 | } -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/Components/HeaderControl.razor: -------------------------------------------------------------------------------- 1 | @using BlazorForms.Rendering.State 2 | @using MatBlazor 3 | @using BlazorForms.Forms 4 | @using BlazorForms.FlowRules 5 | @using BlazorForms.Rendering.Validation 6 | @using BlazorForms.Shared 7 | 8 | @ObjectValue.AsString() 9 | 10 | 11 | @code { 12 | [Parameter] 13 | public object ObjectValue { get; set; } 14 | } 15 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/Components/LayoutForm.razor.css: -------------------------------------------------------------------------------- 1 | .grid-layout { 2 | display: grid; 3 | grid-template-columns: repeat(10, 160px); 4 | grid-template-rows: repeat(10, 160px); 5 | grid-gap: 10px; 6 | } 7 | 8 | .grid-item { 9 | min-width: 160px; 10 | min-height: 160px; 11 | overflow-wrap: anywhere; 12 | } 13 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/Components/LoginPageButton.razor: -------------------------------------------------------------------------------- 1 | @name 2 | 3 | @inject NavigationManager NavigationManager 4 | 5 | @code { 6 | 7 | [Parameter] 8 | public string name { get; set; } 9 | 10 | private async Task LoginPageOnclick() 11 | { 12 | var url = "/"; 13 | NavigationManager.NavigateTo(url, forceLoad: true); 14 | } 15 | } -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/Nuspec/cmd-old.bat: -------------------------------------------------------------------------------- 1 | rem 2 | cd C:\repos\BlazorForms\src\rendering\BlazorForms.Rendering.MaterialBlazor\Nuspec 3 | nuget.exe pack BlazorForms.Rendering.MaterialBlazor.nuspec -NonInteractive -OutputDirectory c:\temp\Nuget -Verbosity Detailed -version 0.1.310 4 | pause -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/Nuspec/cmd.bat: -------------------------------------------------------------------------------- 1 | rem 2 | cd C:\repos\BlazorForms\src\rendering\BlazorForms.Rendering.MaterialBlazor\ 3 | rem nuget.exe pack BlazorForms.Rendering.MaterialBlazor.nuspec -NonInteractive -OutputDirectory c:\temp\Nuget -Verbosity Detailed -version 0.1.304 4 | dotnet pack BlazorForms.Rendering.MaterialBlazor.csproj --output c:\temp\Nuget 5 | pause -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | @using MatBlazor 3 | @using BlazorForms.Rendering.MaterialBlazor.Components 4 | @using BlazorForms.Rendering.Interfaces -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/wwwroot/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/rendering/BlazorForms.Rendering.MaterialBlazor/wwwroot/background.png -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/wwwroot/exampleJsInterop.js: -------------------------------------------------------------------------------- 1 | // This file is to show how a library package may provide JavaScript interop features 2 | // wrapped in a .NET API 3 | 4 | window.exampleJsFunctions = { 5 | showPrompt: function (message) { 6 | return prompt(message, 'Type anything here'); 7 | } 8 | }; 9 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MaterialBlazor/wwwroot/styles.css: -------------------------------------------------------------------------------- 1 | /* 2 | This file is to show how CSS and other static resources (such as images) can be 3 | used from a library project/package. 4 | */ 5 | 6 | .my-component { 7 | border: 2px dashed red; 8 | padding: 1em; 9 | margin: 1em 0; 10 | background-image: url('background.png'); 11 | } 12 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MudBlazorUI/Components/FlowEditForm.razor.css: -------------------------------------------------------------------------------- 1 | .pz-grid-align { 2 | align-items: center; 3 | } 4 | 5 | .pz-clean-margin { 6 | margin: 0px; 7 | } 8 | 9 | .pz-group-grid { 10 | margin-top: 1rem; 11 | margin-bottom: 1rem; 12 | } 13 | 14 | .pz-progress { 15 | margin-top: 0.5rem; 16 | margin-bottom: 0.5rem; 17 | } 18 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MudBlazorUI/Components/HeaderControl.razor: -------------------------------------------------------------------------------- 1 | @using BlazorForms.Rendering.State 2 | @using MudBlazor 3 | @using BlazorForms.Forms 4 | @using BlazorForms.FlowRules 5 | @using BlazorForms.Rendering.Validation 6 | @using BlazorForms.Shared 7 | 8 | @ObjectValue.AsString() 9 | 10 | @code { 11 | [Parameter] 12 | public object ObjectValue { get; set; } 13 | } 14 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MudBlazorUI/Logic/BoardFormOptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Rendering.MudBlazorUI.Components 8 | { 9 | public class BoardFormOptions : FormOptions 10 | { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MudBlazorUI/Logic/EditFormOptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Rendering.MudBlazorUI.Components 8 | { 9 | public class EditFormOptions : FormOptions 10 | { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MudBlazorUI/Logic/FormOptions.cs: -------------------------------------------------------------------------------- 1 | using MudBlazor; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazorForms.Rendering.MudBlazorUI 9 | { 10 | public abstract class FormOptions : FormOptionsBase 11 | { 12 | public Variant Variant { get; set; } 13 | public bool MudBlazorProvidersDefined { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MudBlazorUI/Nuspec/cmd.bat: -------------------------------------------------------------------------------- 1 | rem 2 | cd C:\repos\BlazorForms\src\rendering\BlazorForms.Rendering.MudBlazorUI\ 3 | dotnet pack BlazorForms.Rendering.MudBlazorUI.csproj --output c:\temp\Nuget 4 | pause -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MudBlazorUI/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | @using MudBlazor 3 | @using BlazorForms.Rendering.MudBlazorUI.Components 4 | @using BlazorForms.Rendering.Interfaces 5 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MudBlazorUI/wwwroot/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/rendering/BlazorForms.Rendering.MudBlazorUI/wwwroot/background.png -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.MudBlazorUI/wwwroot/exampleJsInterop.js: -------------------------------------------------------------------------------- 1 | // This is a JavaScript module that is loaded on demand. It can export any number of 2 | // functions, and may import other JavaScript modules if required. 3 | 4 | export function showPrompt(message) { 5 | return prompt(message, 'Type anything here'); 6 | } 7 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.RadzenBlazor/Components/HeaderControl.razor: -------------------------------------------------------------------------------- 1 | @using BlazorForms.Shared 2 | 3 | @inherits ValueControl 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.RadzenBlazor/Components/LoginPageButton.razor: -------------------------------------------------------------------------------- 1 | @name 2 | 3 | @inject NavigationManager NavigationManager 4 | 5 | @code { 6 | 7 | [Parameter] 8 | public string name { get; set; } 9 | 10 | private async Task LoginPageOnclick() 11 | { 12 | var url = "/"; 13 | NavigationManager.NavigateTo(url, forceLoad: true); 14 | } 15 | } -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.RadzenBlazor/Components/SubtitleControl.razor: -------------------------------------------------------------------------------- 1 | @using BlazorForms.Shared 2 | 3 | @inherits ValueControl 4 | 5 | 12 | 13 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.RadzenBlazor/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components 2 | @using Microsoft.AspNetCore.Components.Web 3 | @using MatBlazor 4 | @using BlazorForms.Rendering.RadzenBlazor.Components 5 | @using BlazorForms.Rendering.Interfaces 6 | @using Radzen 7 | @using Radzen.Blazor -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Standard/Component1.razor: -------------------------------------------------------------------------------- 1 | 
2 | This Blazor component is defined in the BlazorForms.Rendering.Standard package. 3 |
4 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Standard/Components/HeaderControl.razor: -------------------------------------------------------------------------------- 1 | @using BlazorForms.Rendering.State 2 | @using BlazorForms.Forms 3 | @using BlazorForms.FlowRules 4 | @using BlazorForms.Rendering.Validation 5 | @using BlazorForms.Shared 6 | 7 |
@ObjectValue.AsString()
8 | 9 | @code { 10 | [Parameter] 11 | public object ObjectValue { get; set; } 12 | } 13 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Standard/Components/LoginPageButton.razor: -------------------------------------------------------------------------------- 1 | @name 2 | 3 | @inject NavigationManager NavigationManager 4 | 5 | @code { 6 | 7 | [Parameter] 8 | public string name { get; set; } 9 | 10 | private async Task LoginPageOnclick() 11 | { 12 | var url = "/"; 13 | NavigationManager.NavigateTo(url, forceLoad: true); 14 | } 15 | } -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Standard/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.Fast.Components.FluentUI 2 | @using Microsoft.AspNetCore.Components.Web 3 | @using BlazorForms.Rendering.Standard.Components 4 | @using BlazorForms.Rendering.Interfaces -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Standard/wwwroot/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/rendering/BlazorForms.Rendering.Standard/wwwroot/background.png -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Standard/wwwroot/exampleJsInterop.js: -------------------------------------------------------------------------------- 1 | // This file is to show how a library package may provide JavaScript interop features 2 | // wrapped in a .NET API 3 | 4 | window.exampleJsFunctions = { 5 | showPrompt: function (message) { 6 | return prompt(message, 'Type anything here'); 7 | } 8 | }; 9 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering.Standard/wwwroot/styles.css: -------------------------------------------------------------------------------- 1 | /* 2 | This file is to show how CSS and other static resources (such as images) can be 3 | used from a library project/package. 4 | */ 5 | 6 | .my-component { 7 | border: 2px dashed red; 8 | padding: 1em; 9 | margin: 1em 0; 10 | background-image: url('background.png'); 11 | } 12 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering/Interfaces/IClientBrowserService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | 4 | namespace BlazorForms.Rendering 5 | { 6 | public interface IClientBrowserService 7 | { 8 | ValueTask GetBrowserLanguage(); 9 | ValueTask GetLocalDateTimeOffset(); 10 | ValueTask GetLocalDateTimezone(); 11 | ValueTask GetWindowOrigin(); 12 | } 13 | } -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering/Interfaces/IClientDateService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | 4 | namespace BlazorForms.Rendering 5 | { 6 | public interface IClientDateService 7 | { 8 | ValueTask GetLocalDateTime(DateTime? dateTime); 9 | } 10 | } -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering/Interfaces/ICustomFlowFormController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Rendering.State 8 | { 9 | public interface ICustomFlowFormController 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering/Model/FormSubmittedArgs.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Rendering.State 8 | { 9 | public class FormSubmittedArgs 10 | { 11 | public IFlowContext Context { get; set; } 12 | public IFlowModel Model { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering/Types/ComponentTypes.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Rendering.Types 2 | { 3 | public struct ContextMenuItemClickArgs 4 | { 5 | public string Pk; 6 | public string Action; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering/Types/DashboardParams.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Rendering.Types; 2 | 3 | public record DashboardParams 4 | { 5 | public List? Widgets { get; set; } 6 | } 7 | 8 | public record DashboardWidget 9 | { 10 | public int Row { get; set; } 11 | public int Col { get; set; } 12 | public int RowSpan { get; set; } 13 | public int ColSpan { get; set; } 14 | public Type WidgetType { get; set; } 15 | public Dictionary Parameters { get; set; } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering/Types/DynamicListFormRowContextMenuItemClickArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Rendering.Types 8 | { 9 | public class DynamicListFormRowContextMenuItemClickArgs 10 | { 11 | public string Pk; 12 | 13 | public string Action; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/rendering/BlazorForms.Rendering/Types/FormOptionsBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Rendering 8 | { 9 | public abstract class FormOptionsBase 10 | { 11 | public string? DateFormat { get; set; } 12 | public bool AllowAnonymousAccess { get; set; } 13 | public bool AllowFlowStorage { get; set; } 14 | public bool SupressExceptions { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/Interfaces/IRuleDefinitionParser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Reflection; 4 | using System.Text; 5 | 6 | namespace BlazorForms.FlowRules 7 | { 8 | public interface IRuleDefinitionParser 9 | { 10 | TaskRulesDefinition Parse(Type taskType); 11 | IEnumerable FindAllRules(IEnumerable assemblies); 12 | IFlowRule CreateRuleInstance(Type t); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/Interfaces/IRuleExecutionEngine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | 6 | namespace BlazorForms.FlowRules 7 | { 8 | public interface IRuleExecutionEngine 9 | { 10 | Task Execute(RuleExecutionParameters parameters); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/Interfaces/ITaskRulesDefinition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.FlowRules 6 | { 7 | public interface ITaskRulesDefinition 8 | { 9 | string Name { get; } 10 | string ProcessTaskTypeFullName { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/Model/AccessRuleModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.FlowRules 6 | { 7 | public class AccessRuleModel 8 | { 9 | public string AssignedUser { get; set; } 10 | public string AssignedTeam { get; set; } 11 | 12 | public bool Allow { get; set; } 13 | //public IFlowModel Model { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/Model/ExecutableRuleDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.FlowRules 6 | { 7 | public class ExecutableRuleDetails 8 | { 9 | public Type RuleClassType { get; set; } 10 | public IFlowRule Instance { get; set; } 11 | public string RuleCode { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/Model/FieldDetails.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Shared; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Collections.ObjectModel; 5 | using System.Text; 6 | 7 | namespace BlazorForms.FlowRules 8 | { 9 | public class FieldDetails 10 | { 11 | public Collection Rules { get; set; } 12 | 13 | // new binding concept 14 | public FieldBinding Binding { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/Model/RuleExecutionContext.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.FlowRules.Model 6 | { 7 | public class RuleExecutionContext 8 | { 9 | public RuleExecutionParameters ExecutionParameters { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/Model/RuleTypes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Text; 5 | 6 | namespace BlazorForms.FlowRules 7 | { 8 | public enum RuleTypes 9 | { 10 | [Description("display")] 11 | DisplayRule = 1, 12 | [Description("validation")] 13 | ValidationRule, 14 | [Description("access")] 15 | AccessRule 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/Model/RuleValidationResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Text; 5 | 6 | namespace BlazorForms.FlowRules 7 | { 8 | public enum RuleValidationResult 9 | { 10 | [Description("ok")] 11 | Ok = 0, 12 | [Description("warning")] 13 | Warning = 1, 14 | [Description("error")] 15 | Error = 2, 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules.Definition/TaskRulesDefinition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Text; 5 | 6 | namespace BlazorForms.FlowRules 7 | { 8 | public class TaskRulesDefinition 9 | { 10 | public string Name { get; set; } 11 | public string ProcessTaskTypeFullName { get; set; } 12 | 13 | public Collection Fields { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/rules/BlazorForms.FlowRules/Exceptions/RuleExecutionInfiniteLoopException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace BlazorForms.FlowRules 4 | { 5 | public class RuleExecutionInfiniteLoopException : Exception 6 | { 7 | public RuleExecutionInfiniteLoopException(string message) : base(message) { } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/BindingModel/BindingControlType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared 6 | { 7 | public class BindingControlType : IBindingControlType 8 | { 9 | public string Binding { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/BindingModel/BindingParameters.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared.BindingModel 6 | { 7 | public class BindingParameters 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/BindingModel/IBindingContextMenu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared 6 | { 7 | public interface IBindingContextMenu 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/BindingModel/IBindingControlType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared 6 | { 7 | public interface IBindingControlType 8 | { 9 | string Binding { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/BindingModel/ListBindingControlType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared 6 | { 7 | public class ListBindingControlType : IBindingControlType 8 | { 9 | public string Binding { get; set; } 10 | 11 | public string ItemsBinding { get; set; } 12 | 13 | public string IdBinding { get; set; } 14 | 15 | public string NameBinding { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/BindingModel/RepeaterBindingControlType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared 6 | { 7 | public class RepeaterBindingControlType : IBindingControlType 8 | { 9 | public string Binding { get; set; } 10 | 11 | public string TableBinding { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/BindingModel/SelectableListBindingControlType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared 6 | { 7 | public class SelectableListBindingControlType : IBindingControlType 8 | { 9 | public string Binding { get; set; } 10 | 11 | public string TargetBinding { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/BindingModel/TableCountBindingControlType.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Shared 2 | { 3 | public class TableCountBindingControlType : IBindingControlType 4 | { 5 | public string Binding { get; set; } 6 | 7 | public string TableBinding { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/DataStructures/Currency.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared.DataStructures 6 | { 7 | public class Currency 8 | { 9 | public virtual string ShortName { get; set; } 10 | public virtual string Name { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/DataStructures/FileDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Shared.DataStructures 8 | { 9 | public class FileDetails 10 | { 11 | public virtual string Name { get; set; } 12 | public virtual byte[] Content { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/Extensions/Dates.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared 6 | { 7 | public static class DateTimeExtensions 8 | { 9 | public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek) 10 | { 11 | int diff = (7 + (dt.DayOfWeek - startOfWeek)) % 7; 12 | return dt.AddDays(-1 * diff).Date; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/Extensions/HashSetExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared 6 | { 7 | public static class HashSetExtensions 8 | { 9 | //HashSet 10 | 11 | public static void Set(this HashSet s, T value) where T: class 12 | { 13 | if(!s.Contains(value)) 14 | { 15 | s.Add(value); 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/Extensions/SortDirection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace BlazorForms.Shared 4 | { 5 | public enum SortDirection 6 | { 7 | None, 8 | Asc, 9 | Desc, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/Extensions/StatusList.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Shared.Extensions 2 | { 3 | public class StatusList 4 | { 5 | public virtual string Code { get; set; } 6 | public virtual string CodeName { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/Logging/ILogStreamer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms 6 | { 7 | public interface ILogStreamer 8 | { 9 | void TrackMetric(string name, long time); 10 | void TrackMetric(string name, long time, string operationName); 11 | void TrackException(Exception exc); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/Reflection/IAssemblyRegistrator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Reflection; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Shared 7 | { 8 | public interface IAssemblyRegistrator 9 | { 10 | IEnumerable GetConsideredAssemblies(); 11 | void InjectAssembly(Assembly assembly); 12 | void RemoveAssembly(Assembly assembly); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/Reflection/IKnownTypesBinder.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using Newtonsoft.Json.Serialization; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | 7 | namespace BlazorForms.Shared 8 | { 9 | public interface IKnownTypesBinder : ISerializationBinder 10 | { 11 | JsonSerializerSettings JsonSerializerSettings { get; } 12 | IEnumerable KnownTypes { get; } 13 | Dictionary KnownTypesDict { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/Reflection/InvalidDependencyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared 6 | { 7 | public class InvalidDependencyException : Exception 8 | { 9 | public InvalidDependencyException() : base() 10 | { 11 | 12 | } 13 | 14 | public InvalidDependencyException(string message) : base(message) 15 | { 16 | 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/shared/BlazorForms.Shared/Types/Confirmations.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Shared 8 | { 9 | public enum ConfirmType 10 | { 11 | ChangesWillBeLost, 12 | Delete, 13 | DeleteItem, 14 | } 15 | 16 | public enum ConfirmButtons 17 | { 18 | OkCancel, 19 | YesNo, 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/store/BlazorForms.ItemStore/Engine/QueryParameter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.ItemStore 6 | { 7 | public class QueryParameter 8 | { 9 | public string Name { get; set; } 10 | // int, string, date, etc. 11 | public string Type { get; set; } 12 | public object Value { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/store/BlazorForms.ItemStore/Exceptions/SqlJsonQueryBuildException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.ItemStore 6 | { 7 | public class SqlJsonQueryBuildException: Exception 8 | { 9 | public SqlJsonQueryBuildException(string msg) : base(msg) 10 | { } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/store/BlazorForms.ItemStore/Interfaces/IStoreCodeGenerator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.ItemStore 6 | { 7 | public interface IStoreCodeGenerator 8 | { 9 | void GenerateStoreModel(); 10 | void GenerateDomainModel(); 11 | void GenerateStoreToDomainMapping(); 12 | void GenerateDomainToStoreMapping(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/store/BlazorForms.ItemStore/Interfaces/IStoreObjectResolver.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.ItemStore; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace BlazorForms.ItemStore 7 | { 8 | public interface IStoreObjectResolver 9 | { 10 | string ResolveField(StoreFieldReference field); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/store/BlazorForms.ItemStore/Interfaces/IStoreSchemaEngine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.ItemStore 6 | { 7 | public interface IStoreSchemaEngine 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/store/BlazorForms.ItemStore/Mappings/ModelMapping.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.ItemStore 6 | { 7 | public class ModelMapping 8 | { 9 | public string LeftModelName { get; set; } 10 | public string RightModelName { get; set; } 11 | public Dictionary FieldMappings { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/store/BlazorForms.Storage/Interfaces/IContextQuery.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace BlazorForms.Storage.Interfaces 8 | { 9 | public interface IContextQuery 10 | { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/store/BlazorForms.Storage/Interfaces/IEntity.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Storage 2 | { 3 | public interface IEntity 4 | { 5 | public int Id { get; set; } 6 | public bool Deleted { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/wasm/BlazorForms.Wasm.InlineFlows/Component1.razor: -------------------------------------------------------------------------------- 1 | 
2 | This component is defined in the BlazorForms.Wasm.InlineFlows library. 3 |
4 | -------------------------------------------------------------------------------- /src/wasm/BlazorForms.Wasm.InlineFlows/Component1.razor.css: -------------------------------------------------------------------------------- 1 | .my-component { 2 | border: 2px dashed red; 3 | padding: 1em; 4 | margin: 1em 0; 5 | background-image: url('background.png'); 6 | } 7 | -------------------------------------------------------------------------------- /src/wasm/BlazorForms.Wasm.InlineFlows/Mocks/MockObjectCloner.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using BlazorForms.Flows; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazorForms.Wasm.InlineFlows 9 | { 10 | public class MockObjectCloner : IObjectCloner 11 | { 12 | public async Task CloneObject(T source) 13 | { 14 | throw new NotImplementedException(); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/wasm/BlazorForms.Wasm.InlineFlows/Mocks/MockTenantedScope.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using System.Threading.Tasks; 3 | 4 | namespace BlazorForms.Wasm.InlineFlows 5 | { 6 | public class MockTenantedScope : ITenantedScope 7 | { 8 | public async Task GetTenantId() 9 | { 10 | return "1"; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/wasm/BlazorForms.Wasm.InlineFlows/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Components.Web 2 | -------------------------------------------------------------------------------- /src/wasm/BlazorForms.Wasm.InlineFlows/wwwroot/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProCodersPtyLtd/BlazorForms/ba0f0dafe27a29bbcd6efb2ce9009f57577b01b4/src/wasm/BlazorForms.Wasm.InlineFlows/wwwroot/background.png -------------------------------------------------------------------------------- /src/wasm/BlazorForms.Wasm.InlineFlows/wwwroot/exampleJsInterop.js: -------------------------------------------------------------------------------- 1 | // This is a JavaScript module that is loaded on demand. It can export any number of 2 | // functions, and may import other JavaScript modules if required. 3 | 4 | export function showPrompt(message) { 5 | return prompt(message, 'Type anything here'); 6 | } 7 | -------------------------------------------------------------------------------- /tests/BlazorForms.IntegrationTests.Server/WeatherForecast.cs: -------------------------------------------------------------------------------- 1 | namespace BlazorForms.Integration.Tests.Server 2 | { 3 | public class WeatherForecast 4 | { 5 | public DateTime Date { get; set; } 6 | 7 | public int TemperatureC { get; set; } 8 | 9 | public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); 10 | 11 | public string? Summary { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /tests/BlazorForms.IntegrationTests.Server/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tests/BlazorForms.Platform.Tests/HighStore/Model/Role.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using BlazorForms.Storage; 3 | 4 | namespace BlazorForms.Platform.Tests.HighStore 5 | { 6 | public class Role : IEntity, IFlowModel 7 | { 8 | public virtual int Id { get; set; } 9 | public virtual bool Deleted { get; set; } 10 | public virtual string Name { get; set; } 11 | 12 | // FK 13 | public List RefUserRoleLink { get; } = new(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/BlazorForms.Platform.Tests/HighStore/Model/UserRoleLink.cs: -------------------------------------------------------------------------------- 1 | using BlazorForms.Flows.Definitions; 2 | using BlazorForms.Storage; 3 | 4 | namespace BlazorForms.Platform.Tests.HighStore 5 | { 6 | public class UserRoleLink : IEntity, IFlowModel 7 | { 8 | public virtual int Id { get; set; } 9 | public virtual bool Deleted { get; set; } 10 | public virtual int UserId { get; set; } 11 | public virtual int RoleId { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/BlazorForms.Platform.Tests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /tests/BlazorForms.Proxyma.Tests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /tests/BlazorForms.Shared.Tests/Models/EmailModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared.Tests.Models 6 | { 7 | public class EmailModel 8 | { 9 | public virtual int? EmailId { get; set; } 10 | 11 | public virtual string EmailAddress { get; set; } 12 | 13 | public virtual string EmailTypeCode { get; set; } 14 | 15 | public virtual bool IsPrimary { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/BlazorForms.Shared.Tests/Models/PhoneModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Shared.Tests.Models 6 | { 7 | public class PhoneModel 8 | { 9 | public virtual int? PhoneId { get; set; } 10 | 11 | public virtual string PhoneNumber { get; set; } 12 | 13 | public virtual string PhoneTypeCode { get; set; } 14 | 15 | public virtual bool IsPrimary { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/BlazorForms.Shared.Tests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Core/MockNavigationManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Microsoft.AspNetCore.Components; 5 | 6 | namespace BlazorForms.Tests.Framework.Core 7 | { 8 | public class MockNavigationManager : NavigationManager 9 | { 10 | protected override void NavigateToCore(string uri, bool forceLoad) 11 | { 12 | throw new NotImplementedException(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Core/MockObjectCloner.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using BlazorForms.Flows; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace BlazorForms.Tests.Framework.Core 9 | { 10 | public class MockObjectCloner : IObjectCloner 11 | { 12 | public async Task CloneObject(T source) 13 | { 14 | throw new NotImplementedException(); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Crm/Artel/ArtelMemberEditFlow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform.Crm.Business.Artel 6 | { 7 | public class ArtelMemberEditFlow 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Crm/BusinessObjects/AuthUser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Security.Claims; 4 | using System.Text; 5 | 6 | namespace BlazorForms.Platform.Crm.Domain.Models 7 | { 8 | public class AuthUser 9 | { 10 | public ClaimsPrincipal User { get; set; } 11 | public string Email { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Crm/BusinessObjects/FrequencyTypeDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace BlazorForms.Platform.Crm.Domain.Models.Artel 6 | { 7 | public class FrequencyTypeDetails 8 | { 9 | public virtual string Code { get; set; } 10 | public virtual string Name { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Crm/Definitions/IAccessService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | 4 | namespace BlazorForms.Platform.Crm.Definitions.Services 5 | { 6 | public interface IAccessService 7 | { 8 | Task> GetUserClaims(string email); 9 | Task CheckClaim(string email, string claim); 10 | Task UpdateUserClaims(string email, IEnumerable claims); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Crm/Definitions/IEmailService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | using BlazorForms.Platform.Crm.Domain.Models.Messages; 6 | 7 | namespace BlazorForms.Platform.Crm.Definitions.Services 8 | { 9 | public interface IEmailService 10 | { 11 | Task SendMessage(EmailMessage message); 12 | Task IsValidAddress(string email); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Crm/Models/ArtelMemberModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using BlazorForms.Flows.Definitions; 5 | using BlazorForms.Platform.Crm.Domain.Models.Artel; 6 | 7 | namespace BlazorForms.Platform.Crm.Artel 8 | { 9 | public class ArtelMemberModel : FlowModelBase 10 | { 11 | public virtual ArtelMemberDetails Member { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Crm/Models/ArtelProjectListModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using BlazorForms.Flows.Definitions; 5 | using BlazorForms.Platform.Crm.Domain.Models; 6 | using BlazorForms.Platform.Crm.Domain.Models.Artel; 7 | 8 | namespace BlazorForms.Platform.Crm.Artel 9 | { 10 | public class ArtelProjectListModel : FlowModelBase 11 | { 12 | public virtual List Projects { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/BlazorForms.Tests.Framework/Crm/Models/ArtelTeamListModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using BlazorForms.Flows.Definitions; 5 | using BlazorForms.Platform.Crm.Domain.Models.Artel; 6 | 7 | namespace BlazorForms.Platform.Crm.Artel 8 | { 9 | public class ArtelTeamListModel : FlowModelBase 10 | { 11 | public virtual List Members { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/FastReflectionBenchmarkApp/Program.cs: -------------------------------------------------------------------------------- 1 | using BenchmarkDotNet.Running; 2 | using FastReflectionBenchmarkApp; 3 | 4 | BenchmarkRunner.Run(); 5 | //string s = ReflectionUsage.GetValuePropertyDictionary(); 6 | //s = ReflectionUsage.GetValueNestedObjectDictionary(); 7 | //var s = ReflectionUsage.NestedEmitterFastGet(); 8 | Console.ReadLine(); --------------------------------------------------------------------------------