Repository: HenJigg/wpf-abp
Branch: master
Commit: fa83dae95acb
Files: 1609
Total size: 10.5 MB
Directory structure:
gitextract_zbohz0js/
├── .gitattributes
├── .gitignore
├── LICENSE
├── README-en.md
├── README.md
└── aspnet-core/
├── .gitattributes
├── .gitignore
├── AppFramework.Mobile.sln
├── AppFramework.Wpf.sln
├── Settings.XamlStyler
├── common.props
└── src/
├── AppFramework.Admin/
│ ├── AdminModuleExtensions.cs
│ ├── AppFramework.Admin.csproj
│ ├── Behaviors/
│ │ ├── ChatMessageListViewBehavior.cs
│ │ └── PasswordBehavior.cs
│ ├── Extensions/
│ │ └── EnumerableExtensions.cs
│ ├── Models/
│ │ ├── AdminModuleMapper.cs
│ │ ├── Auditlogs/
│ │ │ ├── AuditLogListModel.cs
│ │ │ ├── GetAuditLogsFilter.cs
│ │ │ └── GetEntityChangeFilter.cs
│ │ ├── Dashboard/
│ │ │ ├── AreaSeriesChart3DModel.cs
│ │ │ ├── DoughnutChartPopulations.cs
│ │ │ └── TopStatusItem.cs
│ │ ├── DynamicProperty/
│ │ │ └── DynamicPropertyModel.cs
│ │ ├── Edition/
│ │ │ ├── EditionCreateModel.cs
│ │ │ ├── EditionListModel.cs
│ │ │ └── FlatFeatureModel.cs
│ │ ├── Filters/
│ │ │ ├── PagedAndSortedFilter.cs
│ │ │ └── PagedFilter.cs
│ │ ├── Language/
│ │ │ ├── Language.cs
│ │ │ ├── LanguageListModel.cs
│ │ │ └── LanguageTextListModel.cs
│ │ ├── Organizations/
│ │ │ ├── CreateOrganizationUnitModel.cs
│ │ │ ├── OrganizationListModel.cs
│ │ │ └── OrganizationUnitModel.cs
│ │ ├── Permission/
│ │ │ ├── PermissionHelper.cs
│ │ │ └── PermissionModel.cs
│ │ ├── Roles/
│ │ │ ├── ChooseItem.cs
│ │ │ ├── RoleEditModel.cs
│ │ │ ├── RoleListModel.cs
│ │ │ └── UserRoleModel.cs
│ │ ├── Tenants/
│ │ │ ├── GetTenantsFilter.cs
│ │ │ └── TenantListModel.cs
│ │ ├── Update/
│ │ │ └── VersionListModel.cs
│ │ └── Users/
│ │ ├── UserCreateOrUpdateModel.cs
│ │ ├── UserEditModel.cs
│ │ ├── UserForEditModel.cs
│ │ ├── UserListModel.cs
│ │ └── UserLoginInfoModel.cs
│ ├── Services/
│ │ ├── Account/
│ │ │ ├── AccountService.cs
│ │ │ ├── AccountStorageService.cs
│ │ │ ├── ApplicationService.cs
│ │ │ ├── IAccountService.cs
│ │ │ ├── IApplicationService.cs
│ │ │ └── UserConfigurationManager.cs
│ │ ├── Features/
│ │ │ ├── FeaturesService.cs
│ │ │ └── IFeaturesService.cs
│ │ ├── Mapper/
│ │ │ └── AppMapper.cs
│ │ ├── Navigation/
│ │ │ ├── INavigationMenuService.cs
│ │ │ ├── NavigationMenuService.cs
│ │ │ ├── NavigationService.cs
│ │ │ └── NavigationSingleMenuService.cs
│ │ ├── Notification/
│ │ │ └── NotificationService.cs
│ │ ├── Permission/
│ │ │ ├── IPermissionTreesService.cs
│ │ │ ├── PermissionPorxyService.cs
│ │ │ ├── PermissionService.cs
│ │ │ └── PermissionTreesService.cs
│ │ ├── ServiceExtensions.cs
│ │ └── Update/
│ │ └── UpdateService.cs
│ ├── Validations/
│ │ ├── AdminValidatorExtensions.cs
│ │ ├── EditionValidator.cs
│ │ ├── OrganizationUnitValidator.cs
│ │ ├── SettingsValidator.cs
│ │ ├── TenantValidator.cs
│ │ ├── UserValidator.cs
│ │ └── VersionValidator.cs
│ └── ViewModels/
│ ├── Account/
│ │ ├── ChangeAvatarViewModel.cs
│ │ ├── ChangePasswordViewModel.cs
│ │ ├── CreateLinkedAccountViewModel.cs
│ │ ├── EmailActivationViewModel.cs
│ │ ├── ForgotPasswordViewModel.cs
│ │ ├── LoginAttemptsViewModel.cs
│ │ ├── ManageLinkedAccountsViewModel.cs
│ │ ├── ManageNewUserViewModel.cs
│ │ ├── ManageUserDelegationsViewModel.cs
│ │ ├── MyProfileViewModel.cs
│ │ ├── MySettingsViewModel.cs
│ │ ├── NotificationViewModel.cs
│ │ ├── SelectDateRangeViewModel.cs
│ │ └── SendTwoFactorCodeViewModel.cs
│ ├── Auditlogs/
│ │ ├── AuditLogsDetailsViewModel.cs
│ │ └── AuditLogsViewModel.cs
│ ├── Chat/
│ │ ├── FriendsChatViewModel.cs
│ │ └── FriendsViewModel.cs
│ ├── Dashboard/
│ │ └── DashboardViewModel.cs
│ ├── Demo/
│ │ └── DemoViewModel.cs
│ ├── DynamicProperty/
│ │ ├── DynamicAddEntityViewModel.cs
│ │ ├── DynamicEditValuesViewModel.cs
│ │ ├── DynamicEntityDetailsViewModel.cs
│ │ ├── DynamicPropertyDetailsViewModel.cs
│ │ └── DynamicPropertyViewModel.cs
│ ├── Edition/
│ │ ├── EditionDetailsViewModel.cs
│ │ └── EditionViewModel.cs
│ ├── Language/
│ │ ├── LanguageDetailsViewModel.cs
│ │ ├── LanguageTextDetailsViewModel.cs
│ │ ├── LanguageTextViewModel.cs
│ │ └── LanguageViewModel.cs
│ ├── LoginViewModel.cs
│ ├── MainTabsViewModel.cs
│ ├── Organizations/
│ │ ├── AddRolesViewModel.cs
│ │ ├── AddUsersViewModel.cs
│ │ ├── OrganizationsAddViewModel.cs
│ │ └── OrganizationsViewModel.cs
│ ├── Roles/
│ │ ├── RoleDetailsViewModel.cs
│ │ ├── RoleViewModel.cs
│ │ └── SelectedPermissionViewModel.cs
│ ├── Settings/
│ │ └── SettingsViewModel.cs
│ ├── Shared/
│ │ ├── DemoUiViewModel.cs
│ │ ├── FirstChangedPwdViewModel.cs
│ │ ├── SelectTenantViewModel.cs
│ │ └── UserPanelViewModel.cs
│ ├── SplashScreenViewModel.cs
│ ├── TaskBarViewModel.cs
│ ├── Tenants/
│ │ ├── TenantChangeFeaturesViewModel.cs
│ │ ├── TenantDetailsViewModel.cs
│ │ └── TenantViewModel.cs
│ ├── Users/
│ │ ├── SelectedUserViewModel.cs
│ │ ├── UserChangePermissionViewModel.cs
│ │ ├── UserDetailsViewModel.cs
│ │ └── UserViewModel.cs
│ ├── Version/
│ │ ├── VersionManagerDetailsViewModel.cs
│ │ └── VersionManagerViewModel.cs
│ └── Visual/
│ └── VisualViewModel.cs
├── AppFramework.Admin.HandyUI/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── AppFramework.Admin.HandyUI.csproj
│ ├── Converters/
│ │ └── MenuTitleConverter.cs
│ ├── Extensions/
│ │ ├── ContainerExtensions.cs
│ │ └── TabControlRegionAdapter.cs
│ ├── HandyUIStartService.cs
│ ├── Localization/
│ │ ├── LocalTranslationHelper.cs
│ │ ├── LocaleCulture.cs
│ │ └── Resources/
│ │ ├── LocalTranslation.Designer.cs
│ │ ├── LocalTranslation.resx
│ │ └── LocalTranslation.zh-Hans.resx
│ ├── Services/
│ │ ├── Features/
│ │ │ └── FeaturesService.cs
│ │ ├── Permission/
│ │ │ └── PermissionTreesService.cs
│ │ └── Sessions/
│ │ └── DialogHostService.cs
│ ├── Themes/
│ │ ├── Button.xaml
│ │ ├── Controls/
│ │ │ ├── Card.cs
│ │ │ ├── DataPager.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── IntToStringConverter.cs
│ │ │ ├── NotConverter.cs
│ │ │ ├── PopupBox.cs
│ │ │ ├── PopupEx.cs
│ │ │ ├── ScrollViewerAssist.cs
│ │ │ ├── TabAssist.cs
│ │ │ ├── TabCloseItem.cs
│ │ │ └── TabControl.cs
│ │ ├── DataPager.xaml
│ │ ├── Generic.xaml
│ │ ├── Host/
│ │ │ ├── DialogClosingEventArgs.cs
│ │ │ ├── DialogClosingEventHandler.cs
│ │ │ ├── DialogHost.cs
│ │ │ ├── DialogHost.xaml
│ │ │ ├── DialogHostEx.cs
│ │ │ ├── DialogHostServiceExtensions.cs
│ │ │ ├── DialogOpenedEventArgs.cs
│ │ │ ├── DialogOpenedEventHandler.cs
│ │ │ ├── DialogSession.cs
│ │ │ ├── TransitionAssist.cs
│ │ │ └── ValidationAssist.cs
│ │ └── TabControl.xaml
│ ├── Views/
│ │ ├── Account/
│ │ │ ├── ChangeAvatarView.xaml
│ │ │ ├── ChangeAvatarView.xaml.cs
│ │ │ ├── ChangePasswordView.xaml
│ │ │ ├── ChangePasswordView.xaml.cs
│ │ │ ├── CreateLinkedAccountView.xaml
│ │ │ ├── CreateLinkedAccountView.xaml.cs
│ │ │ ├── EmailActivationView.xaml
│ │ │ ├── EmailActivationView.xaml.cs
│ │ │ ├── ForgotPasswordView.xaml
│ │ │ ├── ForgotPasswordView.xaml.cs
│ │ │ ├── LoginAttemptsView.xaml
│ │ │ ├── LoginAttemptsView.xaml.cs
│ │ │ ├── ManageLinkedAccountsView.xaml
│ │ │ ├── ManageLinkedAccountsView.xaml.cs
│ │ │ ├── ManageNewUserView.xaml
│ │ │ ├── ManageNewUserView.xaml.cs
│ │ │ ├── ManageUserDelegationsView.xaml
│ │ │ ├── ManageUserDelegationsView.xaml.cs
│ │ │ ├── MyProfileView.xaml
│ │ │ ├── MyProfileView.xaml.cs
│ │ │ ├── MySettingsView.xaml
│ │ │ ├── MySettingsView.xaml.cs
│ │ │ ├── NotificationView.xaml
│ │ │ ├── NotificationView.xaml.cs
│ │ │ ├── SelectDateRangeView.xaml
│ │ │ ├── SelectDateRangeView.xaml.cs
│ │ │ ├── SendTwoFactorCodeView.xaml
│ │ │ └── SendTwoFactorCodeView.xaml.cs
│ │ ├── Auditlogs/
│ │ │ ├── AuditLogsDetailsView.xaml
│ │ │ ├── AuditLogsDetailsView.xaml.cs
│ │ │ ├── AuditLogsView.xaml
│ │ │ └── AuditLogsView.xaml.cs
│ │ ├── Chat/
│ │ │ ├── FriendsChatView.xaml
│ │ │ ├── FriendsChatView.xaml.cs
│ │ │ ├── FriendsView.xaml
│ │ │ ├── FriendsView.xaml.cs
│ │ │ └── Selectors/
│ │ │ └── ChatDataTemplateSelector.cs
│ │ ├── Dashboard/
│ │ │ ├── DashboardView.xaml
│ │ │ └── DashboardView.xaml.cs
│ │ ├── DynamicProperty/
│ │ │ ├── DynamicAddEntityView.xaml
│ │ │ ├── DynamicAddEntityView.xaml.cs
│ │ │ ├── DynamicEditValuesView.xaml
│ │ │ ├── DynamicEditValuesView.xaml.cs
│ │ │ ├── DynamicEntityDetailsView.xaml
│ │ │ ├── DynamicEntityDetailsView.xaml.cs
│ │ │ ├── DynamicPropertyDetailsView.xaml
│ │ │ ├── DynamicPropertyDetailsView.xaml.cs
│ │ │ ├── DynamicPropertyView.xaml
│ │ │ └── DynamicPropertyView.xaml.cs
│ │ ├── Edition/
│ │ │ ├── EditionDetailsView.xaml
│ │ │ ├── EditionDetailsView.xaml.cs
│ │ │ ├── EditionView.xaml
│ │ │ └── EditionView.xaml.cs
│ │ ├── Language/
│ │ │ ├── LanguageDetailsView.xaml
│ │ │ ├── LanguageDetailsView.xaml.cs
│ │ │ ├── LanguageTextDetailsView.xaml
│ │ │ ├── LanguageTextDetailsView.xaml.cs
│ │ │ ├── LanguageTextView.xaml
│ │ │ ├── LanguageTextView.xaml.cs
│ │ │ ├── LanguageView.xaml
│ │ │ └── LanguageView.xaml.cs
│ │ ├── LoginView.xaml
│ │ ├── LoginView.xaml.cs
│ │ ├── MainTabsView.xaml
│ │ ├── MainTabsView.xaml.cs
│ │ ├── Organizations/
│ │ │ ├── AddRolesView.xaml
│ │ │ ├── AddRolesView.xaml.cs
│ │ │ ├── AddUsersView.xaml
│ │ │ ├── AddUsersView.xaml.cs
│ │ │ ├── OrganizationsAddView.xaml
│ │ │ ├── OrganizationsAddView.xaml.cs
│ │ │ ├── OrganizationsView.xaml
│ │ │ └── OrganizationsView.xaml.cs
│ │ ├── Roles/
│ │ │ ├── RoleDetailsView.xaml
│ │ │ ├── RoleDetailsView.xaml.cs
│ │ │ ├── RoleView.xaml
│ │ │ ├── RoleView.xaml.cs
│ │ │ ├── SelectedPermissionView.xaml
│ │ │ └── SelectedPermissionView.xaml.cs
│ │ ├── Settings/
│ │ │ ├── SettingsView.xaml
│ │ │ └── SettingsView.xaml.cs
│ │ ├── Shared/
│ │ │ ├── DemoUiView.xaml
│ │ │ ├── DemoUiView.xaml.cs
│ │ │ ├── FirstChangedPwdView.xaml
│ │ │ ├── FirstChangedPwdView.xaml.cs
│ │ │ ├── HostMessageBoxView.xaml
│ │ │ ├── HostMessageBoxView.xaml.cs
│ │ │ ├── MessageBoxView.xaml
│ │ │ ├── MessageBoxView.xaml.cs
│ │ │ ├── SelectTenantView.xaml
│ │ │ ├── SelectTenantView.xaml.cs
│ │ │ ├── SplashScreenView.xaml
│ │ │ ├── SplashScreenView.xaml.cs
│ │ │ ├── UserPanelView.xaml
│ │ │ └── UserPanelView.xaml.cs
│ │ ├── Tenants/
│ │ │ ├── TenantChangeFeaturesView.xaml
│ │ │ ├── TenantChangeFeaturesView.xaml.cs
│ │ │ ├── TenantDetailsView.xaml
│ │ │ ├── TenantDetailsView.xaml.cs
│ │ │ ├── TenantView.xaml
│ │ │ └── TenantView.xaml.cs
│ │ ├── Users/
│ │ │ ├── SelectedUserView.xaml
│ │ │ ├── SelectedUserView.xaml.cs
│ │ │ ├── UserChangePermissionView.xaml
│ │ │ ├── UserChangePermissionView.xaml.cs
│ │ │ ├── UserDetailsView.xaml
│ │ │ ├── UserDetailsView.xaml.cs
│ │ │ ├── UserView.xaml
│ │ │ └── UserView.xaml.cs
│ │ ├── Version/
│ │ │ ├── VersionManagerDetailsView.xaml
│ │ │ ├── VersionManagerDetailsView.xaml.cs
│ │ │ ├── VersionManagerView.xaml
│ │ │ └── VersionManagerView.xaml.cs
│ │ └── Visual/
│ │ ├── VisualView.xaml
│ │ └── VisualView.xaml.cs
│ ├── VisualViewModel.cs
│ └── nlog.config
├── AppFramework.Admin.MaterialUI/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── AppFramework.Admin.MaterialUI.csproj
│ ├── Converters/
│ │ ├── ColorToBrushConverter.cs
│ │ └── MenuTitleConverter.cs
│ ├── Extensions/
│ │ ├── ContainerExtensions.cs
│ │ └── TabControlRegionAdapter.cs
│ ├── Localization/
│ │ ├── LocalTranslationHelper.cs
│ │ ├── LocaleCulture.cs
│ │ └── Resources/
│ │ ├── LocalTranslation.Designer.cs
│ │ ├── LocalTranslation.resx
│ │ └── LocalTranslation.zh-Hans.resx
│ ├── MaterialUIStartService.cs
│ ├── Services/
│ │ ├── Features/
│ │ │ └── FeaturesService.cs
│ │ ├── Permission/
│ │ │ └── PermissionTreesService.cs
│ │ └── Sessions/
│ │ └── DialogHostService.cs
│ ├── Themes/
│ │ ├── Button.xaml
│ │ ├── Controls/
│ │ │ ├── DataPager.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── IntToStringConverter.cs
│ │ │ ├── ScrollViewerAssist.cs
│ │ │ ├── TabAssist.cs
│ │ │ ├── TabCloseItem.cs
│ │ │ └── TabControl.cs
│ │ ├── DataPager.xaml
│ │ ├── Generic.xaml
│ │ └── TabControl.xaml
│ ├── Views/
│ │ ├── Account/
│ │ │ ├── ChangeAvatarView.xaml
│ │ │ ├── ChangeAvatarView.xaml.cs
│ │ │ ├── ChangePasswordView.xaml
│ │ │ ├── ChangePasswordView.xaml.cs
│ │ │ ├── CreateLinkedAccountView.xaml
│ │ │ ├── CreateLinkedAccountView.xaml.cs
│ │ │ ├── EmailActivationView.xaml
│ │ │ ├── EmailActivationView.xaml.cs
│ │ │ ├── ForgotPasswordView.xaml
│ │ │ ├── ForgotPasswordView.xaml.cs
│ │ │ ├── LoginAttemptsView.xaml
│ │ │ ├── LoginAttemptsView.xaml.cs
│ │ │ ├── ManageLinkedAccountsView.xaml
│ │ │ ├── ManageLinkedAccountsView.xaml.cs
│ │ │ ├── ManageNewUserView.xaml
│ │ │ ├── ManageNewUserView.xaml.cs
│ │ │ ├── ManageUserDelegationsView.xaml
│ │ │ ├── ManageUserDelegationsView.xaml.cs
│ │ │ ├── MyProfileView.xaml
│ │ │ ├── MyProfileView.xaml.cs
│ │ │ ├── MySettingsView.xaml
│ │ │ ├── MySettingsView.xaml.cs
│ │ │ ├── NotificationView.xaml
│ │ │ ├── NotificationView.xaml.cs
│ │ │ ├── SelectDateRangeView.xaml
│ │ │ ├── SelectDateRangeView.xaml.cs
│ │ │ ├── SendTwoFactorCodeView.xaml
│ │ │ └── SendTwoFactorCodeView.xaml.cs
│ │ ├── Auditlogs/
│ │ │ ├── AuditLogsDetailsView.xaml
│ │ │ ├── AuditLogsDetailsView.xaml.cs
│ │ │ ├── AuditLogsView.xaml
│ │ │ └── AuditLogsView.xaml.cs
│ │ ├── Chat/
│ │ │ ├── FriendsChatView.xaml
│ │ │ ├── FriendsChatView.xaml.cs
│ │ │ ├── FriendsView.xaml
│ │ │ ├── FriendsView.xaml.cs
│ │ │ └── Selectors/
│ │ │ └── ChatDataTemplateSelector.cs
│ │ ├── Dashboard/
│ │ │ ├── DashboardView.xaml
│ │ │ └── DashboardView.xaml.cs
│ │ ├── DynamicProperty/
│ │ │ ├── DynamicAddEntityView.xaml
│ │ │ ├── DynamicAddEntityView.xaml.cs
│ │ │ ├── DynamicEditValuesView.xaml
│ │ │ ├── DynamicEditValuesView.xaml.cs
│ │ │ ├── DynamicEntityDetailsView.xaml
│ │ │ ├── DynamicEntityDetailsView.xaml.cs
│ │ │ ├── DynamicPropertyDetailsView.xaml
│ │ │ ├── DynamicPropertyDetailsView.xaml.cs
│ │ │ ├── DynamicPropertyView.xaml
│ │ │ └── DynamicPropertyView.xaml.cs
│ │ ├── Edition/
│ │ │ ├── EditionDetailsView.xaml
│ │ │ ├── EditionDetailsView.xaml.cs
│ │ │ ├── EditionView.xaml
│ │ │ └── EditionView.xaml.cs
│ │ ├── Language/
│ │ │ ├── LanguageDetailsView.xaml
│ │ │ ├── LanguageDetailsView.xaml.cs
│ │ │ ├── LanguageTextDetailsView.xaml
│ │ │ ├── LanguageTextDetailsView.xaml.cs
│ │ │ ├── LanguageTextView.xaml
│ │ │ ├── LanguageTextView.xaml.cs
│ │ │ ├── LanguageView.xaml
│ │ │ └── LanguageView.xaml.cs
│ │ ├── LoginView.xaml
│ │ ├── LoginView.xaml.cs
│ │ ├── MainTabsView.xaml
│ │ ├── MainTabsView.xaml.cs
│ │ ├── Organizations/
│ │ │ ├── AddRolesView.xaml
│ │ │ ├── AddRolesView.xaml.cs
│ │ │ ├── AddUsersView.xaml
│ │ │ ├── AddUsersView.xaml.cs
│ │ │ ├── OrganizationsAddView.xaml
│ │ │ ├── OrganizationsAddView.xaml.cs
│ │ │ ├── OrganizationsView.xaml
│ │ │ └── OrganizationsView.xaml.cs
│ │ ├── Roles/
│ │ │ ├── RoleDetailsView.xaml
│ │ │ ├── RoleDetailsView.xaml.cs
│ │ │ ├── RoleView.xaml
│ │ │ ├── RoleView.xaml.cs
│ │ │ ├── SelectedPermissionView.xaml
│ │ │ └── SelectedPermissionView.xaml.cs
│ │ ├── Settings/
│ │ │ ├── SettingsView.xaml
│ │ │ └── SettingsView.xaml.cs
│ │ ├── Shared/
│ │ │ ├── DemoUiView.xaml
│ │ │ ├── DemoUiView.xaml.cs
│ │ │ ├── FirstChangedPwdView.xaml
│ │ │ ├── FirstChangedPwdView.xaml.cs
│ │ │ ├── HostMessageBoxView.xaml
│ │ │ ├── HostMessageBoxView.xaml.cs
│ │ │ ├── MessageBoxView.xaml
│ │ │ ├── MessageBoxView.xaml.cs
│ │ │ ├── SelectTenantView.xaml
│ │ │ ├── SelectTenantView.xaml.cs
│ │ │ ├── SplashScreenView.xaml
│ │ │ ├── SplashScreenView.xaml.cs
│ │ │ ├── UserPanelView.xaml
│ │ │ └── UserPanelView.xaml.cs
│ │ ├── Tenants/
│ │ │ ├── TenantChangeFeaturesView.xaml
│ │ │ ├── TenantChangeFeaturesView.xaml.cs
│ │ │ ├── TenantDetailsView.xaml
│ │ │ ├── TenantDetailsView.xaml.cs
│ │ │ ├── TenantView.xaml
│ │ │ └── TenantView.xaml.cs
│ │ ├── Users/
│ │ │ ├── SelectedUserView.xaml
│ │ │ ├── SelectedUserView.xaml.cs
│ │ │ ├── UserChangePermissionView.xaml
│ │ │ ├── UserChangePermissionView.xaml.cs
│ │ │ ├── UserDetailsView.xaml
│ │ │ ├── UserDetailsView.xaml.cs
│ │ │ ├── UserView.xaml
│ │ │ └── UserView.xaml.cs
│ │ ├── Version/
│ │ │ ├── VersionManagerDetailsView.xaml
│ │ │ ├── VersionManagerDetailsView.xaml.cs
│ │ │ ├── VersionManagerView.xaml
│ │ │ └── VersionManagerView.xaml.cs
│ │ └── Visual/
│ │ ├── VisualView.xaml
│ │ └── VisualView.xaml.cs
│ ├── VisualViewModel.cs
│ └── nlog.config
├── AppFramework.Admin.SyncUI/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── AppFramework.Admin.SyncUI.csproj
│ ├── Converters/
│ │ └── MenuTitleConverter.cs
│ ├── Extensions/
│ │ ├── ContainerExtensions.cs
│ │ └── SfTabControlRegionAdapter.cs
│ ├── Localization/
│ │ ├── LocalTranslationHelper.cs
│ │ ├── LocaleCulture.cs
│ │ └── Resources/
│ │ ├── LocalTranslation.Designer.cs
│ │ ├── LocalTranslation.resx
│ │ └── LocalTranslation.zh-Hans.resx
│ ├── Resources/
│ │ ├── en-US/
│ │ │ ├── Syncfusion.Chart.WPF.resx
│ │ │ ├── Syncfusion.Diagram.Wpf.resx
│ │ │ ├── Syncfusion.Edit.Wpf.resx
│ │ │ ├── Syncfusion.Gantt.WPF.resx
│ │ │ ├── Syncfusion.Grid.Wpf.resx
│ │ │ ├── Syncfusion.OlapChart.WPF.resx
│ │ │ ├── Syncfusion.OlapClient.WPF.resx
│ │ │ ├── Syncfusion.OlapGauge.wpf.resx
│ │ │ ├── Syncfusion.OlapGrid.WPF.resx
│ │ │ ├── Syncfusion.OlapShared.WPF.resx
│ │ │ ├── Syncfusion.OlapTools.WPF.resx
│ │ │ ├── Syncfusion.PdfViewer.WPF.resx
│ │ │ ├── Syncfusion.PivotAnalysis.Wpf.resx
│ │ │ ├── Syncfusion.PropertyGrid.Wpf.resx
│ │ │ ├── Syncfusion.Schedule.WPF.resx
│ │ │ ├── Syncfusion.SfChart.WPF.resx
│ │ │ ├── Syncfusion.SfColorPalette.Wpf.resx
│ │ │ ├── Syncfusion.SfDiagramRibbon.WPF.resx
│ │ │ ├── Syncfusion.SfGrid.WPF.resx
│ │ │ ├── Syncfusion.SfImageEditor.WPF.resx
│ │ │ ├── Syncfusion.SfInput.Wpf.resx
│ │ │ ├── Syncfusion.SfKanban.WPF.resx
│ │ │ ├── Syncfusion.SfRichTextBoxAdv.WPF.resx
│ │ │ ├── Syncfusion.SfRichTextRibbon.WPF.resx
│ │ │ ├── Syncfusion.SfScheduler.WPF.resx
│ │ │ ├── Syncfusion.SfShared.Wpf.resx
│ │ │ ├── Syncfusion.SfSmithChart.WPF.resx
│ │ │ ├── Syncfusion.SfSpellChecker.WPF.resx
│ │ │ ├── Syncfusion.SfSpreadsheet.Wpf.resx
│ │ │ ├── Syncfusion.SfSunburstChart.WPF.resx
│ │ │ ├── Syncfusion.SfTreeView.WPF.resx
│ │ │ ├── Syncfusion.Shared.Wpf.Classic.resx
│ │ │ ├── Syncfusion.Shared.Wpf.resx
│ │ │ ├── Syncfusion.Speradsheet.Wpf.resx
│ │ │ ├── Syncfusion.Tools.Wpf.Classic.resx
│ │ │ ├── Syncfusion.Tools.Wpf.resx
│ │ │ └── Syncfusion.UI.Xaml.Diagram.resx
│ │ └── zh-CN/
│ │ ├── Syncfusion.Chart.WPF.resx
│ │ ├── Syncfusion.Diagram.Wpf.resx
│ │ ├── Syncfusion.Edit.Wpf.resx
│ │ ├── Syncfusion.Gantt.WPF.resx
│ │ ├── Syncfusion.Grid.Wpf.resx
│ │ ├── Syncfusion.OlapChart.WPF.resx
│ │ ├── Syncfusion.OlapClient.WPF.resx
│ │ ├── Syncfusion.OlapGauge.wpf.resx
│ │ ├── Syncfusion.OlapGrid.WPF.resx
│ │ ├── Syncfusion.OlapShared.WPF.resx
│ │ ├── Syncfusion.OlapTools.WPF.resx
│ │ ├── Syncfusion.PdfViewer.WPF.resx
│ │ ├── Syncfusion.PivotAnalysis.Wpf.resx
│ │ ├── Syncfusion.PropertyGrid.Wpf.resx
│ │ ├── Syncfusion.Schedule.WPF.resx
│ │ ├── Syncfusion.SfChart.WPF.resx
│ │ ├── Syncfusion.SfColorPalette.Wpf.resx
│ │ ├── Syncfusion.SfDiagramRibbon.WPF.resx
│ │ ├── Syncfusion.SfGrid.WPF.zh-CN.resx
│ │ ├── Syncfusion.SfImageEditor.WPF.resx
│ │ ├── Syncfusion.SfInput.Wpf.resx
│ │ ├── Syncfusion.SfKanban.WPF.resx
│ │ ├── Syncfusion.SfRichTextBoxAdv.WPF.resx
│ │ ├── Syncfusion.SfRichTextRibbon.WPF.resx
│ │ ├── Syncfusion.SfScheduler.WPF.resx
│ │ ├── Syncfusion.SfShared.Wpf.resx
│ │ ├── Syncfusion.SfSmithChart.WPF.resx
│ │ ├── Syncfusion.SfSpellChecker.WPF.resx
│ │ ├── Syncfusion.SfSpreadsheet.Wpf.resx
│ │ ├── Syncfusion.SfSunburstChart.WPF.resx
│ │ ├── Syncfusion.SfTreeView.WPF.resx
│ │ ├── Syncfusion.Shared.Wpf.Classic.resx
│ │ ├── Syncfusion.Shared.Wpf.resx
│ │ ├── Syncfusion.Speradsheet.Wpf.resx
│ │ ├── Syncfusion.Tools.Wpf.Classic.resx
│ │ ├── Syncfusion.Tools.Wpf.zh-CN.resx
│ │ └── Syncfusion.UI.Xaml.Diagram.resx
│ ├── Services/
│ │ ├── Sessions/
│ │ │ └── DialogHostService.cs
│ │ └── Themes/
│ │ ├── SkinManagerExtensions.cs
│ │ └── ThemeService.cs
│ ├── SyncUIStartService.cs
│ ├── Themes/
│ │ ├── Border.xaml
│ │ ├── Button.xaml
│ │ ├── DataGrid.xaml
│ │ ├── Generic.xaml
│ │ └── Host/
│ │ ├── Card.cs
│ │ ├── DialogClosingEventArgs.cs
│ │ ├── DialogClosingEventHandler.cs
│ │ ├── DialogHost.cs
│ │ ├── DialogHost.xaml
│ │ ├── DialogHostEx.cs
│ │ ├── DialogHostServiceExtensions.cs
│ │ ├── DialogOpenedEventArgs.cs
│ │ ├── DialogOpenedEventHandler.cs
│ │ ├── DialogSession.cs
│ │ ├── PopupEx.cs
│ │ ├── TransitionAssist.cs
│ │ └── ValidationAssist.cs
│ ├── Views/
│ │ ├── Account/
│ │ │ ├── ChangeAvatarView.xaml
│ │ │ ├── ChangeAvatarView.xaml.cs
│ │ │ ├── ChangePasswordView.xaml
│ │ │ ├── ChangePasswordView.xaml.cs
│ │ │ ├── CreateLinkedAccountView.xaml
│ │ │ ├── CreateLinkedAccountView.xaml.cs
│ │ │ ├── EmailActivationView.xaml
│ │ │ ├── EmailActivationView.xaml.cs
│ │ │ ├── ForgotPasswordView.xaml
│ │ │ ├── ForgotPasswordView.xaml.cs
│ │ │ ├── LoginAttemptsView.xaml
│ │ │ ├── LoginAttemptsView.xaml.cs
│ │ │ ├── ManageLinkedAccountsView.xaml
│ │ │ ├── ManageLinkedAccountsView.xaml.cs
│ │ │ ├── ManageNewUserView.xaml
│ │ │ ├── ManageNewUserView.xaml.cs
│ │ │ ├── ManageUserDelegationsView.xaml
│ │ │ ├── ManageUserDelegationsView.xaml.cs
│ │ │ ├── MyProfileView.xaml
│ │ │ ├── MyProfileView.xaml.cs
│ │ │ ├── MySettingsView.xaml
│ │ │ ├── MySettingsView.xaml.cs
│ │ │ ├── NotificationView.xaml
│ │ │ ├── NotificationView.xaml.cs
│ │ │ ├── SelectDateRangeView.xaml
│ │ │ ├── SelectDateRangeView.xaml.cs
│ │ │ ├── SendTwoFactorCodeView.xaml
│ │ │ └── SendTwoFactorCodeView.xaml.cs
│ │ ├── Auditlogs/
│ │ │ ├── AuditLogsDetailsView.xaml
│ │ │ ├── AuditLogsDetailsView.xaml.cs
│ │ │ ├── AuditLogsView.xaml
│ │ │ └── AuditLogsView.xaml.cs
│ │ ├── Chat/
│ │ │ ├── FriendsChatView.xaml
│ │ │ ├── FriendsChatView.xaml.cs
│ │ │ ├── FriendsView.xaml
│ │ │ ├── FriendsView.xaml.cs
│ │ │ └── Selectors/
│ │ │ └── ChatDataTemplateSelector.cs
│ │ ├── Dashboard/
│ │ │ ├── DashboardView.xaml
│ │ │ └── DashboardView.xaml.cs
│ │ ├── Demo/
│ │ │ ├── DemoView.xaml
│ │ │ └── DemoView.xaml.cs
│ │ ├── DynamicProperty/
│ │ │ ├── DynamicAddEntityView.xaml
│ │ │ ├── DynamicAddEntityView.xaml.cs
│ │ │ ├── DynamicEditValuesView.xaml
│ │ │ ├── DynamicEditValuesView.xaml.cs
│ │ │ ├── DynamicEntityDetailsView.xaml
│ │ │ ├── DynamicEntityDetailsView.xaml.cs
│ │ │ ├── DynamicPropertyDetailsView.xaml
│ │ │ ├── DynamicPropertyDetailsView.xaml.cs
│ │ │ ├── DynamicPropertyView.xaml
│ │ │ └── DynamicPropertyView.xaml.cs
│ │ ├── Edition/
│ │ │ ├── EditionDetailsView.xaml
│ │ │ ├── EditionDetailsView.xaml.cs
│ │ │ ├── EditionView.xaml
│ │ │ └── EditionView.xaml.cs
│ │ ├── Language/
│ │ │ ├── LanguageDetailsView.xaml
│ │ │ ├── LanguageDetailsView.xaml.cs
│ │ │ ├── LanguageTextDetailsView.xaml
│ │ │ ├── LanguageTextDetailsView.xaml.cs
│ │ │ ├── LanguageTextView.xaml
│ │ │ ├── LanguageTextView.xaml.cs
│ │ │ ├── LanguageView.xaml
│ │ │ └── LanguageView.xaml.cs
│ │ ├── LoginView.xaml
│ │ ├── LoginView.xaml.cs
│ │ ├── MainTabsView.xaml
│ │ ├── MainTabsView.xaml.cs
│ │ ├── Organizations/
│ │ │ ├── AddRolesView.xaml
│ │ │ ├── AddRolesView.xaml.cs
│ │ │ ├── AddUsersView.xaml
│ │ │ ├── AddUsersView.xaml.cs
│ │ │ ├── OrganizationsAddView.xaml
│ │ │ ├── OrganizationsAddView.xaml.cs
│ │ │ ├── OrganizationsView.xaml
│ │ │ └── OrganizationsView.xaml.cs
│ │ ├── Roles/
│ │ │ ├── RoleDetailsView.xaml
│ │ │ ├── RoleDetailsView.xaml.cs
│ │ │ ├── RoleView.xaml
│ │ │ ├── RoleView.xaml.cs
│ │ │ ├── SelectedPermissionView.xaml
│ │ │ └── SelectedPermissionView.xaml.cs
│ │ ├── Settings/
│ │ │ ├── SettingsView.xaml
│ │ │ └── SettingsView.xaml.cs
│ │ ├── Shared/
│ │ │ ├── BusyView.xaml
│ │ │ ├── BusyView.xaml.cs
│ │ │ ├── DemoUiView.xaml
│ │ │ ├── DemoUiView.xaml.cs
│ │ │ ├── FirstChangedPwdView.xaml
│ │ │ ├── FirstChangedPwdView.xaml.cs
│ │ │ ├── HostMessageBoxView.xaml
│ │ │ ├── HostMessageBoxView.xaml.cs
│ │ │ ├── MessageBoxView.xaml
│ │ │ ├── MessageBoxView.xaml.cs
│ │ │ ├── SelectTenantView.xaml
│ │ │ ├── SelectTenantView.xaml.cs
│ │ │ ├── SplashScreenView.xaml
│ │ │ ├── SplashScreenView.xaml.cs
│ │ │ ├── UserPanelView.xaml
│ │ │ └── UserPanelView.xaml.cs
│ │ ├── Tenants/
│ │ │ ├── TenantChangeFeaturesView.xaml
│ │ │ ├── TenantChangeFeaturesView.xaml.cs
│ │ │ ├── TenantDetailsView.xaml
│ │ │ ├── TenantDetailsView.xaml.cs
│ │ │ ├── TenantView.xaml
│ │ │ └── TenantView.xaml.cs
│ │ ├── Users/
│ │ │ ├── SelectedUserView.xaml
│ │ │ ├── SelectedUserView.xaml.cs
│ │ │ ├── UserChangePermissionView.xaml
│ │ │ ├── UserChangePermissionView.xaml.cs
│ │ │ ├── UserDetailsView.xaml
│ │ │ ├── UserDetailsView.xaml.cs
│ │ │ ├── UserView.xaml
│ │ │ └── UserView.xaml.cs
│ │ ├── Version/
│ │ │ ├── VersionManagerDetailsView.xaml
│ │ │ ├── VersionManagerDetailsView.xaml.cs
│ │ │ ├── VersionManagerView.xaml
│ │ │ └── VersionManagerView.xaml.cs
│ │ ├── ViewsExtensions.cs
│ │ └── Visual/
│ │ ├── VisualView.xaml
│ │ └── VisualView.xaml.cs
│ └── nlog.config
├── AppFramework.Android/
│ ├── AppFramework.Android.csproj
│ ├── Assets/
│ │ ├── AboutAssets.txt
│ │ └── hello.json
│ ├── Localization/
│ │ └── Locale.cs
│ ├── MainActivity.cs
│ ├── Properties/
│ │ ├── AndroidManifest.xml
│ │ └── AssemblyInfo.cs
│ ├── Renderers/
│ │ ├── BorderlessEditorRenderer.cs
│ │ └── BorderlessEntryRenderer.cs
│ └── Resources/
│ ├── AboutResources.txt
│ ├── Resource.designer.cs
│ ├── drawable/
│ │ └── splash_screen.xml
│ ├── mipmap-anydpi-v26/
│ │ ├── icon.xml
│ │ └── icon_round.xml
│ └── values/
│ ├── colors.xml
│ └── styles.xml
├── AppFramework.Application/
│ ├── AppFramework.Application.csproj
│ ├── AppFrameworkAppServiceBase.cs
│ ├── AppFrameworkApplicationModule.cs
│ ├── Auditing/
│ │ ├── AuditLogAndUser.cs
│ │ ├── AuditLogAppService.cs
│ │ ├── EntityChangeAndUser.cs
│ │ ├── ExpiredAndDeletedAuditLogBackupService.cs
│ │ ├── ExpiredAuditLogDeleterWorker.cs
│ │ ├── Exporting/
│ │ │ ├── AuditLogListExcelExporter.cs
│ │ │ └── IAuditLogListExcelExporter.cs
│ │ ├── INamespaceStripper.cs
│ │ └── NamespaceStripper.cs
│ ├── Authorization/
│ │ ├── AbpLoginResultTypeHelper.cs
│ │ ├── Accounts/
│ │ │ └── AccountAppService.cs
│ │ ├── LogInManager.cs
│ │ ├── Permissions/
│ │ │ ├── PermissionAppService.cs
│ │ │ └── PermissionManagerExtensions.cs
│ │ ├── Roles/
│ │ │ └── RoleAppService.cs
│ │ └── Users/
│ │ ├── Delegation/
│ │ │ └── UserDelegationAppService.cs
│ │ ├── Exporting/
│ │ │ ├── IUserListExcelExporter.cs
│ │ │ └── UserListExcelExporter.cs
│ │ ├── Importing/
│ │ │ ├── Dto/
│ │ │ │ └── ImportUserDto.cs
│ │ │ ├── IInvalidUserExporter.cs
│ │ │ ├── IUserListExcelDataReader.cs
│ │ │ ├── ImportUsersToExcelJob.cs
│ │ │ ├── InvalidUserExporter.cs
│ │ │ └── UserListExcelDataReader.cs
│ │ ├── Password/
│ │ │ └── PasswordExpirationBackgroundWorker.cs
│ │ ├── Profile/
│ │ │ ├── Cache/
│ │ │ │ ├── SmsVerificationCodeCacheExtensions.cs
│ │ │ │ └── SmsVerificationCodeCacheItem.cs
│ │ │ └── ProfileAppService.cs
│ │ ├── UserAppService.cs
│ │ ├── UserLinkAppService.cs
│ │ └── UserLoginAppService.cs
│ ├── Caching/
│ │ └── CachingAppService.cs
│ ├── Chat/
│ │ ├── ChatAppService.cs
│ │ └── Exporting/
│ │ ├── ChatMessageListExcelExporter.cs
│ │ └── IChatMessageListExcelExporter.cs
│ ├── Common/
│ │ └── CommonLookupAppService.cs
│ ├── Configuration/
│ │ ├── Host/
│ │ │ └── HostSettingsAppService.cs
│ │ ├── IUiCustomizationAppService.cs
│ │ ├── SettingsAppServiceBase.cs
│ │ ├── Tenants/
│ │ │ └── TenantSettingsAppService.cs
│ │ └── UiCustomizationSettingsAppService.cs
│ ├── CustomDtoMapper.cs
│ ├── DashboardCustomization/
│ │ ├── DashboardCustomizationAppService.cs
│ │ ├── Dto/
│ │ │ ├── AddNewPageInput.cs
│ │ │ ├── AddNewPageOutput.cs
│ │ │ ├── AddWidgetInput.cs
│ │ │ ├── DashboardOutput.cs
│ │ │ ├── DeletePageInput.cs
│ │ │ ├── GetAvailableWidgetDefinitionsForPageInput.cs
│ │ │ ├── GetDashboardInput.cs
│ │ │ ├── RenamePageInput.cs
│ │ │ ├── SavePageInput.cs
│ │ │ ├── WidgetFilterOutput.cs
│ │ │ └── WidgetOutput.cs
│ │ └── IDashboardCustomizationAppService.cs
│ ├── DataExporting/
│ │ └── Excel/
│ │ ├── EpPlus/
│ │ │ ├── EpPlusExcelExporterBase.cs
│ │ │ └── EpPlusExcelImporterBase.cs
│ │ └── NPOI/
│ │ ├── NpoiExcelExporterBase.cs
│ │ └── NpoiExcelImporterBase.cs
│ ├── Demo/
│ │ └── AbpDemoAppService.cs
│ ├── DemoUiComponents/
│ │ └── DemoUiComponentsAppService.cs
│ ├── DynamicEntityProperties/
│ │ ├── DynamicEntityPropertyAppService.cs
│ │ ├── DynamicEntityPropertyDefinitionAppService.cs
│ │ ├── DynamicEntityPropertyValueAppService.cs
│ │ ├── DynamicPropertyAppService.cs
│ │ └── DynamicPropertyValueAppService.cs
│ ├── Editions/
│ │ ├── EditionAppService.cs
│ │ ├── MoveTenantsToAnotherEditionJob.cs
│ │ └── MoveTenantsToAnotherEditionJobArgs.cs
│ ├── Friendships/
│ │ └── FriendshipAppService.cs
│ ├── Gdpr/
│ │ ├── ChatUserCollectedDataProvider.cs
│ │ ├── IUserCollectedDataProvider.cs
│ │ ├── ProfilePictureUserCollectedDataProvider.cs
│ │ ├── ProfileUserCollectedDataProvider.cs
│ │ └── UserCollectedDataPrepareJob.cs
│ ├── HealthChecks/
│ │ ├── AppFrameworkDbContextHealthCheck.cs
│ │ ├── AppFrameworkDbContextUsersHealthCheck.cs
│ │ └── CacheHealthCheck.cs
│ ├── IO/
│ │ └── AppFileHelper.cs
│ ├── Install/
│ │ ├── Dto/
│ │ │ ├── AppSettingsJsonDto.cs
│ │ │ ├── CheckDatabaseOutput.cs
│ │ │ └── InstallDto.cs
│ │ ├── IInstallAppService.cs
│ │ └── InstallAppService.cs
│ ├── Localization/
│ │ ├── FamFamFamFlagsHelper.cs
│ │ └── LanguageAppService.cs
│ ├── Logging/
│ │ └── WebLogAppService.cs
│ ├── MultiTenancy/
│ │ ├── Accounting/
│ │ │ ├── Dto/
│ │ │ │ ├── CreateInvoiceDto.cs
│ │ │ │ └── InvoiceDto.cs
│ │ │ ├── IInvoiceAppService.cs
│ │ │ └── InvoiceAppService.cs
│ │ ├── HostDashboard/
│ │ │ ├── HostDashboardAppService.cs
│ │ │ ├── IIncomeStatisticsReporter.cs
│ │ │ └── IncomeStatisticsReporter.cs
│ │ ├── Payments/
│ │ │ ├── PayPalPaymentAppService.cs
│ │ │ ├── PaymentAppService.cs
│ │ │ └── StripePaymentAppService.cs
│ │ ├── SubscriptionAppService.cs
│ │ ├── TenantAppService.cs
│ │ └── TenantRegistrationAppService.cs
│ ├── Notifications/
│ │ └── NotificationAppService.cs
│ ├── Organizations/
│ │ └── OrganizationUnitAppService.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Security/
│ │ └── Recaptcha/
│ │ ├── IRecaptchaValidator.cs
│ │ └── NullRecaptchaValidator.cs
│ ├── Sessions/
│ │ └── SessionAppService.cs
│ ├── Tenants/
│ │ └── Dashboard/
│ │ ├── DashboardRandomDataGenerator.cs
│ │ └── TenantDashboardAppService.cs
│ ├── Timing/
│ │ └── TimingAppService.cs
│ ├── UiCustomization/
│ │ ├── IUiCustomizer.cs
│ │ └── IUiThemeCustomizerFactory.cs
│ ├── Url/
│ │ ├── IAppUrlService.cs
│ │ └── NullAppUrlService.cs
│ ├── Version/
│ │ └── AbpVersionsAppService.cs
│ └── WebHooks/
│ ├── WebhookEventAppService.cs
│ ├── WebhookSendAttemptAppService.cs
│ └── WebhookSubscriptionAppService.cs
├── AppFramework.Application.Client/
│ ├── ApiClient/
│ │ ├── AbpApiClient.cs
│ │ ├── AccessTokenManager.cs
│ │ ├── ApiUrlConfig.cs
│ │ ├── ApplicationContext.cs
│ │ ├── AuthenticationHttpHandler.cs
│ │ ├── DebugServerIpAddresses.cs
│ │ ├── IAccessTokenManager.cs
│ │ ├── IApplicationContext.cs
│ │ ├── Models/
│ │ │ ├── AbpAuthenticateModel.cs
│ │ │ └── AbpAuthenticateResultModel.cs
│ │ ├── ModernHttpClientFactory.cs
│ │ └── TenantInformation.cs
│ ├── AppFramework.Application.Client.csproj
│ ├── AppFrameworkClientModule.cs
│ ├── Auditing/
│ │ └── AuditLogAppService.cs
│ ├── Authorization/
│ │ ├── Accounts/
│ │ │ ├── ProxyAccountAppService.cs
│ │ │ └── ProxyTokenAuthControllerService.cs
│ │ ├── Permissions/
│ │ │ └── PermissionAppService.cs
│ │ ├── Roles/
│ │ │ └── RoleAppService.cs
│ │ └── Users/
│ │ ├── Delegation/
│ │ │ └── UserDelegationAppService.cs
│ │ ├── Profile/
│ │ │ ├── ProxyProfileAppService.cs
│ │ │ └── ProxyProfileControllerService.cs
│ │ ├── ProxyUserAppService.cs
│ │ ├── UserLinkAppService.cs
│ │ └── UserLoginAppService.cs
│ ├── Caching/
│ │ └── CachingAppService.cs
│ ├── Chat/
│ │ ├── ChatAppService.cs
│ │ └── ProxyChatControllerService.cs
│ ├── Common/
│ │ └── ProxyCommonLookupAppService.cs
│ ├── Configuration/
│ │ ├── AbpUserConfigurationDtoExtensions.cs
│ │ ├── HostSettingsAppService.cs
│ │ └── UserConfigurationService.cs
│ ├── Demo/
│ │ └── AbpDemoAppService.cs
│ ├── DynamicEntityProperties/
│ │ ├── DynamicEntityPropertyAppService.cs
│ │ ├── DynamicEntityPropertyDefinitionAppService.cs
│ │ ├── DynamicPropertyAppService.cs
│ │ └── DynamicPropertyValueAppService.cs
│ ├── Edition/
│ │ └── EditionAppService.cs
│ ├── Extensions/
│ │ ├── AbpValidationExceptionExtensions.cs
│ │ └── ErrorInfoExtensions.cs
│ ├── Friendships/
│ │ └── FriendshipAppService.cs
│ ├── Localization/
│ │ └── LanguageAppService.cs
│ ├── MultiTenancy/
│ │ ├── HostDashboard/
│ │ │ └── HostDashboardAppService.cs
│ │ ├── MultiTenancyConfig.cs
│ │ └── ProxyTenantAppService.cs
│ ├── Notifications/
│ │ └── NotificationAppService.cs
│ ├── Organizations/
│ │ └── OrganizationUnitAppService.cs
│ ├── ProxyAppServiceBase.cs
│ ├── ProxyControllerBase.cs
│ ├── Sessions/
│ │ └── ProxySessionAppService.cs
│ ├── Tenants/
│ │ └── Dashboard/
│ │ └── TenantDashboardAppService.cs
│ └── Version/
│ └── VersionsAppService.cs
├── AppFramework.Application.Shared/
│ ├── AppConsts.cs
│ ├── AppFramework.Application.Shared.csproj
│ ├── AppFrameworkSharedModule.cs
│ ├── Auditing/
│ │ ├── Dto/
│ │ │ ├── AuditLogListDto.cs
│ │ │ ├── EntityChangeDto.cs
│ │ │ ├── EntityChangeListDto.cs
│ │ │ ├── EntityPropertyChangeDto.cs
│ │ │ ├── GetAuditLogsInput.cs
│ │ │ └── GetEntityChangeInput.cs
│ │ ├── IAuditLogAppService.cs
│ │ └── IExpiredAndDeletedAuditLogBackupService.cs
│ ├── Authorization/
│ │ ├── Accounts/
│ │ │ ├── Dto/
│ │ │ │ ├── ActivateEmailInput.cs
│ │ │ │ ├── CurrentTenantInfoDto.cs
│ │ │ │ ├── DelegatedImpersonateInput.cs
│ │ │ │ ├── ImpersonateOutput.cs
│ │ │ │ ├── ImpersonateTenantInput.cs
│ │ │ │ ├── ImpersonateUserInput.cs
│ │ │ │ ├── IsTenantAvailableInput.cs
│ │ │ │ ├── IsTenantAvailableOutput.cs
│ │ │ │ ├── RefreshTokenResult.cs
│ │ │ │ ├── RegisterInput.cs
│ │ │ │ ├── RegisterOutput.cs
│ │ │ │ ├── ResetPasswordInput.cs
│ │ │ │ ├── ResetPasswordOutput.cs
│ │ │ │ ├── ResolveTenantInput.cs
│ │ │ │ ├── SendEmailActivationLinkInput.cs
│ │ │ │ ├── SendPasswordResetCodeInput.cs
│ │ │ │ ├── SwitchToLinkedAccountInput.cs
│ │ │ │ ├── SwitchToLinkedAccountOutput.cs
│ │ │ │ └── TenantAvailabilityState.cs
│ │ │ └── IAccountAppService.cs
│ │ ├── Permissions/
│ │ │ ├── Dto/
│ │ │ │ ├── FlatPermissionDto.cs
│ │ │ │ └── FlatPermissionWithLevelDto.cs
│ │ │ └── IPermissionAppService.cs
│ │ ├── Roles/
│ │ │ ├── Dto/
│ │ │ │ ├── CreateOrUpdateRoleInput.cs
│ │ │ │ ├── GetRoleForEditOutput.cs
│ │ │ │ ├── GetRolesInput.cs
│ │ │ │ ├── RoleEditDto.cs
│ │ │ │ └── RoleListDto.cs
│ │ │ └── IRoleAppService.cs
│ │ └── Users/
│ │ ├── Delegation/
│ │ │ ├── Dto/
│ │ │ │ ├── DelegateNewUserInput.cs
│ │ │ │ ├── GetUserDelegationsInput.cs
│ │ │ │ └── UserDelegationDto.cs
│ │ │ └── IUserDelegationAppService.cs
│ │ ├── Dto/
│ │ │ ├── ChangeUserLanguageDto.cs
│ │ │ ├── CreateOrUpdateUserInput.cs
│ │ │ ├── GetLinkedUsersInput.cs
│ │ │ ├── GetLoginAttemptsInput.cs
│ │ │ ├── GetUserForEditOutput.cs
│ │ │ ├── GetUserPermissionsForEditOutput.cs
│ │ │ ├── GetUsersInput.cs
│ │ │ ├── GetUsersToExcelInput.cs
│ │ │ ├── IGetLoginAttemptsInput.cs
│ │ │ ├── IGetUsersInput.cs
│ │ │ ├── ImportUsersFromExcelJobArgs.cs
│ │ │ ├── LinkToUserInput.cs
│ │ │ ├── LinkedUserDto.cs
│ │ │ ├── UnlinkUserInput.cs
│ │ │ ├── UpdateUserPermissionsInput.cs
│ │ │ ├── UserEditDto.cs
│ │ │ ├── UserListDto.cs
│ │ │ ├── UserListRoleDto.cs
│ │ │ ├── UserLoginAttemptDto.cs
│ │ │ └── UserRoleDto.cs
│ │ ├── IUserAppService.cs
│ │ ├── IUserLinkAppService.cs
│ │ ├── IUserLoginAppService.cs
│ │ └── Profile/
│ │ ├── Dto/
│ │ │ ├── ChangePasswordInput.cs
│ │ │ ├── CurrentUserProfileEditDto.cs
│ │ │ ├── GetFriendProfilePictureInput.cs
│ │ │ ├── GetPasswordComplexitySettingOutput.cs
│ │ │ ├── GetProfilePictureOutput.cs
│ │ │ ├── SendVerificationSmsInputDto.cs
│ │ │ ├── UpdateGoogleAuthenticatorKeyOutput.cs
│ │ │ ├── UpdateProfilePictureInput.cs
│ │ │ ├── UploadFileOutput.cs
│ │ │ ├── UploadProfilePictureOutput.cs
│ │ │ └── VerifySmsCodeInputDto.cs
│ │ └── IProfileAppService.cs
│ ├── Caching/
│ │ ├── Dto/
│ │ │ └── CacheDto.cs
│ │ └── ICachingAppService.cs
│ ├── Chat/
│ │ ├── ChatUploadFileOutput.cs
│ │ ├── Dto/
│ │ │ ├── ChatMessageDto.cs
│ │ │ ├── ChatMessageExportDto.cs
│ │ │ ├── ChatUserDto.cs
│ │ │ ├── ChatUserWithMessagesDto.cs
│ │ │ ├── GetUserChatFriendsWithSettingsOutput.cs
│ │ │ ├── GetUserChatMessagesInput.cs
│ │ │ └── MarkMessagesAsReadInput.cs
│ │ └── IChatAppService.cs
│ ├── Common/
│ │ ├── Dto/
│ │ │ ├── FindUsersInput.cs
│ │ │ └── GetDefaultEditionNameOutput.cs
│ │ ├── DtoSortingHelper.cs
│ │ └── ICommonLookupAppService.cs
│ ├── Configuration/
│ │ ├── Dto/
│ │ │ ├── EmailSettingsEditDto.cs
│ │ │ ├── ExternalLoginProviderSettingsEditDto.cs
│ │ │ ├── ExternalLoginSettingsDto.cs
│ │ │ ├── ThemeFooterSettingsDto.cs
│ │ │ ├── ThemeHeaderSettingsDto.cs
│ │ │ ├── ThemeLayoutSettingsDto.cs
│ │ │ ├── ThemeMenuSettingsDto.cs
│ │ │ ├── ThemeSettingsDto.cs
│ │ │ └── ThemeSubHeaderSettingsDto.cs
│ │ ├── Host/
│ │ │ ├── Dto/
│ │ │ │ ├── GeneralSettingsEditDto.cs
│ │ │ │ ├── HostBillingSettingsEditDto.cs
│ │ │ │ ├── HostSettingsEditDto.cs
│ │ │ │ ├── HostUserManagementSettingsEditDto.cs
│ │ │ │ ├── OtherSettingsEditDto.cs
│ │ │ │ ├── SecuritySettingsEditDto.cs
│ │ │ │ ├── SendTestEmailInput.cs
│ │ │ │ ├── SessionTimeOutSettingsEditDto.cs
│ │ │ │ ├── TenantManagementSettingsEditDto.cs
│ │ │ │ ├── TwoFactorLoginSettingsEditDto.cs
│ │ │ │ ├── UserLockOutSettingsEditDto.cs
│ │ │ │ └── UserPasswordSettingsEditDto.cs
│ │ │ └── IHostSettingsAppService.cs
│ │ ├── IExternalLoginOptionsCacheManager.cs
│ │ ├── NullExternalLoginOptionsCacheManager.cs
│ │ └── Tenants/
│ │ ├── Dto/
│ │ │ ├── LdapSettingsEditDto.cs
│ │ │ ├── TenantBillingSettingsEditDto.cs
│ │ │ ├── TenantEmailSettingsEditDto.cs
│ │ │ ├── TenantOtherSettingsEditDto.cs
│ │ │ ├── TenantSettingsEditDto.cs
│ │ │ └── TenantUserManagementSettingsEditDto.cs
│ │ └── ITenantSettingsAppService.cs
│ ├── Demo/
│ │ ├── Dtos/
│ │ │ ├── AbpDemoDto.cs
│ │ │ └── GetAllAbpDemoInput.cs
│ │ └── IAbpDemoAppService.cs
│ ├── DemoUiComponents/
│ │ ├── Dto/
│ │ │ ├── DateToStringOutput.cs
│ │ │ ├── StringOutput.cs
│ │ │ └── UploadFileOutput.cs
│ │ └── IDemoUIComponentAppService.cs
│ ├── Dto/
│ │ ├── FileDto.cs
│ │ ├── PagedAndFilteredInputDto.cs
│ │ ├── PagedAndSortedInputDto.cs
│ │ ├── PagedInputDto.cs
│ │ ├── PagedSortedAndFilteredInputDto.cs
│ │ └── VersionDto.cs
│ ├── DynamicEntityProperties/
│ │ ├── Dto/
│ │ │ ├── DynamicEntityPropertyDto.cs
│ │ │ ├── DynamicEntityPropertyGetAllInput.cs
│ │ │ ├── DynamicEntityPropertyValueDto.cs
│ │ │ ├── DynamicPropertyDto.cs
│ │ │ ├── DynamicPropertyValueDto.cs
│ │ │ └── GetAllEntitiesHasDynamicPropertyOutput.cs
│ │ ├── IDynamicEntityPropertyAppService.cs
│ │ ├── IDynamicEntityPropertyDefinitionAppService.cs
│ │ ├── IDynamicEntityPropertyValueAppService.cs
│ │ ├── IDynamicPropertyAppService.cs
│ │ └── IDynamicPropertyValueAppService.cs
│ ├── DynamicEntityPropertyValues/
│ │ └── Dto/
│ │ ├── CleanValuesInput.cs
│ │ ├── GetAllDynamicEntityPropertyValuesInput.cs
│ │ ├── GetAllDynamicEntityPropertyValuesOutput.cs
│ │ ├── GetAllInput.cs
│ │ └── InsertOrUpdateAllValuesInput.cs
│ ├── Editions/
│ │ ├── Dto/
│ │ │ ├── CreateEditionDto.cs
│ │ │ ├── CreateOrUpdateEditionDto.cs
│ │ │ ├── EditionCreateDto.cs
│ │ │ ├── EditionEditDto.cs
│ │ │ ├── EditionListDto.cs
│ │ │ ├── EditionSelectDto.cs
│ │ │ ├── EditionWithFeaturesDto.cs
│ │ │ ├── FeatureInputTypeDto.cs
│ │ │ ├── FlatFeatureDto.cs
│ │ │ ├── FlatFeatureSelectDto.cs
│ │ │ ├── GetEditionEditOutput.cs
│ │ │ ├── LocalizableComboboxItemDto.cs
│ │ │ ├── LocalizableComboboxItemSourceDto.cs
│ │ │ ├── MoveTenantsToAnotherEditionDto.cs
│ │ │ ├── SubscribableEditionComboboxItemDto.cs
│ │ │ └── UpdateEditionDto.cs
│ │ └── IEditionAppService.cs
│ ├── Friendships/
│ │ ├── Dto/
│ │ │ ├── AcceptFriendshipRequestInput.cs
│ │ │ ├── BlockUserInput.cs
│ │ │ ├── CreateFriendshipRequestByUserNameInput.cs
│ │ │ ├── CreateFriendshipRequestInput.cs
│ │ │ ├── FriendshipDto.cs
│ │ │ ├── RemoveFriendInput.cs
│ │ │ └── UnblockUserInput.cs
│ │ └── IFriendshipAppService.cs
│ ├── Localization/
│ │ ├── Dto/
│ │ │ ├── ApplicationLanguageEditDto.cs
│ │ │ ├── ApplicationLanguageListDto.cs
│ │ │ ├── CreateOrUpdateLanguageInput.cs
│ │ │ ├── GetLanguageForEditOutput.cs
│ │ │ ├── GetLanguageTextsInput.cs
│ │ │ ├── GetLanguagesOutput.cs
│ │ │ ├── LanguageTextListDto.cs
│ │ │ ├── SetDefaultLanguageInput.cs
│ │ │ └── UpdateLanguageTextInput.cs
│ │ └── ILanguageAppService.cs
│ ├── Logging/
│ │ ├── Dto/
│ │ │ └── GetLatestWebLogsOutput.cs
│ │ └── IWebLogAppService.cs
│ ├── MultiTenancy/
│ │ ├── Dto/
│ │ │ ├── CreateTenantInput.cs
│ │ │ ├── EditionsSelectOutput.cs
│ │ │ ├── GetTenantFeaturesEditOutput.cs
│ │ │ ├── GetTenantsInput.cs
│ │ │ ├── PaymentInfoInput.cs
│ │ │ ├── RegisterTenantInput.cs
│ │ │ ├── RegisterTenantOutput.cs
│ │ │ ├── TenantEditDto.cs
│ │ │ ├── TenantListDto.cs
│ │ │ └── UpdateTenantFeaturesInput.cs
│ │ ├── HostDashboard/
│ │ │ ├── Dto/
│ │ │ │ ├── ChartDateInterval.cs
│ │ │ │ ├── DashboardInputBase.cs
│ │ │ │ ├── ExpiringTenant.cs
│ │ │ │ ├── GetDashboardDataInput.cs
│ │ │ │ ├── GetEditionStatisticsInput.cs
│ │ │ │ ├── GetEditionTenantStatisticsInput.cs
│ │ │ │ ├── GetEditionTenantStatisticsOutput.cs
│ │ │ │ ├── GetExpiringTenantsOutput.cs
│ │ │ │ ├── GetIncomeStatisticsDataInput.cs
│ │ │ │ ├── GetIncomeStatisticsDataOutput.cs
│ │ │ │ ├── GetRecentTenantsOutput.cs
│ │ │ │ ├── GetTopStatsInput.cs
│ │ │ │ ├── IncomeStastistic.cs
│ │ │ │ ├── RecentTenant.cs
│ │ │ │ ├── TenantEdition.cs
│ │ │ │ └── TopStatsData.cs
│ │ │ └── IHostDashboardAppService.cs
│ │ ├── ISubscriptionAppService.cs
│ │ ├── ITenantAppService.cs
│ │ ├── ITenantRegistrationAppService.cs
│ │ └── Payments/
│ │ ├── Dto/
│ │ │ ├── CancelPaymentDto.cs
│ │ │ ├── CreatePaymentDto.cs
│ │ │ ├── GetActiveGatewaysInput.cs
│ │ │ ├── GetPaymentHistoryInput.cs
│ │ │ ├── PaymentInfoDto.cs
│ │ │ ├── StripePaymentResultInput.cs
│ │ │ ├── SubscriptionPaymentDto.cs
│ │ │ └── SubscriptionPaymentListDto.cs
│ │ ├── IPaymentAppService.cs
│ │ ├── PayPal/
│ │ │ ├── Dto/
│ │ │ │ └── PayPalConfigurationDto.cs
│ │ │ └── IPayPalPaymentAppService.cs
│ │ └── Stripe/
│ │ ├── Dto/
│ │ │ ├── StripeConfigurationDto.cs
│ │ │ ├── StripeConfirmPaymentInput.cs
│ │ │ ├── StripeCreatePaymentSessionInput.cs
│ │ │ ├── StripeGetPaymentInput.cs
│ │ │ └── StripePaymentResultOutput.cs
│ │ └── IStripePaymentAppService.cs
│ ├── Notifications/
│ │ ├── Dto/
│ │ │ ├── DeleteAllUserNotificationsInput.cs
│ │ │ ├── GetNotificationSettingsOutput.cs
│ │ │ ├── GetNotificationsOutput.cs
│ │ │ ├── GetUserNotificationsInput.cs
│ │ │ ├── NotificationSubscriptionDto.cs
│ │ │ ├── NotificationSubscriptionWithDisplayNameDto.cs
│ │ │ ├── SetNotificationAsReadOutput.cs
│ │ │ └── UpdateNotificationSettingsInput.cs
│ │ └── INotificationAppService.cs
│ ├── Organizations/
│ │ ├── Dto/
│ │ │ ├── CreateOrganizationUnitInput.cs
│ │ │ ├── FindOrganizationUnitRolesInput.cs
│ │ │ ├── FindOrganizationUnitUsersInput.cs
│ │ │ ├── GetOrganizationUnitRolesInput.cs
│ │ │ ├── GetOrganizationUnitUsersInput.cs
│ │ │ ├── MoveOrganizationUnitInput.cs
│ │ │ ├── OrganizationUnitDto.cs
│ │ │ ├── OrganizationUnitRoleListDto.cs
│ │ │ ├── OrganizationUnitUserListDto.cs
│ │ │ ├── RoleToOrganizationUnitInput.cs
│ │ │ ├── RolesToOrganizationUnitInput.cs
│ │ │ ├── UpdateOrganizationUnitInput.cs
│ │ │ ├── UserToOrganizationUnitInput.cs
│ │ │ └── UsersToOrganizationUnitInput.cs
│ │ └── IOrganizationUnitAppService.cs
│ ├── Sessions/
│ │ ├── Dto/
│ │ │ ├── ApplicationInfoDto.cs
│ │ │ ├── EditionInfoDto.cs
│ │ │ ├── GetCurrentLoginInformationsOutput.cs
│ │ │ ├── SubscriptionPaymentInfoDto.cs
│ │ │ ├── TenantLoginInfoDto.cs
│ │ │ ├── UpdateUserSignInTokenOutput.cs
│ │ │ └── UserLoginInfoDto.cs
│ │ └── ISessionAppService.cs
│ ├── Tenants/
│ │ └── Dashboard/
│ │ ├── Dto/
│ │ │ ├── GetDailySalesOutput.cs
│ │ │ ├── GetDashboardDataInput.cs
│ │ │ ├── GetDashboardDataOutput.cs
│ │ │ ├── GetGeneralStatsOutput.cs
│ │ │ ├── GetMemberActivityOutput.cs
│ │ │ ├── GetProfitShareOutput.cs
│ │ │ ├── GetRegionalStatsOutput.cs
│ │ │ ├── GetSalesSummaryInput.cs
│ │ │ ├── GetSalesSummaryOutput.cs
│ │ │ ├── GetTopStatsOutput.cs
│ │ │ ├── MemberActivity.cs
│ │ │ ├── RegionalStatCountry.cs
│ │ │ ├── SalesSummaryData.cs
│ │ │ └── SalesSummaryDatePeriod.cs
│ │ └── ITenantDashboardAppService.cs
│ ├── Timing/
│ │ ├── Dto/
│ │ │ ├── GetTimezoneComboboxItemsInput.cs
│ │ │ └── GetTimezonesInput.cs
│ │ └── ITimingAppService.cs
│ ├── UiCustomization/
│ │ └── Dto/
│ │ └── UiCustomizationSettingsDto.cs
│ ├── Version/
│ │ ├── Dtos/
│ │ │ ├── AbpVersionDto.cs
│ │ │ ├── CheckVersionInput.cs
│ │ │ ├── CreateOrEditAbpVersionDto.cs
│ │ │ ├── GetAllAbpVersionsInput.cs
│ │ │ ├── GetAllForLookupTableInput.cs
│ │ │ └── UpdateFileOutput.cs
│ │ └── IAbpVersionsAppService.cs
│ └── WebHooks/
│ ├── Dto/
│ │ ├── ActivateWebhookSubscriptionInput.cs
│ │ ├── GetAllAvailableWebhooksOutput.cs
│ │ ├── GetAllSendAttemptsInput.cs
│ │ ├── GetAllSendAttemptsOfWebhookEventInput.cs
│ │ ├── GetAllSendAttemptsOfWebhookEventOutput.cs
│ │ ├── GetAllSendAttemptsOutput.cs
│ │ └── GetAllSubscriptionsOutput.cs
│ ├── IWebhookAttemptAppService.cs
│ ├── IWebhookEventAppService.cs
│ └── IWebhookSubscriptionAppService.cs
├── AppFramework.Core.Shared/
│ ├── AppFramework.Core.Shared.csproj
│ ├── AppFrameworkConsts.cs
│ ├── AppFrameworkCoreSharedModule.cs
│ ├── AppFrameworkDashboardCustomizationConst.cs
│ ├── Authentication/
│ │ ├── FacebookExternalLoginProviderSettings.cs
│ │ ├── GoogleExternalLoginProviderSettings.cs
│ │ ├── JsonClaimMapDto.cs
│ │ ├── MicrosoftExternalLoginProviderSettings.cs
│ │ ├── OpenIdConnectExternalLoginProviderSettings.cs
│ │ ├── TwitterExternalLoginProviderSettings.cs
│ │ └── WsFederationExternalLoginProviderSettings.cs
│ ├── Authorization/
│ │ ├── Roles/
│ │ │ └── StaticRoleNames.cs
│ │ └── Users/
│ │ └── UserConsts.cs
│ ├── Chat/
│ │ ├── ChatMessageReadState.cs
│ │ └── ChatSide.cs
│ ├── Editions/
│ │ └── EditionPaymentType.cs
│ ├── Friendships/
│ │ └── FriendshipState.cs
│ ├── MultiTenancy/
│ │ ├── Payments/
│ │ │ ├── CreatePaymentResponse.cs
│ │ │ ├── ExecutePaymentResponse.cs
│ │ │ ├── PaymentGatewayModel.cs
│ │ │ ├── PaymentPeriodType.cs
│ │ │ ├── SubscriptionPaymentGatewayType.cs
│ │ │ ├── SubscriptionPaymentStatus.cs
│ │ │ ├── SubscriptionPaymentType.cs
│ │ │ ├── SubscriptionPaymentTypeExtensions.cs
│ │ │ └── SubscriptionStartType.cs
│ │ └── TenantConsts.cs
│ ├── Notifications/
│ │ └── AppNotificationNames.cs
│ ├── Security/
│ │ └── PasswordComplexitySetting.cs
│ ├── Storage/
│ │ └── BinaryObjectConsts.cs
│ ├── Validation/
│ │ └── ValidationHelper.cs
│ ├── Version/
│ │ └── AbpVersionConsts.cs
│ └── Webhooks/
│ └── AppWebHookNames.cs
├── AppFramework.Mobile/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── AppFramework.Shared.csproj
│ ├── AppSettings.cs
│ ├── Assets/
│ │ └── AssetsHelper.cs
│ ├── Extensions/
│ │ ├── Behaviors/
│ │ │ ├── ActionCollection.cs
│ │ │ ├── BehaviorBase.cs
│ │ │ ├── BindableObjectCollection.cs
│ │ │ ├── ChatMessageListViewBehavior.cs
│ │ │ ├── EventHandlerBehavior.cs
│ │ │ ├── IAction.cs
│ │ │ ├── InvokeCommandAction.cs
│ │ │ └── OnBackPressedHandler.cs
│ │ ├── Converters/
│ │ │ ├── BackgroundColorConverter.cs
│ │ │ ├── BoolToYesNoConverter.cs
│ │ │ ├── ByteToImageConverter.cs
│ │ │ ├── DatetimeConverter.cs
│ │ │ ├── ImageSourceConverter.cs
│ │ │ ├── IndentConverter.cs
│ │ │ ├── IntToVisibilityConverter.cs
│ │ │ ├── InverseBooleanConverter.cs
│ │ │ ├── StringFormatConverter.cs
│ │ │ ├── StringToBadgeIconConverter.cs
│ │ │ ├── UrlToImageConverter.cs
│ │ │ └── UserPhotoConverter.cs
│ │ ├── DateTimeExtensions.cs
│ │ ├── DialogExtensions.cs
│ │ ├── LocalizationKeys.cs
│ │ ├── MarkupExtensions/
│ │ │ ├── HasPermissionExtension.cs
│ │ │ ├── ImageSourceExtension.cs
│ │ │ └── TranslateExtension.cs
│ │ ├── ThemePaletteExtensions.cs
│ │ ├── Threading/
│ │ │ ├── AsyncRuner.cs
│ │ │ ├── ExceptionHandler.cs
│ │ │ └── WebRequest.cs
│ │ └── UserLocalizationConfigDtoExtensions.cs
│ ├── Localization/
│ │ ├── LocalTranslationHelper.cs
│ │ ├── LocalizationResourceManager.cs
│ │ └── Resources/
│ │ ├── LocalTranslation.Designer.cs
│ │ ├── LocalTranslation.resx
│ │ ├── LocalTranslation.zh-Hans.Designer.cs
│ │ └── LocalTranslation.zh-Hans.resx
│ ├── Models/
│ │ ├── Auditing/
│ │ │ └── AuditLogListModel.cs
│ │ ├── Auth/
│ │ │ ├── AuthTokenPersistanceModel.cs
│ │ │ ├── AuthenticateResultPersistanceModel.cs
│ │ │ ├── CurrentLoginInformationPersistanceModel.cs
│ │ │ ├── TenantInformationPersistanceModel.cs
│ │ │ ├── TenantLoginInfoPersistanceModel.cs
│ │ │ └── UserLoginInfoPersistanceModel.cs
│ │ ├── Chat/
│ │ │ ├── ChatMessageModel.cs
│ │ │ └── FriendModel.cs
│ │ ├── Configuration/
│ │ │ ├── EmailSettingsEditModel.cs
│ │ │ ├── ExternalLoginProviderSettingsEditModel.cs
│ │ │ ├── GeneralSettingsEditModel.cs
│ │ │ ├── HostBillingSettingsEditModel.cs
│ │ │ ├── HostSettingsEditModel.cs
│ │ │ ├── HostUserManagementSettingsEditModel.cs
│ │ │ ├── OtherSettingsEditModel.cs
│ │ │ ├── SecuritySettingsEditModel.cs
│ │ │ ├── SessionTimeOutSettingsEditModel.cs
│ │ │ ├── TenantManagementSettingsEditModel.cs
│ │ │ ├── TwoFactorLoginSettingsEditModel.cs
│ │ │ ├── UserLockOutSettingsEditModel.cs
│ │ │ └── UserPasswordSettingsEditModel.cs
│ │ ├── Dashboard/
│ │ │ ├── AreaSeriesChart3DModel.cs
│ │ │ ├── DoughnutChartPopulations.cs
│ │ │ └── TopStatusItem.cs
│ │ ├── DynamicProperty/
│ │ │ └── DynamicPropertyModel.cs
│ │ ├── Edition/
│ │ │ ├── EditionCreateModel.cs
│ │ │ ├── EditionListModel.cs
│ │ │ └── FlatFeatureModel.cs
│ │ ├── EntityObject.cs
│ │ ├── Language/
│ │ │ ├── Language.cs
│ │ │ ├── LanguageListModel.cs
│ │ │ └── LanguageTextListModel.cs
│ │ ├── Navigation/
│ │ │ └── NavigationItem.cs
│ │ ├── Organizations/
│ │ │ ├── CreateOrganizationUnitModel.cs
│ │ │ ├── OrganizationListModel.cs
│ │ │ └── OrganizationUnitModel.cs
│ │ ├── Roles/
│ │ │ ├── ChooseItem.cs
│ │ │ ├── PermissionModel.cs
│ │ │ ├── RoleEditModel.cs
│ │ │ ├── RoleListModel.cs
│ │ │ └── UserRoleModel.cs
│ │ ├── SharedMapper.cs
│ │ ├── Tenants/
│ │ │ └── TenantListModel.cs
│ │ ├── Update/
│ │ │ └── VersionListModel.cs
│ │ └── Users/
│ │ ├── UserCreateOrUpdateModel.cs
│ │ ├── UserEditModel.cs
│ │ ├── UserForEditModel.cs
│ │ ├── UserListModel.cs
│ │ └── UserLoginInfoModel.cs
│ ├── Services/
│ │ ├── Account/
│ │ │ ├── AccountService.cs
│ │ │ ├── AppConfigurationManager.cs
│ │ │ ├── ApplicationService.cs
│ │ │ ├── IAccountService.cs
│ │ │ └── IApplicationService.cs
│ │ ├── Datapager/
│ │ │ ├── DataPagerService.cs
│ │ │ └── IDataPagerService.cs
│ │ ├── Features/
│ │ │ ├── FeaturesService.cs
│ │ │ └── IFeaturesService.cs
│ │ ├── Friend/
│ │ │ ├── FriendChatService.cs
│ │ │ └── IFriendChatService.cs
│ │ ├── Localization/
│ │ │ ├── ILocaleCulture.cs
│ │ │ ├── Local.cs
│ │ │ ├── LocalizationSource.cs
│ │ │ └── PlatformCulture.cs
│ │ ├── Mapper/
│ │ │ └── AppMapper.cs
│ │ ├── Messenger/
│ │ │ ├── AppMessengerKeys.cs
│ │ │ ├── IMessenger.cs
│ │ │ ├── IMessengerExtensions.cs
│ │ │ ├── IWeakAction.cs
│ │ │ ├── Messenger.cs
│ │ │ ├── WeakAction.cs
│ │ │ ├── WeakActionExtensions.cs
│ │ │ └── WeakAction{T}.cs
│ │ ├── Navigation/
│ │ │ ├── AppRegions.cs
│ │ │ ├── INavigationMenuService.cs
│ │ │ ├── IRegionNavigateService.cs
│ │ │ ├── NavigationMenuService.cs
│ │ │ └── RegionNavigateService.cs
│ │ ├── Permission/
│ │ │ ├── AppPermissions.cs
│ │ │ ├── IPermissionService.cs
│ │ │ ├── IPermissionTreesService.cs
│ │ │ ├── IPorxyCommandService.cs
│ │ │ ├── PermissionHelper.cs
│ │ │ ├── PermissionItem.cs
│ │ │ ├── PermissionService.cs
│ │ │ ├── PermissionTreesService.cs
│ │ │ └── PorxyCommandService.cs
│ │ ├── Session/
│ │ │ ├── DialogHelper.cs
│ │ │ ├── IUserDialogService.cs
│ │ │ └── UserDialogService.cs
│ │ └── Storage/
│ │ ├── AccountStorageService.cs
│ │ ├── DataStorageKey.cs
│ │ ├── DataStorageService.cs
│ │ ├── IAccountStorageService.cs
│ │ ├── IDataStorageService.cs
│ │ └── TypeHelperExtended.cs
│ ├── SharedConsts.cs
│ ├── Startup.cs
│ ├── Themes/
│ │ ├── Controls/
│ │ │ ├── BorderlessEditor.cs
│ │ │ ├── BorderlessEntry.cs
│ │ │ ├── CalenderDatePicker.cs
│ │ │ ├── ControlSetting.cs
│ │ │ ├── CustomShadowFrame.cs
│ │ │ ├── ExtendedDatePicker.cs
│ │ │ ├── HideableToolbarItem.cs
│ │ │ ├── ParallaxScrollView.cs
│ │ │ └── XamlCard.cs
│ │ ├── DarkTheme.xaml
│ │ ├── DarkTheme.xaml.cs
│ │ ├── LightTheme.xaml
│ │ ├── LightTheme.xaml.cs
│ │ └── Styles/
│ │ ├── AvatarViewStyles.xaml
│ │ ├── AvatarViewStyles.xaml.cs
│ │ ├── BorderStyles.xaml
│ │ ├── BorderStyles.xaml.cs
│ │ ├── BoxViewStyles.xaml
│ │ ├── BoxViewStyles.xaml.cs
│ │ ├── ButtonStyles.xaml
│ │ ├── ButtonStyles.xaml.cs
│ │ ├── CheckBoxStyles.xaml
│ │ ├── CheckBoxStyles.xaml.cs
│ │ ├── Colors.xaml
│ │ ├── Colors.xaml.cs
│ │ ├── ComboBoxStyles.xaml
│ │ ├── ComboBoxStyles.xaml.cs
│ │ ├── EditorStyles.xaml
│ │ ├── EditorStyles.xaml.cs
│ │ ├── EntryStyles.xaml
│ │ ├── EntryStyles.xaml.cs
│ │ ├── FontIcons.xaml
│ │ ├── FontIcons.xaml.cs
│ │ ├── FrameStyles.xaml
│ │ ├── FrameStyles.xaml.cs
│ │ ├── GradientViewStyles.xaml
│ │ ├── GradientViewStyles.xaml.cs
│ │ ├── LabelStyles.xaml
│ │ ├── LabelStyles.xaml.cs
│ │ ├── ListViewStyles.xaml
│ │ ├── ListViewStyles.xaml.cs
│ │ ├── RadioButtonStyles.xaml
│ │ ├── RadioButtonStyles.xaml.cs
│ │ ├── SegmentedControlStyles.xaml
│ │ ├── SegmentedControlStyles.xaml.cs
│ │ ├── TextInputLayoutStyles.xaml
│ │ └── TextInputLayoutStyles.xaml.cs
│ ├── Validations/
│ │ ├── EditionValidator.cs
│ │ ├── GlobalValidator.cs
│ │ ├── IGlobalValidator.cs
│ │ ├── OrganizationUnitValidator.cs
│ │ ├── SettingsValidator.cs
│ │ ├── TenantValidator.cs
│ │ ├── UserValidator.cs
│ │ ├── ValidatorExtensions.cs
│ │ └── VersionValidator.cs
│ ├── ViewModels/
│ │ ├── Account/
│ │ │ ├── ChangePasswordViewModel.cs
│ │ │ ├── EmailActivationViewModel.cs
│ │ │ ├── ForgotPasswordViewModel.cs
│ │ │ ├── MyProfileViewModel.cs
│ │ │ ├── ProfilePictureViewModel.cs
│ │ │ ├── SendTwoFactorCodeViewModel.cs
│ │ │ └── SettingsViewModel.cs
│ │ ├── Auditlogs/
│ │ │ └── AuditLogViewModel.cs
│ │ ├── Chat/
│ │ │ ├── FriendsChatViewModel.cs
│ │ │ └── FriendsViewModel.cs
│ │ ├── Dashboard/
│ │ │ └── DashboardViewModel.cs
│ │ ├── DynamicProperty/
│ │ │ ├── DynamicPropertyDetailsViewModel.cs
│ │ │ └── DynamicPropertyViewModel.cs
│ │ ├── Edition/
│ │ │ ├── EditionDetailsViewModel.cs
│ │ │ └── EditionViewModel.cs
│ │ ├── InitialScreenViewModel.cs
│ │ ├── Language/
│ │ │ ├── LanguageDetailsViewModel.cs
│ │ │ └── LanguageViewModel.cs
│ │ ├── LoginViewModel.cs
│ │ ├── MainViewModel.cs
│ │ ├── MessageBoxViewModel.cs
│ │ ├── Organizations/
│ │ │ ├── AddRolesViewModel.cs
│ │ │ ├── AddUsersViewModel.cs
│ │ │ ├── OrganizationDetailsViewModel.cs
│ │ │ └── OrganizationViewModel.cs
│ │ ├── Roles/
│ │ │ ├── RoleDetailsViewModel.cs
│ │ │ └── RoleViewModel.cs
│ │ ├── Shared/
│ │ │ ├── DialogViewModel.cs
│ │ │ ├── NavigationDetailViewModel.cs
│ │ │ ├── NavigationMasterViewModel.cs
│ │ │ ├── NavigationViewModel.cs
│ │ │ ├── RegionViewModel.cs
│ │ │ └── ViewModelBase.cs
│ │ ├── Tenants/
│ │ │ ├── TenantDetailsViewModel.cs
│ │ │ └── TenantViewModel.cs
│ │ └── User/
│ │ ├── UserDetailsViewModel.cs
│ │ └── UserViewModel.cs
│ └── Views/
│ ├── Account/
│ │ ├── ChangePasswordView.xaml
│ │ ├── ChangePasswordView.xaml.cs
│ │ ├── EmailActivationView.xaml
│ │ ├── EmailActivationView.xaml.cs
│ │ ├── ForgotPasswordView.xaml
│ │ ├── ForgotPasswordView.xaml.cs
│ │ ├── MyProfileView.xaml
│ │ ├── MyProfileView.xaml.cs
│ │ ├── ProfilePictureView.xaml
│ │ ├── ProfilePictureView.xaml.cs
│ │ ├── SendTwoFactorCodeView.xaml
│ │ ├── SendTwoFactorCodeView.xaml.cs
│ │ ├── SettingsView.xaml
│ │ └── SettingsView.xaml.cs
│ ├── AppViews.cs
│ ├── Auditlog/
│ │ ├── AuditLogDetailsView.xaml
│ │ ├── AuditLogDetailsView.xaml.cs
│ │ ├── AuditLogView.xaml
│ │ └── AuditLogView.xaml.cs
│ ├── Chat/
│ │ ├── FriendsChatView.xaml
│ │ ├── FriendsChatView.xaml.cs
│ │ ├── FriendsView.xaml
│ │ ├── FriendsView.xaml.cs
│ │ ├── Selectors/
│ │ │ └── MessageDataTemplateSelector.cs
│ │ └── Templates/
│ │ ├── ReceiverImageTemplate.xaml
│ │ ├── ReceiverImageTemplate.xaml.cs
│ │ ├── ReceiverTextTemplate.xaml
│ │ ├── ReceiverTextTemplate.xaml.cs
│ │ ├── SenderImageTemplate.xaml
│ │ ├── SenderImageTemplate.xaml.cs
│ │ ├── SenderTextTemplate.xaml
│ │ └── SenderTextTemplate.xaml.cs
│ ├── Dashboard/
│ │ ├── DashboardView.xaml
│ │ └── DashboardView.xaml.cs
│ ├── DynamicProperty/
│ │ ├── DynamicPropertyDetailsView.xaml
│ │ ├── DynamicPropertyDetailsView.xaml.cs
│ │ ├── DynamicPropertyView.xaml
│ │ └── DynamicPropertyView.xaml.cs
│ ├── Edition/
│ │ ├── EditionDetailsView.xaml
│ │ ├── EditionDetailsView.xaml.cs
│ │ ├── EditionView.xaml
│ │ └── EditionView.xaml.cs
│ ├── Language/
│ │ ├── LanguageDetailsView.xaml
│ │ ├── LanguageDetailsView.xaml.cs
│ │ ├── LanguageView.xaml
│ │ └── LanguageView.xaml.cs
│ ├── LoginView.xaml
│ ├── LoginView.xaml.cs
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Organization/
│ │ ├── AddRolesView.xaml
│ │ ├── AddRolesView.xaml.cs
│ │ ├── AddUsersView.xaml
│ │ ├── AddUsersView.xaml.cs
│ │ ├── CreateOrganizationView.xaml
│ │ ├── CreateOrganizationView.xaml.cs
│ │ ├── OrganizationDetailsView.xaml
│ │ ├── OrganizationDetailsView.xaml.cs
│ │ ├── OrganizationView.xaml
│ │ └── OrganizationView.xaml.cs
│ ├── Role/
│ │ ├── RoleDetailsView.xaml
│ │ ├── RoleDetailsView.xaml.cs
│ │ ├── RoleView.xaml
│ │ └── RoleView.xaml.cs
│ ├── Shared/
│ │ ├── InitialScreenView.xaml
│ │ ├── InitialScreenView.xaml.cs
│ │ ├── MessageBoxView.xaml
│ │ ├── MessageBoxView.xaml.cs
│ │ ├── SkinView.xaml
│ │ └── SkinView.xaml.cs
│ ├── Tenant/
│ │ ├── TenantDetailsView.xaml
│ │ ├── TenantDetailsView.xaml.cs
│ │ ├── TenantView.xaml
│ │ └── TenantView.xaml.cs
│ └── User/
│ ├── SelectionUserOrRoleView.xaml
│ ├── SelectionUserOrRoleView.xaml.cs
│ ├── UserDetailsView.xaml
│ ├── UserDetailsView.xaml.cs
│ ├── UserView.xaml
│ └── UserView.xaml.cs
├── AppFramework.Shared/
│ ├── AppFramework.Shared.csproj
│ ├── Consts/
│ │ ├── AppLocalizationKeys.cs
│ │ ├── AppRegions.cs
│ │ ├── AppSharedConsts.cs
│ │ └── AppViews.cs
│ ├── Converters/
│ │ ├── BoolToBackgroundConverter.cs
│ │ ├── BoolToVisibilityConverter.cs
│ │ ├── BoolToYesNoStrConverter.cs
│ │ ├── ByteToImageConverter.cs
│ │ ├── DateTimeToStringConverter.cs
│ │ ├── ImageConverter.cs
│ │ ├── InverseBoolToBackgroundConverter.cs
│ │ ├── InverseBoolToVisibilityConverter.cs
│ │ ├── InverseBoolToYesNoStrConverter.cs
│ │ ├── InverseBooleanConverter.cs
│ │ ├── NotificationToMessageConverter.cs
│ │ ├── StateToVisibilityConverter.cs
│ │ ├── UnreadMessageCountToVisibilityConverter.cs
│ │ └── UrlToImageConverter.cs
│ ├── Extensions/
│ │ ├── AppLogs.cs
│ │ ├── DateTimeExtensions.cs
│ │ ├── DialogExtensions.cs
│ │ ├── DialogHelper.cs
│ │ ├── HasPermissionExtension.cs
│ │ ├── IniFileHelper.cs
│ │ ├── LocalTranslationHelper.cs
│ │ ├── Threading/
│ │ │ ├── AsyncRuner.cs
│ │ │ ├── ExceptionHandler.cs
│ │ │ ├── WebRequest.cs
│ │ │ └── WebRequestExtensions.cs
│ │ └── TranslateExtension.cs
│ ├── Models/
│ │ ├── Auth/
│ │ │ ├── AuthTokenPersistanceModel.cs
│ │ │ ├── AuthenticateResultPersistanceModel.cs
│ │ │ ├── CurrentLoginInformationPersistanceModel.cs
│ │ │ ├── TenantInformationPersistanceModel.cs
│ │ │ ├── TenantLoginInfoPersistanceModel.cs
│ │ │ └── UserLoginInfoPersistanceModel.cs
│ │ ├── Configuration/
│ │ │ ├── EmailSettingsEditModel.cs
│ │ │ ├── ExternalLoginProviderSettingsEditModel.cs
│ │ │ ├── GeneralSettingsEditModel.cs
│ │ │ ├── HostBillingSettingsEditModel.cs
│ │ │ ├── HostSettingsEditModel.cs
│ │ │ ├── HostUserManagementSettingsEditModel.cs
│ │ │ ├── OtherSettingsEditModel.cs
│ │ │ ├── SecuritySettingsEditModel.cs
│ │ │ ├── SessionTimeOutSettingsEditModel.cs
│ │ │ ├── TenantManagementSettingsEditModel.cs
│ │ │ ├── TwoFactorLoginSettingsEditModel.cs
│ │ │ ├── UserLockOutSettingsEditModel.cs
│ │ │ └── UserPasswordSettingsEditModel.cs
│ │ ├── EntityObject.cs
│ │ ├── Navigation/
│ │ │ └── NavigationItem.cs
│ │ └── SharedModuleMapper.cs
│ ├── Services/
│ │ ├── App/
│ │ │ ├── IAppMapper.cs
│ │ │ ├── IAppStartService.cs
│ │ │ ├── IAppTaskBar.cs
│ │ │ └── IUpdateService.cs
│ │ ├── Chat/
│ │ │ ├── ChatService.cs
│ │ │ ├── Dtos/
│ │ │ │ ├── ChatMessageModel.cs
│ │ │ │ └── FriendModel.cs
│ │ │ └── IChatService.cs
│ │ ├── Datapager/
│ │ │ ├── DataPagerService.cs
│ │ │ └── IDataPagerService.cs
│ │ ├── Localization/
│ │ │ ├── ILocaleCulture.cs
│ │ │ ├── Local.cs
│ │ │ ├── LocalizationSource.cs
│ │ │ ├── PlatformCulture.cs
│ │ │ └── UserLocalizationConfigDtoExtensions.cs
│ │ ├── Permission/
│ │ │ ├── AppPermissions.cs
│ │ │ ├── IPermissionPorxyService.cs
│ │ │ ├── IPermissionService.cs
│ │ │ └── PermissionItem.cs
│ │ ├── Session/
│ │ │ ├── IHostDialogAware.cs
│ │ │ └── IHostDialogService.cs
│ │ ├── Storage/
│ │ │ ├── DataStorageKey.cs
│ │ │ ├── DataStorageService.cs
│ │ │ ├── IAccountStorageService.cs
│ │ │ ├── IDataStorageService.cs
│ │ │ └── TypeHelperExtended.cs
│ │ └── Theme/
│ │ ├── IThemeService.cs
│ │ └── ThemeItem.cs
│ ├── SharedModuleExtensions.cs
│ ├── Themes/
│ │ ├── FontIcons.xaml
│ │ ├── Templates/
│ │ │ ├── FileTemplate.xaml
│ │ │ ├── ImageTemplate.xaml
│ │ │ └── TextTemplate.xaml
│ │ └── generic.xaml
│ ├── Validations/
│ │ ├── GlobalValidator.cs
│ │ ├── IGlobalValidator.cs
│ │ └── ValidatorExtensions.cs
│ └── ViewModels/
│ ├── DialogViewModel.cs
│ ├── HostDialogViewModel.cs
│ ├── HostMessageViewModel.cs
│ ├── MessageViewModel.cs
│ ├── NavigationCurdViewModel.cs
│ ├── NavigationViewModel.cs
│ └── ViewModelBase.cs
└── AppFramework.iOS/
├── AppDelegate.cs
├── AppFramework.iOS.csproj
├── Assets.xcassets/
│ └── AppIcon.appiconset/
│ └── Contents.json
├── Entitlements.plist
├── Info.plist
├── Localization/
│ └── Locale.cs
├── Main.cs
├── Properties/
│ └── AssemblyInfo.cs
└── Resources/
└── LaunchScreen.storyboard
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Azure Emulator
efc/
rfc/
# Windows Store app package directory
AppPackages/
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
# FAKE - F# Make
.fake/
*.binlog
/.dotnet
aspnet-core/AspNetZeroRadTool/
aspnet-core/src/AppFramework.Web.Host/wwwroot/app/version/
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2020 henjigg
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README-en.md
================================================
## Highlights
This WPF framework supports multiple UI frameworks, including Syncfusion, HandyControl, and MaterialDesign.
The functions of this framework include the following:
- User and role management
- Organization
- Permission management
- Multi-tenant
- Instant messaging
- Localize multilingual
- Identity authentication and authorization
- Audit logging
- UI Theme
- Exception handling
- Data Dictionary
- System settings
## Project instruction
ABP officially does not officially provide a full version of the WPF framework, so this set of frameworks appeared to fill the gap in the market. If you are a developer using the ABP framework, then you can directly connect this set of systems to you without any effort. system business.
And in the ABP commercial version, the Xamarin.Forms framework provided is also very simple, so this framework also includes the complete Xamarin.Forms version.
## (make a friend)
- QQ:779149549
- Email: 779149549@qq.com
## Update History
- [WPF ABP (2022-07)](https://www.cnblogs.com/zh7791/p/16510567.html)
- [WPF ABP (2022-08)](https://www.cnblogs.com/zh7791/p/16655799.html)
- [WPF ABP (2022-10)](https://www.cnblogs.com/zh7791/p/16839052.html)
- [WPF ABP (2022-11)](https://www.cnblogs.com/zh7791/p/16930333.html)
- [WPF ABP (2022-12)](https://www.cnblogs.com/zh7791/p/16984326.html)
## Screenshot
#### WPF
- Login Page

- Home Page

- User Page

- Chat Page

- Role Page


- Log Page


- Dynamic Properties

- multi-tenancy Page


- Version Page


- Language Page



- Setting






- SKIN



#### Xamarin.Forms
- Login Page
- Home Page
- Function page
- Organization
- Role Page
- User Page
- Audit log page
- Dynamic Property Page
- multi-tenancy
- Version
- Language
- Skin
================================================
FILE: README.md
================================================
中文 | [English](./README-en.md)
## 亮点
本套WPF 框架支持多种UI框架, 包含: Syncfusion、HandyControl、MaterialDesign 。
本套框架基于ASP.NET Core Zero(ABP) 商业版进行开发,前端WPF部分开源。
## 框架介绍
本套框架基于ABP商业版框架进行完整开发, 实现了ABP商业版中的功能, 并且提供了WPF以及Xamarin.Forms版本, 实现完整的跨平台应用开发。
功能包含如下:
- 用户与角色管理
- 组织机构
- 权限管理
- 多租户
- 即时通讯
- 本地化多语言
- 身份认证及授权
- 审计日志记录
- UI主题
- 异常处理
- 数据字典
- 系统设置
## 框架说明
ABP官方未正式提供完整版本WPF框架, 所以就出现了该套框架,来弥补市场的空白, 如果你是使用ABP框架的开发者, 那么你完全可以不费吹灰之力直接将本套系统接入到你们的系统业务当中。
并且ABP商业版中, 提供的Xamarin.Forms框架也是非常的简陋 , 所以本套框架也包含完整的Xamarin.Forms版本。
## 联系方式
- QQ:779149549
- Email: 779149549@qq.com
## 视频与文档
关于实际的运行效果图可以参考视频: [WPF ABP框架演示](https://www.bilibili.com/video/BV1Av4y1w7ds?spm_id_from=333.999.0.0)
下面通过一些实际运行的截图来展示效果, 包含桌面端(WPF)以及移动端(Xamarin.Forms)效果图。
## 框架截图(部分 新/旧)
#### WPF
- 登录页

- 首页

- 用户页

- 聊天页

- 角色页


- 审计日志


- 动态属性

- 多租户


- 版本列表


- 语言列表



- 系统设置






- 系统主题



#### Xamarin.Forms
- 登录页
- 首页
- 功能页
- 组织机构
- 角色页
- 用户页
- 审计日志页
- 动态属性页
- 租户页
- 版本管理
- 语言列表
- 主题切换
================================================
FILE: aspnet-core/.gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
================================================
FILE: aspnet-core/.gitignore
================================================
# Build Folders (you can keep bin if you'd like, to store dlls and pdbs)
[Bb]in/
[Oo]bj/
# Logs
Logs/
# Generated files
project.lock.json
.vs/
# mstest test results
TestResults
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
x64/
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.log
*.vspscc
*.vssscc
.builds
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*
# NCrunch
*.ncrunch*
.*crunch*.local.xml
# Installshield output folder
[Ee]xpress
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish
# Publish Web Output
*.Publish.xml
# NuGet Packages Directory
packages
# Windows Azure Build Output
csx
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
[Bb]in
[Oo]bj
sql
TestResults
[Tt]est[Rr]esult*
*.Cache
ClientBin
[Ss]tyle[Cc]op.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
src/.vs/config/applicationhost.config
src/AppFrameworkDemo.Web.Host/wwwroot/Temp/Downloads
src/AppFrameworkDemo.Web.Mvc/wwwroot/Temp/Downloads
src/AppFrameworkDemo.Web.Mvc/Properties/PublishProfiles
src/AppFrameworkDemo.Web.Mvc/node_modules
src/AppFrameworkDemo.Web.Mvc/wwwroot/lib
src/AppFrameworkDemo.Web.Mvc/wwwroot/dist
src/AppFrameworkDemo.Web.Mvc/wwwroot/view-resources/Views/_Bundles
src/AppFrameworkDemo.Web.Mvc/wwwroot/view-resources/Areas/App/Views/_Bundles
src/AppFrameworkDemo.Web.Mvc/wwwroot/view-resources/**/*.min.*
src/AppFrameworkDemo.Web.Mvc/wwwroot/Common/**/*.min.*
src/AppFrameworkDemo.Web.Mvc/wwwroot/metronic/**/*.min.*
src/AppFrameworkDemo.Web.Mvc/package-lock.json
src/AppFrameworkDemo.Web.Public/wwwroot/lib
src/AppFrameworkDemo.Web.Public/wwwroot/dist
src/AppFrameworkDemo.Web.Public/wwwroot/Common/_Bundles
src/AppFrameworkDemo.Web.Public/wwwroot/view-resources/Views/_Bundles
src/AppFrameworkDemo.Web.Public/wwwroot/view-resources/**/*.min.*
src/AppFrameworkDemo.Web.Public/wwwroot/Common/**/*.min.*
src/AppFrameworkDemo.Web.Public/node_modules
================================================
FILE: aspnet-core/AppFramework.Mobile.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32210.308
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D04D9608-9CEB-4E0A-B548-410F7475E9F1}"
ProjectSection(SolutionItems) = preProject
common.props = common.props
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Application.Shared", "src\AppFramework.Application.Shared\AppFramework.Application.Shared.csproj", "{6143A90B-6C2A-4683-8A3A-4D48702770EA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Core.Shared", "src\AppFramework.Core.Shared\AppFramework.Core.Shared.csproj", "{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppFramework.Android", "src\AppFramework.Android\AppFramework.Android.csproj", "{4F068C06-E551-4DD7-BFE6-00028846F2D0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppFramework.iOS", "src\AppFramework.iOS\AppFramework.iOS.csproj", "{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Application.Client", "src\AppFramework.Application.Client\AppFramework.Application.Client.csproj", "{572932C8-FC7F-472C-B466-0CC07F29FE7A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Shared", "src\AppFramework.Mobile\AppFramework.Shared.csproj", "{CE474F44-B837-46A1-9154-0483D417D0F4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
Ad-Hoc|iPhone = Ad-Hoc|iPhone
Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
AppStore|Any CPU = AppStore|Any CPU
AppStore|iPhone = AppStore|iPhone
AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
Debug|Any CPU = Debug|Any CPU
Debug|iPhone = Debug|iPhone
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Release|Any CPU = Release|Any CPU
Release|iPhone = Release|iPhone
Release|iPhoneSimulator = Release|iPhoneSimulator
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.AppStore|Any CPU.Build.0 = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.AppStore|iPhone.Build.0 = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Debug|iPhone.Build.0 = Debug|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Release|Any CPU.Build.0 = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Release|iPhone.ActiveCfg = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Release|iPhone.Build.0 = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6143A90B-6C2A-4683-8A3A-4D48702770EA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.AppStore|Any CPU.Build.0 = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.AppStore|iPhone.Build.0 = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Debug|iPhone.Build.0 = Debug|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Release|Any CPU.Build.0 = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Release|iPhone.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Release|iPhone.Build.0 = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Ad-Hoc|Any CPU.Deploy.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Ad-Hoc|iPhone.Deploy.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.AppStore|Any CPU.Deploy.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.AppStore|iPhone.Build.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.AppStore|iPhone.Deploy.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.AppStore|iPhoneSimulator.Deploy.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Debug|iPhone.Build.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Debug|iPhone.Deploy.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Release|Any CPU.Build.0 = Release|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Release|Any CPU.Deploy.0 = Release|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Release|iPhone.ActiveCfg = Release|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Release|iPhone.Build.0 = Release|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Release|iPhone.Deploy.0 = Release|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{4F068C06-E551-4DD7-BFE6-00028846F2D0}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Ad-Hoc|Any CPU.ActiveCfg = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Ad-Hoc|Any CPU.Build.0 = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Ad-Hoc|iPhone.ActiveCfg = Debug|iPhone
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Ad-Hoc|iPhone.Build.0 = Debug|iPhone
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.AppStore|Any CPU.ActiveCfg = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.AppStore|Any CPU.Build.0 = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.AppStore|iPhone.ActiveCfg = Debug|iPhone
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.AppStore|iPhone.Build.0 = Debug|iPhone
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.AppStore|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.AppStore|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Debug|iPhone.ActiveCfg = Debug|iPhone
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Debug|iPhone.Build.0 = Debug|iPhone
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Release|iPhone.ActiveCfg = Release|iPhone
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Release|iPhone.Build.0 = Release|iPhone
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.AppStore|iPhone.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Debug|iPhone.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Release|Any CPU.Build.0 = Release|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Release|iPhone.ActiveCfg = Release|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Release|iPhone.Build.0 = Release|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.AppStore|iPhone.Build.0 = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Debug|iPhone.Build.0 = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Release|Any CPU.Build.0 = Release|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Release|iPhone.ActiveCfg = Release|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Release|iPhone.Build.0 = Release|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{CE474F44-B837-46A1-9154-0483D417D0F4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{6143A90B-6C2A-4683-8A3A-4D48702770EA} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{4F068C06-E551-4DD7-BFE6-00028846F2D0} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{AC99E6A5-A7AD-46D6-A75F-9B25D5272DBC} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{572932C8-FC7F-472C-B466-0CC07F29FE7A} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{CE474F44-B837-46A1-9154-0483D417D0F4} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {23CD4D4B-B131-473D-9ECB-5DD96E739671}
EndGlobalSection
EndGlobal
================================================
FILE: aspnet-core/AppFramework.Wpf.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32210.308
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D04D9608-9CEB-4E0A-B548-410F7475E9F1}"
ProjectSection(SolutionItems) = preProject
common.props = common.props
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Core.Shared", "src\AppFramework.Core.Shared\AppFramework.Core.Shared.csproj", "{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Application.Client", "src\AppFramework.Application.Client\AppFramework.Application.Client.csproj", "{572932C8-FC7F-472C-B466-0CC07F29FE7A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Application.Shared", "src\AppFramework.Application.Shared\AppFramework.Application.Shared.csproj", "{67C10D05-BFBA-476E-B8E2-86961E1C24B7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Admin", "src\AppFramework.Admin\AppFramework.Admin.csproj", "{573187B5-ECAE-4DCA-8AE0-0934A38147AE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Shared", "src\AppFramework.Shared\AppFramework.Shared.csproj", "{74D7C22B-A950-48FE-990D-278A4F313543}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Admin.MaterialUI", "src\AppFramework.Admin.MaterialUI\AppFramework.Admin.MaterialUI.csproj", "{B087FD4F-A0B1-404F-8588-F26C5EACA487}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Admin.SyncUI", "src\AppFramework.Admin.SyncUI\AppFramework.Admin.SyncUI.csproj", "{46743A17-D920-4C79-8C0D-4353FA7CAE8D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppFramework.Admin.HandyUI", "src\AppFramework.Admin.HandyUI\AppFramework.Admin.HandyUI.csproj", "{AD9B572C-3225-4E78-87F9-C74BA35D8DD5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536}.Release|Any CPU.Build.0 = Release|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{572932C8-FC7F-472C-B466-0CC07F29FE7A}.Release|Any CPU.Build.0 = Release|Any CPU
{67C10D05-BFBA-476E-B8E2-86961E1C24B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{67C10D05-BFBA-476E-B8E2-86961E1C24B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{67C10D05-BFBA-476E-B8E2-86961E1C24B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{67C10D05-BFBA-476E-B8E2-86961E1C24B7}.Release|Any CPU.Build.0 = Release|Any CPU
{573187B5-ECAE-4DCA-8AE0-0934A38147AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{573187B5-ECAE-4DCA-8AE0-0934A38147AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{573187B5-ECAE-4DCA-8AE0-0934A38147AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{573187B5-ECAE-4DCA-8AE0-0934A38147AE}.Release|Any CPU.Build.0 = Release|Any CPU
{74D7C22B-A950-48FE-990D-278A4F313543}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74D7C22B-A950-48FE-990D-278A4F313543}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74D7C22B-A950-48FE-990D-278A4F313543}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74D7C22B-A950-48FE-990D-278A4F313543}.Release|Any CPU.Build.0 = Release|Any CPU
{B087FD4F-A0B1-404F-8588-F26C5EACA487}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B087FD4F-A0B1-404F-8588-F26C5EACA487}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B087FD4F-A0B1-404F-8588-F26C5EACA487}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B087FD4F-A0B1-404F-8588-F26C5EACA487}.Release|Any CPU.Build.0 = Release|Any CPU
{46743A17-D920-4C79-8C0D-4353FA7CAE8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{46743A17-D920-4C79-8C0D-4353FA7CAE8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{46743A17-D920-4C79-8C0D-4353FA7CAE8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{46743A17-D920-4C79-8C0D-4353FA7CAE8D}.Release|Any CPU.Build.0 = Release|Any CPU
{AD9B572C-3225-4E78-87F9-C74BA35D8DD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AD9B572C-3225-4E78-87F9-C74BA35D8DD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AD9B572C-3225-4E78-87F9-C74BA35D8DD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AD9B572C-3225-4E78-87F9-C74BA35D8DD5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{4D6603C1-F7D6-4681-97F8-69B4BBBC0536} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{572932C8-FC7F-472C-B466-0CC07F29FE7A} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{67C10D05-BFBA-476E-B8E2-86961E1C24B7} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{573187B5-ECAE-4DCA-8AE0-0934A38147AE} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{74D7C22B-A950-48FE-990D-278A4F313543} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{B087FD4F-A0B1-404F-8588-F26C5EACA487} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{46743A17-D920-4C79-8C0D-4353FA7CAE8D} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
{AD9B572C-3225-4E78-87F9-C74BA35D8DD5} = {AFAA0841-BD93-466F-B8F4-FB4EEC86F1FC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {23CD4D4B-B131-473D-9ECB-5DD96E739671}
EndGlobalSection
EndGlobal
================================================
FILE: aspnet-core/Settings.XamlStyler
================================================
{
// ==========[属性格式化]==========
"AttributesTolerance": 2, // 单行最大属性数,2[默认],如果元素属性数不大于此数就不会换行
"KeepFirstAttributeOnSameLine": false, // 第一个属性是否与开始标记在同一行,false[默认]
"MaxAttributeCharactersPerLine": 10, // 多个属性大于多少个字符就该换行,0[默认]
"MaxAttributesPerLine": 3, // 大于几个属性就该换行,1[默认]
// 无需换行的元素(比较短的),"RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter"[默认]
"NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter",
"AttributeIndentation": 0, // 属性缩进空格字符数(-1不缩进;0[默认]缩进4个空格;其它个数则指定)
"AttributeIndentationStyle": 1, // 属性缩进风格(0混合,视情况使用制表符和空格;1[默认]使用空格)
"RemoveDesignTimeReferences": false, // 是否移除自动添加的控件和设计时参考内容,false[默认]
//
// ==========[属性排序]==========
"EnableAttributeReordering": true, // 是否启用属性的自动排序,true[默认]
"SeparateByGroups": false, // 是否应该按照属性的分组进行分隔,false[默认]
/* 属性排序和分组规则
"x:Class",
"xmlns, xmlns:x",
"xmlns:*",
"x:Key, Key, x:Name, Name, x:Uid, Uid, Title",
"Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom,Background,Style",
"Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight",
"Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex",
"*:*, *",
"PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint",
"mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText",
"Storyboard.*, From, To, Duration"
*/
"AttributeOrderingRuleGroups": [
"x:Class",
"xmlns, xmlns:x",
"xmlns:*",
"x:Key, Key, x:Name, Name, x:Uid, Uid, Title",
"Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom",
"Content,Text,IsChecked",
"Command,CommandParameter",
"Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight,MaxLength",
"TextWrapping,Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex",
"*:*, *",
"PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint",
"mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText",
"Storyboard.*, From, To, Duration"
],
"FirstLineAttributes": "x:Name,Grid.Row,Grid.Column", // 应该在第一行的属性,例如Name、x:Name和x:Uid等等,None[默认]
"OrderAttributesByName": false, // 是否按照属性名称进行排序
//
// ==========[元素格式化]==========
"PutEndingBracketOnNewLine": false, // 结束括号是否独占一行,false[默认]
"RemoveEndingTagOfEmptyElement": true, // 是否移除空元素的结束标签,true[默认]
"SpaceBeforeClosingSlash": true, // 自闭合元素的末尾斜杠前是否要有空格,true[默认]
"RootElementLineBreakRule": 0, // 是否将根元素的属性分成多行(0[默认]默认;1始终;2从不)
//
// ==========[元素排序]==========
"ReorderVSM": 2, // 是否重新排序Visual State Manager(0未定义;1[默认]移到最后;2移到最前)
"ReorderGridChildren": false, // 是否重新排序Grid的子元素,false[默认]
"ReorderCanvasChildren": false, // 是否重新排序Canvas的子元素,false[默认]
"ReorderSetters": 0, // 是否重新排序Setter(0[默认]不排序;1按属性名;2按目标名;3先按目标名再按属性名)
//
// ==========[标记扩展]==========
"FormatMarkupExtension": true, // 是否格式化标记扩展的属性,true[默认]
// 始终放在一行上的标记扩展,"x:Bind, Binding"[默认]
"NoNewLineMarkupExtensions": "x:Bind, Binding",
//
// ==========[属性排序]==========
"ThicknessSeparator": 2, // Thickness类型的属性应该用哪种分隔符(0不格式化;1空格;2[默认]逗号)
// 被认定为Thickness的元素应该是哪些,"Margin, Padding, BorderThickness, ThumbnailClipMargin"[默认]
"ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin",
//
// ==========[杂项]==========
"FormatOnSave": true, // 是否在保存时进行格式化,true[默认]
"CommentPadding": 2, // 注释的间距应该是几个空格,2[默认]
//
// ==========[覆盖VS配置]==========
"IndentSize": 4, // 缩进空格数,4[VS默认]
"IndentWithTabs": false // 是否使用制表符进行缩进,false[VS默认]
}
================================================
FILE: aspnet-core/common.props
================================================
11.2.1
================================================
FILE: aspnet-core/src/AppFramework.Admin/AdminModuleExtensions.cs
================================================
using Prism.Ioc;
namespace AppFramework.Admin
{
public static class AdminModuleExtensions
{
public static void AddAdminsServices(this IContainerRegistry services)
{
services.AddValidators();
services.AddServices();
}
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/AppFramework.Admin.csproj
================================================
Library
net6.0-windows
enable
true
Code
Code
Code
Code
Code
Code
Code
Code
Code
Code
Code
Code
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
Designer
$(DefaultXamlRuntime)
Designer
================================================
FILE: aspnet-core/src/AppFramework.Admin/Behaviors/ChatMessageListViewBehavior.cs
================================================
using Microsoft.Xaml.Behaviors;
using System.ComponentModel;
using System.Windows.Controls;
using System.Windows.Data;
namespace AppFramework.Admin.Behaviors
{
public class ChatMessageListBoxGroupBehavior : Behavior
{
protected override void OnAttached()
{
base.OnAttached();
((ICollectionView)AssociatedObject.Items).GroupDescriptions.Add(new PropertyGroupDescription("CreationTime"));
}
protected override void OnDetaching()
{
base.OnDetaching();
((ICollectionView)AssociatedObject.Items).GroupDescriptions.Remove(new PropertyGroupDescription("CreationTime"));
}
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Behaviors/PasswordBehavior.cs
================================================
using Microsoft.Xaml.Behaviors;
using System.Windows;
using System.Windows.Controls;
namespace AppFramework.Admin.Behaviors
{
public class PasswordBehavior : Behavior
{
protected override void OnAttached()
{
AssociatedObject.PasswordChanged += AssociatedObject_PasswordChanged;
base.OnAttached();
}
protected override void OnDetaching()
{
AssociatedObject.PasswordChanged -= AssociatedObject_PasswordChanged;
base.OnDetaching();
}
private void AssociatedObject_PasswordChanged(object sender, RoutedEventArgs e)
{
var passwordBox = sender as PasswordBox;
string password = PasswordExtensions.GetPassword(passwordBox);
if (passwordBox != null && password != passwordBox.Password)
PasswordExtensions.SetPassword(passwordBox, passwordBox.Password);
}
}
public class PasswordExtensions
{
public static string GetPassword(DependencyObject obj)
{
return (string)obj.GetValue(PasswordProperty);
}
public static void SetPassword(DependencyObject obj, string value)
{
obj.SetValue(PasswordProperty, value);
}
public static readonly DependencyProperty PasswordProperty =
DependencyProperty.RegisterAttached("Password", typeof(string), typeof(PasswordExtensions), new PropertyMetadata(null, PropertyChangedCallback));
public static void PropertyChangedCallback(DependencyObject sender, DependencyPropertyChangedEventArgs args)
{
var passwordBox = sender as PasswordBox;
string password = (string)args.NewValue;
if (passwordBox != null && passwordBox.Password != password)
passwordBox.Password = password;
}
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Extensions/EnumerableExtensions.cs
================================================
using System.Collections.Generic;
namespace AppFramework.Admin
{
public static class EnumerableExtensions
{
public static int IndexOf(this IEnumerable source, T value)
{
int num = 0;
EqualityComparer @default = EqualityComparer.Default;
foreach (T item in source)
{
if (@default.Equals(item, value))
return num;
num++;
}
return -1;
}
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/AdminModuleMapper.cs
================================================
using AppFramework.ApiClient;
using AppFramework.ApiClient.Models;
using AppFramework.Auditing.Dto;
using AppFramework.Authorization.Permissions.Dto;
using AppFramework.Authorization.Roles.Dto;
using AppFramework.Authorization.Users.Dto;
using AppFramework.DynamicEntityProperties.Dto;
using AppFramework.Editions.Dto;
using AppFramework.Friendships.Dto;
using AppFramework.Localization.Dto;
using AppFramework.MultiTenancy.Dto;
using AppFramework.Organizations.Dto;
using AppFramework.Sessions.Dto;
using AppFramework.Shared.Models;
using AppFramework.Shared.Models.Chat;
using AppFramework.Version.Dtos;
using AutoMapper;
namespace AppFramework.Admin.Models
{
public class AdminModuleMapper : Profile
{
public AdminModuleMapper()
{
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
//系统模块中实体映射关系
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
}
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Auditlogs/AuditLogListModel.cs
================================================
using AppFramework.Shared.Models;
using System;
namespace AppFramework.Admin.Models
{
public class AuditLogListModel : EntityObject
{
public long? UserId { get; set; }
public string UserName { get; set; }
public int? ImpersonatorTenantId { get; set; }
public long? ImpersonatorUserId { get; set; }
public string ServiceName { get; set; }
public string MethodName { get; set; }
public string Parameters { get; set; }
public DateTime ExecutionTime { get; set; }
public int ExecutionDuration { get; set; }
public string ClientIpAddress { get; set; }
public string ClientName { get; set; }
public string BrowserInfo { get; set; }
public string Exception { get; set; }
public string CustomData { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Auditlogs/GetAuditLogsFilter.cs
================================================
using CommunityToolkit.Mvvm.ComponentModel;
using System;
namespace AppFramework.Admin.Models
{
public partial class GetAuditLogsFilter : PagedAndSortedFilter
{
[ObservableProperty]
public DateTime? startDate;
[ObservableProperty]
public DateTime? endDate;
[ObservableProperty]
private string userName;
[ObservableProperty]
private string serviceName;
[ObservableProperty]
private string methodName;
[ObservableProperty]
private string browserInfo;
[ObservableProperty]
private bool? hasException;
[ObservableProperty]
private int? minExecutionDuration;
[ObservableProperty]
private int? maxExecutionDuration;
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Auditlogs/GetEntityChangeFilter.cs
================================================
using CommunityToolkit.Mvvm.ComponentModel;
using System;
namespace AppFramework.Admin.Models
{
public partial class GetEntityChangeFilter : PagedAndSortedFilter
{
[ObservableProperty]
public DateTime startDate;
[ObservableProperty]
public DateTime endDate;
[ObservableProperty]
public string userName;
[ObservableProperty]
public string entityTypeFullName;
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Dashboard/AreaSeriesChart3DModel.cs
================================================
using System;
namespace AppFramework.Admin.Models
{
public class AreaSeriesChart3DModel
{
public decimal Amount { get; set; }
public DateTime Date { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Dashboard/DoughnutChartPopulations.cs
================================================
using System;
namespace AppFramework.Admin.Models
{
public class DoughnutChartPopulations
{
public string Continent { get; set; }
public string Countries { get; set; }
public string States { get; set; }
public double PopulationinStates { get; set; }
public double PopulationinCountries { get; set; }
public double PopulationinContinents { get; set; }
public string Category { get; set; }
public double Expenditure { get; set; }
public Uri Image { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Dashboard/TopStatusItem.cs
================================================
namespace AppFramework.Admin.Models
{
public class TopStatusItem
{
public string Logo { get; set; }
public string Title { get; set; }
public decimal Amount { get; set; }
public string Foreground { get; set; }
public string BackgroundGradientStart { get; set; }
public string BackgroundGradientEnd { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/DynamicProperty/DynamicPropertyModel.cs
================================================
using AppFramework.Shared.Models;
using CommunityToolkit.Mvvm.ComponentModel;
namespace AppFramework.Admin.Models
{
public partial class DynamicPropertyModel : EntityObject
{
[ObservableProperty]
private string propertyName;
[ObservableProperty]
private string displayName;
[ObservableProperty]
private string inputType;
[ObservableProperty]
private string permission;
public int? TenantId { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Edition/EditionCreateModel.cs
================================================
using CommunityToolkit.Mvvm.ComponentModel;
namespace AppFramework.Admin.Models
{
[INotifyPropertyChanged]
public partial class EditionCreateModel
{
[ObservableProperty]
public string displayName;
[ObservableProperty]
public decimal? dailyPrice;
[ObservableProperty]
public decimal? weeklyPrice;
[ObservableProperty]
public decimal? monthlyPrice;
[ObservableProperty]
public decimal? annualPrice;
[ObservableProperty]
public int? trialDayCount;
[ObservableProperty]
public int? waitingDayAfterExpire;
[ObservableProperty]
public int? expiringEditionId;
public int? Id { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Edition/EditionListModel.cs
================================================
namespace AppFramework.Admin.Models
{
public class EditionListModel
{
public int Id { get; set; }
public string Name { get; set; }
public string DisplayName { get; set; }
public decimal? DailyPrice { get; set; }
public decimal? WeeklyPrice { get; set; }
public decimal? MonthlyPrice { get; set; }
public decimal? AnnualPrice { get; set; }
public int? WaitingDayAfterExpire { get; set; }
public int? TrialDayCount { get; set; }
public string ExpiringEditionDisplayName { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Edition/FlatFeatureModel.cs
================================================
using AppFramework.Editions.Dto;
using CommunityToolkit.Mvvm.ComponentModel;
using System.Collections.ObjectModel;
namespace AppFramework.Admin.Models
{
[INotifyPropertyChanged]
public partial class FlatFeatureModel
{
[ObservableProperty]
public bool isChecked;
public string ParentName { get; set; }
public string Name { get; set; }
public string DisplayName { get; set; }
public string Description { get; set; }
public string DefaultValue { get; set; }
public FeatureInputTypeDto InputType { get; set; }
[ObservableProperty]
public ObservableCollection items;
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Filters/PagedAndSortedFilter.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AppFramework.Admin.Models
{
public class PagedAndSortedFilter : PagedFilter
{
public string Sorting { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Filters/PagedFilter.cs
================================================
using CommunityToolkit.Mvvm.ComponentModel;
namespace AppFramework.Admin.Models
{
[INotifyPropertyChanged]
public partial class PagedFilter
{
public PagedFilter()
{
MaxResultCount = AppConsts.DefaultPageSize;
}
public int MaxResultCount { get; set; }
public int SkipCount { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Language/Language.cs
================================================
namespace AppFramework.Admin.Models
{
public struct LanguageStruct
{
public LanguageStruct(string icon, string name, string displayName)
{
Icon = icon;
Name = name;
DisplayName = displayName;
}
public string Icon { get; }
public string Name { get; }
public string DisplayName { get; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Language/LanguageListModel.cs
================================================
using Prism.Mvvm;
using System;
namespace AppFramework.Admin.Models
{
public class LanguageListModel
{
public int Id { get; set; }
public int? TenantId { get; set; }
public string Name { get; set; }
public string DisplayName { get; set; }
public string Icon { get; set; }
public bool IsDisabled { get; set; }
public DateTime CreationTime { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Language/LanguageTextListModel.cs
================================================
namespace AppFramework.Admin.Models
{
public class LanguageTextListModel
{
public string Key { get; set; }
public string BaseValue { get; set; }
public string TargetValue { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Organizations/CreateOrganizationUnitModel.cs
================================================
using CommunityToolkit.Mvvm.ComponentModel;
using Prism.Mvvm;
namespace AppFramework.Admin.Models
{
[INotifyPropertyChanged]
public partial class CreateOrganizationUnitModel
{
[ObservableProperty]
private string displayName;
public long? ParentId { get; set; }
}
}
================================================
FILE: aspnet-core/src/AppFramework.Admin/Models/Organizations/OrganizationListModel.cs
================================================
using CommunityToolkit.Mvvm.ComponentModel;
using Prism.Mvvm;
using System.Collections.ObjectModel;
namespace AppFramework.Admin.Models
{
[INotifyPropertyChanged]
public partial class OrganizationListModel
{
[ObservableProperty]
private bool isChecked;
[ObservableProperty]
private string displayName;
[ObservableProperty]
private int memberCount;
[ObservableProperty]
private int roleCount;
[ObservableProperty]
private ObservableCollection