├── .gitignore ├── .travis.yml ├── .vscode ├── launch.json └── tasks.json ├── Dockerfile ├── README.md ├── ServiceStack.CefGlue ├── build │ ├── build.bat │ ├── build.proj │ ├── build.sh │ ├── copy-cef.bat │ ├── copy-xilian.bat │ └── prepare.bat ├── src │ ├── .nuget │ │ ├── NuGet.config │ │ └── NuGet.targets │ ├── Directory.Build.props │ ├── ServiceStack.CefGlue.Win64 │ │ ├── CefGlueHost.cs │ │ ├── CefPlatform.Windows.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── ServiceStack.CefGlue.Win64.csproj │ │ ├── WinapiHostFactory.cs │ │ └── favicon.ico │ ├── ServiceStack.CefGlue.sln │ └── ServiceStack.CefGlue │ │ ├── CefBrowser.partial.cs │ │ ├── CefConfig.cs │ │ ├── CefGlue │ │ ├── CefRuntime.cs │ │ ├── CefRuntimePlatform.cs │ │ ├── Classes.Handlers │ │ │ ├── CefAccessibilityHandler.cs │ │ │ ├── CefApp.cs │ │ │ ├── CefAudioHandler.cs │ │ │ ├── CefBrowserProcessHandler.cs │ │ │ ├── CefClient.cs │ │ │ ├── CefCompletionCallback.cs │ │ │ ├── CefContextMenuHandler.cs │ │ │ ├── CefCookieAccessFilter.cs │ │ │ ├── CefCookieVisitor.cs │ │ │ ├── CefDeleteCookiesCallback.cs │ │ │ ├── CefDevToolsMessageObserver.cs │ │ │ ├── CefDialogHandler.cs │ │ │ ├── CefDisplayHandler.cs │ │ │ ├── CefDomVisitor.cs │ │ │ ├── CefDownloadHandler.cs │ │ │ ├── CefDownloadImageCallback.cs │ │ │ ├── CefDragHandler.cs │ │ │ ├── CefEndTracingCallback.cs │ │ │ ├── CefExtensionHandler.cs │ │ │ ├── CefFindHandler.cs │ │ │ ├── CefFocusHandler.cs │ │ │ ├── CefJSDialogHandler.cs │ │ │ ├── CefKeyboardHandler.cs │ │ │ ├── CefLifeSpanHandler.cs │ │ │ ├── CefLoadHandler.cs │ │ │ ├── CefMediaObserver.cs │ │ │ ├── CefMediaRouteCreateCallback.cs │ │ │ ├── CefMediaSinkDeviceInfoCallback.cs │ │ │ ├── CefMenuModelDelegate.cs │ │ │ ├── CefNavigationEntryVisitor.cs │ │ │ ├── CefPdfPrintCallback.cs │ │ │ ├── CefPrintHandler.cs │ │ │ ├── CefReadHandler.cs │ │ │ ├── CefRegisterCdmCallback.cs │ │ │ ├── CefRenderHandler.cs │ │ │ ├── CefRenderProcessHandler.cs │ │ │ ├── CefRequestContextHandler.cs │ │ │ ├── CefRequestHandler.cs │ │ │ ├── CefResolveCallback.cs │ │ │ ├── CefResourceBundleHandler.cs │ │ │ ├── CefResourceHandler.cs │ │ │ ├── CefResourceRequestHandler.cs │ │ │ ├── CefResponseFilter.cs │ │ │ ├── CefRunFileDialogCallback.cs │ │ │ ├── CefSchemeHandlerFactory.cs │ │ │ ├── CefServerHandler.cs │ │ │ ├── CefSetCookieCallback.cs │ │ │ ├── CefStringVisitor.cs │ │ │ ├── CefTask.cs │ │ │ ├── CefUrlRequestClient.cs │ │ │ ├── CefUserData.cs │ │ │ ├── CefV8Accessor.cs │ │ │ ├── CefV8ArrayBufferReleaseCallback.cs │ │ │ ├── CefV8Handler.cs │ │ │ ├── CefV8Interceptor.cs │ │ │ ├── CefWebPluginInfoVisitor.cs │ │ │ ├── CefWebPluginUnstableCallback.cs │ │ │ └── CefWriteHandler.cs │ │ ├── Classes.Proxies │ │ │ ├── CefAuthCallback.cs │ │ │ ├── CefBeforeDownloadCallback.cs │ │ │ ├── CefBinaryValue.cs │ │ │ ├── CefBrowser.cs │ │ │ ├── CefBrowserHost.cs │ │ │ ├── CefCallback.cs │ │ │ ├── CefCommandLine.cs │ │ │ ├── CefContextMenuParams.cs │ │ │ ├── CefCookieManager.cs │ │ │ ├── CefDictionaryValue.cs │ │ │ ├── CefDomDocument.cs │ │ │ ├── CefDomNode.cs │ │ │ ├── CefDownloadItem.cs │ │ │ ├── CefDownloadItemCallback.cs │ │ │ ├── CefDragData.cs │ │ │ ├── CefExtension.cs │ │ │ ├── CefFileDialogCallback.cs │ │ │ ├── CefFrame.cs │ │ │ ├── CefGetExtensionResourceCallback.cs │ │ │ ├── CefImage.cs │ │ │ ├── CefJSDialogCallback.cs │ │ │ ├── CefListValue.cs │ │ │ ├── CefMediaRoute.cs │ │ │ ├── CefMediaRouter.cs │ │ │ ├── CefMediaSink.cs │ │ │ ├── CefMediaSource.cs │ │ │ ├── CefMenuModel.cs │ │ │ ├── CefNavigationEntry.cs │ │ │ ├── CefPostData.cs │ │ │ ├── CefPostDataElement.cs │ │ │ ├── CefPrintDialogCallback.cs │ │ │ ├── CefPrintJobCallback.cs │ │ │ ├── CefPrintSettings.cs │ │ │ ├── CefProcessMessage.cs │ │ │ ├── CefRegistration.cs │ │ │ ├── CefRequest.cs │ │ │ ├── CefRequestCallback.cs │ │ │ ├── CefRequestContext.cs │ │ │ ├── CefResourceBundle.cs │ │ │ ├── CefResourceReadCallback.cs │ │ │ ├── CefResourceSkipCallback.cs │ │ │ ├── CefResponse.cs │ │ │ ├── CefRunContextMenuCallback.cs │ │ │ ├── CefSchemeRegistrar.cs │ │ │ ├── CefSelectClientCertificateCallback.cs │ │ │ ├── CefServer.cs │ │ │ ├── CefSslInfo.cs │ │ │ ├── CefSslStatus.cs │ │ │ ├── CefStreamReader.cs │ │ │ ├── CefStreamWriter.cs │ │ │ ├── CefTaskRunner.cs │ │ │ ├── CefUrlRequest.cs │ │ │ ├── CefV8Context.cs │ │ │ ├── CefV8Exception.cs │ │ │ ├── CefV8StackFrame.cs │ │ │ ├── CefV8StackTrace.cs │ │ │ ├── CefV8Value.cs │ │ │ ├── CefValue.cs │ │ │ ├── CefWebPluginInfo.cs │ │ │ ├── CefX509CertPrincipal.cs │ │ │ ├── CefX509Certificate.cs │ │ │ ├── CefXmlReader.cs │ │ │ └── CefZipReader.cs │ │ ├── Classes.g │ │ │ ├── CefAccessibilityHandler.g.cs │ │ │ ├── CefApp.g.cs │ │ │ ├── CefAudioHandler.g.cs │ │ │ ├── CefAuthCallback.g.cs │ │ │ ├── CefBeforeDownloadCallback.g.cs │ │ │ ├── CefBinaryValue.g.cs │ │ │ ├── CefBrowser.g.cs │ │ │ ├── CefBrowserHost.g.cs │ │ │ ├── CefBrowserProcessHandler.g.cs │ │ │ ├── CefCallback.g.cs │ │ │ ├── CefClient.g.cs │ │ │ ├── CefCommandLine.g.cs │ │ │ ├── CefCompletionCallback.g.cs │ │ │ ├── CefContextMenuHandler.g.cs │ │ │ ├── CefContextMenuParams.g.cs │ │ │ ├── CefCookieAccessFilter.g.cs │ │ │ ├── CefCookieManager.g.cs │ │ │ ├── CefCookieVisitor.g.cs │ │ │ ├── CefDeleteCookiesCallback.g.cs │ │ │ ├── CefDevToolsMessageObserver.g.cs │ │ │ ├── CefDialogHandler.g.cs │ │ │ ├── CefDictionaryValue.g.cs │ │ │ ├── CefDisplayHandler.g.cs │ │ │ ├── CefDomDocument.g.cs │ │ │ ├── CefDomNode.g.cs │ │ │ ├── CefDomVisitor.g.cs │ │ │ ├── CefDownloadHandler.g.cs │ │ │ ├── CefDownloadImageCallback.g.cs │ │ │ ├── CefDownloadItem.g.cs │ │ │ ├── CefDownloadItemCallback.g.cs │ │ │ ├── CefDragData.g.cs │ │ │ ├── CefDragHandler.g.cs │ │ │ ├── CefEndTracingCallback.g.cs │ │ │ ├── CefExtension.g.cs │ │ │ ├── CefExtensionHandler.g.cs │ │ │ ├── CefFileDialogCallback.g.cs │ │ │ ├── CefFindHandler.g.cs │ │ │ ├── CefFocusHandler.g.cs │ │ │ ├── CefFrame.g.cs │ │ │ ├── CefGetExtensionResourceCallback.g.cs │ │ │ ├── CefImage.g.cs │ │ │ ├── CefJSDialogCallback.g.cs │ │ │ ├── CefJSDialogHandler.g.cs │ │ │ ├── CefKeyboardHandler.g.cs │ │ │ ├── CefLifeSpanHandler.g.cs │ │ │ ├── CefListValue.g.cs │ │ │ ├── CefLoadHandler.g.cs │ │ │ ├── CefMediaObserver.g.cs │ │ │ ├── CefMediaRoute.g.cs │ │ │ ├── CefMediaRouteCreateCallback.g.cs │ │ │ ├── CefMediaRouter.g.cs │ │ │ ├── CefMediaSink.g.cs │ │ │ ├── CefMediaSinkDeviceInfoCallback.g.cs │ │ │ ├── CefMediaSource.g.cs │ │ │ ├── CefMenuModel.g.cs │ │ │ ├── CefMenuModelDelegate.g.cs │ │ │ ├── CefNavigationEntry.g.cs │ │ │ ├── CefNavigationEntryVisitor.g.cs │ │ │ ├── CefPdfPrintCallback.g.cs │ │ │ ├── CefPostData.g.cs │ │ │ ├── CefPostDataElement.g.cs │ │ │ ├── CefPrintDialogCallback.g.cs │ │ │ ├── CefPrintHandler.g.cs │ │ │ ├── CefPrintJobCallback.g.cs │ │ │ ├── CefPrintSettings.g.cs │ │ │ ├── CefProcessMessage.g.cs │ │ │ ├── CefReadHandler.g.cs │ │ │ ├── CefRegisterCdmCallback.g.cs │ │ │ ├── CefRegistration.g.cs │ │ │ ├── CefRenderHandler.g.cs │ │ │ ├── CefRenderProcessHandler.g.cs │ │ │ ├── CefRequest.g.cs │ │ │ ├── CefRequestCallback.g.cs │ │ │ ├── CefRequestContext.g.cs │ │ │ ├── CefRequestContextHandler.g.cs │ │ │ ├── CefRequestHandler.g.cs │ │ │ ├── CefResolveCallback.g.cs │ │ │ ├── CefResourceBundle.g.cs │ │ │ ├── CefResourceBundleHandler.g.cs │ │ │ ├── CefResourceHandler.g.cs │ │ │ ├── CefResourceReadCallback.g.cs │ │ │ ├── CefResourceRequestHandler.g.cs │ │ │ ├── CefResourceSkipCallback.g.cs │ │ │ ├── CefResponse.g.cs │ │ │ ├── CefResponseFilter.g.cs │ │ │ ├── CefRunContextMenuCallback.g.cs │ │ │ ├── CefRunFileDialogCallback.g.cs │ │ │ ├── CefSchemeHandlerFactory.g.cs │ │ │ ├── CefSchemeRegistrar.g.cs │ │ │ ├── CefSelectClientCertificateCallback.g.cs │ │ │ ├── CefServer.g.cs │ │ │ ├── CefServerHandler.g.cs │ │ │ ├── CefSetCookieCallback.g.cs │ │ │ ├── CefSslInfo.g.cs │ │ │ ├── CefSslStatus.g.cs │ │ │ ├── CefStreamReader.g.cs │ │ │ ├── CefStreamWriter.g.cs │ │ │ ├── CefStringVisitor.g.cs │ │ │ ├── CefTask.g.cs │ │ │ ├── CefTaskRunner.g.cs │ │ │ ├── CefUrlRequest.g.cs │ │ │ ├── CefUrlRequestClient.g.cs │ │ │ ├── CefUserData.g.cs │ │ │ ├── CefV8Accessor.g.cs │ │ │ ├── CefV8ArrayBufferReleaseCallback.g.cs │ │ │ ├── CefV8Context.g.cs │ │ │ ├── CefV8Exception.g.cs │ │ │ ├── CefV8Handler.g.cs │ │ │ ├── CefV8Interceptor.g.cs │ │ │ ├── CefV8StackFrame.g.cs │ │ │ ├── CefV8StackTrace.g.cs │ │ │ ├── CefV8Value.g.cs │ │ │ ├── CefValue.g.cs │ │ │ ├── CefWebPluginInfo.g.cs │ │ │ ├── CefWebPluginInfoVisitor.g.cs │ │ │ ├── CefWebPluginUnstableCallback.g.cs │ │ │ ├── CefWriteHandler.g.cs │ │ │ ├── CefX509CertPrincipal.g.cs │ │ │ ├── CefX509Certificate.g.cs │ │ │ ├── CefXmlReader.g.cs │ │ │ └── CefZipReader.g.cs │ │ ├── Enums │ │ │ ├── CefAlphaType.cs │ │ │ ├── CefCdmRegistrationError.cs │ │ │ ├── CefCertStatus.cs │ │ │ ├── CefChannelLayout.cs │ │ │ ├── CefColorModel.cs │ │ │ ├── CefColorType.cs │ │ │ ├── CefCompositionUnderlineStyle.cs │ │ │ ├── CefContextMenuEditStateFlags.cs │ │ │ ├── CefContextMenuMediaStateFlags.cs │ │ │ ├── CefContextMenuMediaType.cs │ │ │ ├── CefContextMenuTypeFlags.cs │ │ │ ├── CefContextSafetyImplementation.cs │ │ │ ├── CefCookiePriority.cs │ │ │ ├── CefCookieSameSite.cs │ │ │ ├── CefCrossAxisAlignment.cs │ │ │ ├── CefCursorType.cs │ │ │ ├── CefDomDocumentType.cs │ │ │ ├── CefDomEventCategory.cs │ │ │ ├── CefDomEventPhase.cs │ │ │ ├── CefDomNodeType.cs │ │ │ ├── CefDragOperationsMask.cs │ │ │ ├── CefDuplexMode.cs │ │ │ ├── CefErrorCode.cs │ │ │ ├── CefEventFlags.cs │ │ │ ├── CefFileDialogMode.cs │ │ │ ├── CefFocusSource.cs │ │ │ ├── CefJSDialogType.cs │ │ │ ├── CefJsonParserOptions.cs │ │ │ ├── CefJsonWriterOptions.cs │ │ │ ├── CefKeyEventType.cs │ │ │ ├── CefLogSeverity.cs │ │ │ ├── CefMainAxisAlignment.cs │ │ │ ├── CefMediaRouteConnectionState.cs │ │ │ ├── CefMediaRouteCreateResult.cs │ │ │ ├── CefMediaSinkIconType.cs │ │ │ ├── CefMenuColorType.cs │ │ │ ├── CefMenuId.cs │ │ │ ├── CefMenuItemType.cs │ │ │ ├── CefMouseButtonType.cs │ │ │ ├── CefNavigationType.cs │ │ │ ├── CefPaintElementType.cs │ │ │ ├── CefPathKey.cs │ │ │ ├── CefPdfPrintMarginType.cs │ │ │ ├── CefPluginPolicy.cs │ │ │ ├── CefPointerType.cs │ │ │ ├── CefPostDataElementType.cs │ │ │ ├── CefProcessId.cs │ │ │ ├── CefReferrerPolicy.cs │ │ │ ├── CefResourceType.cs │ │ │ ├── CefResponseFilterStatus.cs │ │ │ ├── CefReturnValue.cs │ │ │ ├── CefScaleFactor.cs │ │ │ ├── CefSchemeOptions.cs │ │ │ ├── CefSslContentStatus.cs │ │ │ ├── CefSslVersion.cs │ │ │ ├── CefState.cs │ │ │ ├── CefStorageType.cs │ │ │ ├── CefTerminationStatus.cs │ │ │ ├── CefTextInputMode.cs │ │ │ ├── CefTextStyle.cs │ │ │ ├── CefThreadId.cs │ │ │ ├── CefTouchEventType.cs │ │ │ ├── CefTransitionType.cs │ │ │ ├── CefUriUnescapeRules.cs │ │ │ ├── CefUrlRequestFlags.cs │ │ │ ├── CefUrlRequestStatus.cs │ │ │ ├── CefV8AccessControl.cs │ │ │ ├── CefV8PropertyAttribute.cs │ │ │ ├── CefValueType.cs │ │ │ ├── CefWindowOpenDisposition.cs │ │ │ ├── CefXmlEncodingType.cs │ │ │ └── CefXmlNodeType.cs │ │ ├── ExceptionBuilder.cs │ │ ├── Exceptions │ │ │ ├── CefRuntimeException.cs │ │ │ └── CefVersionMismatchException.cs │ │ ├── Extensions │ │ │ └── CefBrowserHostExtensions.cs │ │ ├── Interop │ │ │ ├── Base │ │ │ │ ├── cef_base_ref_counted_t.cs │ │ │ │ ├── cef_base_scoped_t.cs │ │ │ │ ├── cef_string_list.cs │ │ │ │ ├── cef_string_map.cs │ │ │ │ ├── cef_string_multimap.cs │ │ │ │ ├── cef_string_t.cs │ │ │ │ └── cef_string_userfree.cs │ │ │ ├── Classes.g │ │ │ │ ├── cef_accessibility_handler_t.g.cs │ │ │ │ ├── cef_app_t.g.cs │ │ │ │ ├── cef_audio_handler_t.g.cs │ │ │ │ ├── cef_auth_callback_t.g.cs │ │ │ │ ├── cef_before_download_callback_t.g.cs │ │ │ │ ├── cef_binary_value_t.g.cs │ │ │ │ ├── cef_browser_host_t.g.cs │ │ │ │ ├── cef_browser_process_handler_t.g.cs │ │ │ │ ├── cef_browser_t.g.cs │ │ │ │ ├── cef_callback_t.g.cs │ │ │ │ ├── cef_client_t.g.cs │ │ │ │ ├── cef_command_line_t.g.cs │ │ │ │ ├── cef_completion_callback_t.g.cs │ │ │ │ ├── cef_context_menu_handler_t.g.cs │ │ │ │ ├── cef_context_menu_params_t.g.cs │ │ │ │ ├── cef_cookie_access_filter_t.g.cs │ │ │ │ ├── cef_cookie_manager_t.g.cs │ │ │ │ ├── cef_cookie_visitor_t.g.cs │ │ │ │ ├── cef_delete_cookies_callback_t.g.cs │ │ │ │ ├── cef_dev_tools_message_observer_t.g.cs │ │ │ │ ├── cef_dialog_handler_t.g.cs │ │ │ │ ├── cef_dictionary_value_t.g.cs │ │ │ │ ├── cef_display_handler_t.g.cs │ │ │ │ ├── cef_domdocument_t.g.cs │ │ │ │ ├── cef_domnode_t.g.cs │ │ │ │ ├── cef_domvisitor_t.g.cs │ │ │ │ ├── cef_download_handler_t.g.cs │ │ │ │ ├── cef_download_image_callback_t.g.cs │ │ │ │ ├── cef_download_item_callback_t.g.cs │ │ │ │ ├── cef_download_item_t.g.cs │ │ │ │ ├── cef_drag_data_t.g.cs │ │ │ │ ├── cef_drag_handler_t.g.cs │ │ │ │ ├── cef_end_tracing_callback_t.g.cs │ │ │ │ ├── cef_extension_handler_t.g.cs │ │ │ │ ├── cef_extension_t.g.cs │ │ │ │ ├── cef_file_dialog_callback_t.g.cs │ │ │ │ ├── cef_find_handler_t.g.cs │ │ │ │ ├── cef_focus_handler_t.g.cs │ │ │ │ ├── cef_frame_t.g.cs │ │ │ │ ├── cef_get_extension_resource_callback_t.g.cs │ │ │ │ ├── cef_image_t.g.cs │ │ │ │ ├── cef_jsdialog_callback_t.g.cs │ │ │ │ ├── cef_jsdialog_handler_t.g.cs │ │ │ │ ├── cef_keyboard_handler_t.g.cs │ │ │ │ ├── cef_life_span_handler_t.g.cs │ │ │ │ ├── cef_list_value_t.g.cs │ │ │ │ ├── cef_load_handler_t.g.cs │ │ │ │ ├── cef_media_observer_t.g.cs │ │ │ │ ├── cef_media_route_create_callback_t.g.cs │ │ │ │ ├── cef_media_route_t.g.cs │ │ │ │ ├── cef_media_router_t.g.cs │ │ │ │ ├── cef_media_sink_device_info_callback_t.g.cs │ │ │ │ ├── cef_media_sink_t.g.cs │ │ │ │ ├── cef_media_source_t.g.cs │ │ │ │ ├── cef_menu_model_delegate_t.g.cs │ │ │ │ ├── cef_menu_model_t.g.cs │ │ │ │ ├── cef_navigation_entry_t.g.cs │ │ │ │ ├── cef_navigation_entry_visitor_t.g.cs │ │ │ │ ├── cef_pdf_print_callback_t.g.cs │ │ │ │ ├── cef_post_data_element_t.g.cs │ │ │ │ ├── cef_post_data_t.g.cs │ │ │ │ ├── cef_print_dialog_callback_t.g.cs │ │ │ │ ├── cef_print_handler_t.g.cs │ │ │ │ ├── cef_print_job_callback_t.g.cs │ │ │ │ ├── cef_print_settings_t.g.cs │ │ │ │ ├── cef_process_message_t.g.cs │ │ │ │ ├── cef_read_handler_t.g.cs │ │ │ │ ├── cef_register_cdm_callback_t.g.cs │ │ │ │ ├── cef_registration_t.g.cs │ │ │ │ ├── cef_render_handler_t.g.cs │ │ │ │ ├── cef_render_process_handler_t.g.cs │ │ │ │ ├── cef_request_callback_t.g.cs │ │ │ │ ├── cef_request_context_handler_t.g.cs │ │ │ │ ├── cef_request_context_t.g.cs │ │ │ │ ├── cef_request_handler_t.g.cs │ │ │ │ ├── cef_request_t.g.cs │ │ │ │ ├── cef_resolve_callback_t.g.cs │ │ │ │ ├── cef_resource_bundle_handler_t.g.cs │ │ │ │ ├── cef_resource_bundle_t.g.cs │ │ │ │ ├── cef_resource_handler_t.g.cs │ │ │ │ ├── cef_resource_read_callback_t.g.cs │ │ │ │ ├── cef_resource_request_handler_t.g.cs │ │ │ │ ├── cef_resource_skip_callback_t.g.cs │ │ │ │ ├── cef_response_filter_t.g.cs │ │ │ │ ├── cef_response_t.g.cs │ │ │ │ ├── cef_run_context_menu_callback_t.g.cs │ │ │ │ ├── cef_run_file_dialog_callback_t.g.cs │ │ │ │ ├── cef_scheme_handler_factory_t.g.cs │ │ │ │ ├── cef_scheme_registrar_t.g.cs │ │ │ │ ├── cef_select_client_certificate_callback_t.g.cs │ │ │ │ ├── cef_server_handler_t.g.cs │ │ │ │ ├── cef_server_t.g.cs │ │ │ │ ├── cef_set_cookie_callback_t.g.cs │ │ │ │ ├── cef_sslinfo_t.g.cs │ │ │ │ ├── cef_sslstatus_t.g.cs │ │ │ │ ├── cef_stream_reader_t.g.cs │ │ │ │ ├── cef_stream_writer_t.g.cs │ │ │ │ ├── cef_string_visitor_t.g.cs │ │ │ │ ├── cef_task_runner_t.g.cs │ │ │ │ ├── cef_task_t.g.cs │ │ │ │ ├── cef_urlrequest_client_t.g.cs │ │ │ │ ├── cef_urlrequest_t.g.cs │ │ │ │ ├── cef_user_data_t.g.cs │ │ │ │ ├── cef_v8accessor_t.g.cs │ │ │ │ ├── cef_v8array_buffer_release_callback_t.g.cs │ │ │ │ ├── cef_v8context_t.g.cs │ │ │ │ ├── cef_v8exception_t.g.cs │ │ │ │ ├── cef_v8handler_t.g.cs │ │ │ │ ├── cef_v8interceptor_t.g.cs │ │ │ │ ├── cef_v8stack_frame_t.g.cs │ │ │ │ ├── cef_v8stack_trace_t.g.cs │ │ │ │ ├── cef_v8value_t.g.cs │ │ │ │ ├── cef_value_t.g.cs │ │ │ │ ├── cef_web_plugin_info_t.g.cs │ │ │ │ ├── cef_web_plugin_info_visitor_t.g.cs │ │ │ │ ├── cef_web_plugin_unstable_callback_t.g.cs │ │ │ │ ├── cef_write_handler_t.g.cs │ │ │ │ ├── cef_x509cert_principal_t.g.cs │ │ │ │ ├── cef_x509certificate_t.g.cs │ │ │ │ ├── cef_xml_reader_t.g.cs │ │ │ │ └── cef_zip_reader_t.g.cs │ │ │ ├── Structs │ │ │ │ ├── cef_audio_parameters_t.cs │ │ │ │ ├── cef_browser_settings_t.cs │ │ │ │ ├── cef_composition_underline.cs │ │ │ │ ├── cef_cookie_t.cs │ │ │ │ ├── cef_cursor_info_t.cs │ │ │ │ ├── cef_draggable_region_t.cs │ │ │ │ ├── cef_key_event_t.cs │ │ │ │ ├── cef_main_args_t.cs │ │ │ │ ├── cef_media_sink_device_info_t.cs │ │ │ │ ├── cef_mouse_event_t.cs │ │ │ │ ├── cef_pdf_print_settings_t.cs │ │ │ │ ├── cef_point_t.cs │ │ │ │ ├── cef_popup_features_t.cs │ │ │ │ ├── cef_range_t.cs │ │ │ │ ├── cef_rect_t.cs │ │ │ │ ├── cef_request_context_settings_t.cs │ │ │ │ ├── cef_screen_info_t.cs │ │ │ │ ├── cef_settings_t.cs │ │ │ │ ├── cef_size_t.cs │ │ │ │ ├── cef_time_t.cs │ │ │ │ ├── cef_touch_event_t.cs │ │ │ │ ├── cef_urlparts_t.cs │ │ │ │ └── cef_window_info_t.cs │ │ │ ├── _Platform │ │ │ │ ├── NativeMethods.cs │ │ │ │ └── RECT.cs │ │ │ ├── libcef.cs │ │ │ ├── libcef.g.cs │ │ │ ├── libcef.string.cs │ │ │ ├── libcef.string_list.cs │ │ │ ├── libcef.string_map.cs │ │ │ ├── libcef.string_multimap.cs │ │ │ ├── libcef.time.cs │ │ │ └── version.g.cs │ │ ├── Platform │ │ │ ├── Linux │ │ │ │ └── CefWindowInfoLinuxImpl.cs │ │ │ ├── Mac │ │ │ │ └── CefWindowInfoMacImpl.cs │ │ │ └── Windows │ │ │ │ ├── CefWindowInfoWindowsImpl.cs │ │ │ │ ├── LoadLibraryFlags.cs │ │ │ │ ├── NativeMethods.cs │ │ │ │ ├── WindowStyles.cs │ │ │ │ └── WindowStylesEx.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── StringHelper.cs │ │ ├── Structs │ │ │ ├── CefAudioParameters.cs │ │ │ ├── CefBrowserSettings.cs │ │ │ ├── CefColor.cs │ │ │ ├── CefCompositionUnderline.cs │ │ │ ├── CefCookie.cs │ │ │ ├── CefCursorInfo.cs │ │ │ ├── CefDraggableRegion.cs │ │ │ ├── CefInsets.cs │ │ │ ├── CefKeyEvent.cs │ │ │ ├── CefMainArgs.cs │ │ │ ├── CefMediaSinkDeviceInfo.cs │ │ │ ├── CefMouseEvent.cs │ │ │ ├── CefPdfPrintSettings.cs │ │ │ ├── CefPoint.cs │ │ │ ├── CefPopupFeatures.cs │ │ │ ├── CefRange.cs │ │ │ ├── CefRectangle.cs │ │ │ ├── CefRequestContextSettings.cs │ │ │ ├── CefScreenInfo.cs │ │ │ ├── CefSettings.cs │ │ │ ├── CefSize.cs │ │ │ ├── CefTouchEvent.cs │ │ │ ├── CefUrlParts.cs │ │ │ └── CefWindowInfo.cs │ │ └── Wrapper │ │ │ └── MessageRouter │ │ │ ├── CefBrowserInfoMap.cs │ │ │ ├── CefMessageRouter.cs │ │ │ ├── CefMessageRouterBrowserSide.cs │ │ │ ├── CefMessageRouterConfig.cs │ │ │ ├── CefMessageRouterRendererSide.cs │ │ │ ├── Helpers.cs │ │ │ └── ReadMe.txt │ │ ├── CefGlueBrowser.cs │ │ ├── CefPlatform.cs │ │ ├── NativeWin.cs │ │ ├── ServiceStack.CefGlue.csproj │ │ └── WebBrowser.cs └── tests │ ├── Directory.Build.props │ └── ServiceStack.CefGlue.Win64.AspNetCore │ ├── Program.cs │ ├── ServiceStack.CefGlue.Win64.AspNetCore.csproj │ ├── Startup.cs │ ├── favicon.ico │ └── index.html ├── deploy-envs.sh ├── docker ├── aws │ ├── Dockerfile │ ├── build.sh │ ├── deploy-envs.sh │ └── deploy.sh ├── azure │ ├── Dockerfile │ ├── build.sh │ ├── deploy-envs.sh │ └── deploy.sh └── tool │ └── Dockerfile ├── license.txt ├── scripts ├── build.sh ├── deploy.sh └── task-definition.json └── src ├── .nuget └── NuGet.config ├── App ├── App.csproj ├── App.sln ├── CefAppHostScheme.cs ├── CefGlueHost.cs ├── CefPlatform.Windows.cs ├── CefProxy.cs ├── Program.cs ├── Shortcut.cs ├── WinapiHostFactory.cs ├── app.nuspec ├── copy.bat ├── favicon.ico ├── generate-filelist.sc ├── global.json ├── install-local-tool.bat ├── pack.bat ├── publish-nuget.bat ├── run.blog.bat ├── run.redis.bat └── runtimeconfig.template.json ├── Mix ├── Mix.csproj ├── Program.cs ├── global.json ├── install-local-tool.bat ├── pack.bat ├── publish-nuget.bat └── runtimeconfig.template.json ├── NuGet.Config ├── Test ├── 10643.html ├── Program.cs ├── Test.csproj ├── apps │ ├── autodto │ │ └── northwind │ │ │ ├── app.settings │ │ │ └── northwind.sqlite │ ├── copy.bat │ └── multitenancy │ │ ├── _db │ │ └── _table.html │ │ ├── _table.html │ │ ├── app.settings │ │ ├── northwind.sqlite │ │ ├── plugins │ │ └── Multitenancy.dll │ │ └── test.html ├── package.json ├── parse-rss.l ├── protos │ ├── alltypes │ │ ├── protobuf-net │ │ │ └── bcl.proto │ │ └── services.proto │ └── todoworld │ │ └── services.proto ├── run-script.cmd ├── script-args.ss ├── script-aws.ss ├── script-azure.ss ├── script-minify.ss ├── script.html ├── script.l ├── script.sc ├── script.ss └── wwwroot │ └── assets │ └── img │ └── logo.svg ├── Tools.sln ├── U ├── NumberToWords.cs ├── Scenario.cs ├── Scenarios │ ├── AllViewsTester.cs │ ├── Buttons.cs │ ├── CharacterMap.cs │ ├── ClassExplorer.cs │ ├── Clipping.cs │ ├── ComputedLayout.cs │ ├── CsvEditor.cs │ ├── Dialogs.cs │ ├── DynamicMenuBar.cs │ ├── Editor.cs │ ├── Generic.cs │ ├── HexEditor.cs │ ├── InteractiveTree.cs │ ├── Keys.cs │ ├── LabelsAsButtons.cs │ ├── ListViewWithSelection.cs │ ├── ListsAndCombos.cs │ ├── MessageBoxes.cs │ ├── Mouse.cs │ ├── Notepad.cs │ ├── Progress.cs │ ├── Scrolling.cs │ ├── SystemConsole.cs │ ├── TabViewExample.cs │ ├── TableEditor.cs │ ├── Text.cs │ ├── TextAlignments.cs │ ├── TextFormatterDemo.cs │ ├── Threading.cs │ ├── TimeAndDate.cs │ ├── TopLevelNoWindowBug.cs │ ├── TreeUseCases.cs │ ├── TreeViewFileSystem.cs │ ├── Unicode.cs │ └── WindowsAndFrameViews.cs ├── U.csproj ├── UICatalog.cs ├── install-local-tool.bat ├── pack.bat ├── pack.sh ├── publish-nuget.bat └── publish-nuget.sh ├── Web ├── CSharpLangInfo.cs ├── FSharpLangInfo.cs ├── LangInfo.cs ├── Program.cs ├── PythonLangInfo.cs ├── README.md ├── Sites.cs ├── Startup.Mix.cs ├── Startup.cs ├── Web.csproj ├── global.json ├── install-local-tool.bat ├── pack.bat ├── publish-nuget.bat ├── run.bare.bat ├── run.blog.bat ├── run.chat.bat ├── run.deploy.apps.sh ├── run.export.apps.bat ├── run.plugins.bat ├── run.plugins2.bat ├── run.redis-html.bat ├── run.redis.bat ├── run.rockwind-mysql.bat ├── run.rockwind-sqlite.bat ├── run.rockwind-sqlserver.bat ├── run.rockwind-vfs-aws.bat ├── run.rockwind-vfs-azure.bat ├── run.rockwind-vfs-postgres.bat ├── run.rockwind-vfs-sqlite.bat ├── run.rockwind-vfs-sqlserver.bat ├── runtimeconfig.template.json └── timefix.ps1 ├── X ├── Program.cs ├── X.csproj ├── global.json ├── install-local-tool.bat ├── install-local-tool.sh ├── pack.bat ├── pack.sh ├── publish-nuget.bat └── publish-nuget.sh ├── apps ├── bare │ ├── _layout.html │ ├── about.html │ ├── app.settings │ ├── assets │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ └── default.css │ │ ├── img │ │ │ ├── favicon.ico │ │ │ └── logo.png │ │ └── js │ │ │ ├── bootstrap.min.js │ │ │ ├── default.js │ │ │ └── jquery.min.js │ ├── contact.html │ ├── hello.html │ ├── index.html │ ├── menu.html │ └── services.html ├── blog │ ├── README.md │ ├── _assert-auth-partial.html │ ├── _assert-post-partial.html │ ├── _editor-partial.html │ ├── _error-partial.html │ ├── _init.html │ ├── _layout.html │ ├── _posts-partial.html │ ├── _user │ │ ├── api.html │ │ └── index.html │ ├── app.release.settings │ ├── app.settings │ ├── db.html │ ├── default.css │ ├── default.js │ ├── editor.js │ ├── hello │ │ └── _name │ │ │ └── index.html │ ├── index.html │ ├── log.html │ ├── posts │ │ ├── _slug │ │ │ ├── api.html │ │ │ ├── delete.html │ │ │ ├── edit.html │ │ │ └── index.html │ │ └── new.html │ └── preview.html ├── chat │ ├── README.md │ ├── _layout.html │ ├── app.release.settings │ ├── app.settings │ ├── assets │ │ ├── css │ │ │ └── default.css │ │ ├── img │ │ │ ├── bg.jpg │ │ │ ├── facebook_normal.png │ │ │ ├── favicon.png │ │ │ ├── github_normal.png │ │ │ ├── no-profile64.png │ │ │ └── twitter_normal.png │ │ └── js │ │ │ └── jquery-3.2.1.min.js │ ├── index.html │ └── plugins │ │ └── Chat.dll ├── northwind.sqlite ├── plugins │ ├── README.md │ ├── _layout.html │ ├── app.settings │ ├── assets │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ └── default.css │ │ ├── img │ │ │ ├── logo-64.png │ │ │ └── metadata-screenshot.png │ │ └── js │ │ │ ├── bootstrap.min.js │ │ │ ├── default.js │ │ │ └── jquery-3.2.1.min.js │ ├── index.html │ ├── live-template.html │ └── plugins │ │ ├── ScriptInfo.dll │ │ └── ServerInfo.dll ├── plugins2 │ ├── _layout.html │ ├── app.settings │ ├── assets │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ └── default.css │ │ ├── img │ │ │ ├── logo-64.png │ │ │ └── metadata-screenshot.png │ │ └── js │ │ │ ├── bootstrap.min.js │ │ │ ├── default.js │ │ │ └── jquery-3.2.1.min.js │ ├── index.html │ ├── live-template.html │ ├── plugins │ │ ├── FilterInfo.dll │ │ └── ServerInfo.dll │ └── templates │ │ └── server-info.txt ├── redis-html │ ├── README.md │ ├── _layout.html │ ├── app.settings │ ├── assets │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ └── default.css │ │ ├── img │ │ │ └── redis-logo.png │ │ └── js │ │ │ └── jquery-3.2.1.min.js │ └── index.html ├── redis │ ├── README.md │ ├── _layout.html │ ├── api │ │ ├── call.html │ │ └── search.html │ ├── app.settings │ ├── assets │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ └── default.css │ │ ├── img │ │ │ ├── favicon.ico │ │ │ ├── redis-logo.png │ │ │ └── redis.ico │ │ └── js │ │ │ ├── axios.min.js │ │ │ ├── html-utils.js │ │ │ ├── vue.js │ │ │ └── vue.min.js │ └── index.html ├── rockwind-vfs │ ├── api │ │ ├── customers.html │ │ └── products.html │ ├── app.aws.settings │ ├── app.azure.settings │ ├── app.postgres.settings │ ├── app.sqlite.settings │ ├── app.sqlserver.settings │ ├── assets │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ └── default.css │ │ ├── img │ │ │ ├── home-icon.jpg │ │ │ └── logo-32.png │ │ └── js │ │ │ ├── bootstrap.min.js │ │ │ ├── customers.json │ │ │ ├── default.js │ │ │ └── jquery-3.2.1.min.js │ ├── index.html │ ├── northwind │ │ ├── _layout.html │ │ ├── categories.html │ │ ├── customer.html │ │ ├── customers.html │ │ ├── employee.html │ │ ├── employees.html │ │ ├── index.html │ │ ├── order.html │ │ ├── products.html │ │ ├── shippers.html │ │ └── suppliers.html │ ├── rockstars │ │ ├── alive │ │ │ ├── _layout.html │ │ │ ├── grohl-url │ │ │ │ └── index.html │ │ │ ├── grohl │ │ │ │ ├── index.html │ │ │ │ └── splash.jpg │ │ │ ├── love │ │ │ │ ├── index.html │ │ │ │ └── splash.jpg │ │ │ ├── springsteen │ │ │ │ ├── index.html │ │ │ │ └── splash.jpg │ │ │ └── vedder │ │ │ │ ├── index.html │ │ │ │ └── splash.jpg │ │ ├── dead │ │ │ ├── _layout.html │ │ │ ├── cobain │ │ │ │ ├── index.html │ │ │ │ └── splash.jpg │ │ │ ├── hendrix │ │ │ │ ├── index.html │ │ │ │ └── splash.jpg │ │ │ ├── jackson │ │ │ │ ├── index.html │ │ │ │ └── splash.jpg │ │ │ ├── joplin │ │ │ │ ├── index.html │ │ │ │ └── splash.jpg │ │ │ └── presley │ │ │ │ ├── index.html │ │ │ │ └── splash.jpg │ │ ├── default.css │ │ ├── img │ │ │ ├── green_dust_scratch.png │ │ │ ├── rip_jobs.png │ │ │ ├── thumb-01.jpg │ │ │ ├── thumb-02.jpg │ │ │ ├── thumb-03.jpg │ │ │ ├── thumb-04.jpg │ │ │ ├── thumb-05.jpg │ │ │ ├── thumb-06.jpg │ │ │ ├── thumb-07.jpg │ │ │ ├── thumb-08.jpg │ │ │ ├── thumb-09.jpg │ │ │ └── tileable_wood_texture.png │ │ ├── menu-alive.html │ │ └── menu-dead.html │ └── template.app.sqlite.settings ├── rockwind │ ├── api │ │ ├── customers.html │ │ └── products.html │ ├── app.azure.settings │ ├── app.mysql.settings │ ├── app.sqlite.settings │ ├── app.sqlserver.settings │ ├── app.template.settings │ ├── assets │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ └── default.css │ │ ├── img │ │ │ ├── home-icon.jpg │ │ │ └── logo-32.png │ │ └── js │ │ │ ├── bootstrap.min.js │ │ │ ├── customers.json │ │ │ ├── default.js │ │ │ └── jquery-3.2.1.min.js │ ├── index.html │ ├── northwind │ │ ├── _layout.html │ │ ├── categories.html │ │ ├── customer.html │ │ ├── customers.html │ │ ├── employee.html │ │ ├── employees.html │ │ ├── index.html │ │ ├── order-report │ │ │ └── _id.html │ │ ├── order.html │ │ ├── products.html │ │ ├── shippers.html │ │ ├── sql │ │ │ ├── api.html │ │ │ └── index.html │ │ └── suppliers.html │ └── rockstars │ │ ├── alive │ │ ├── _layout.html │ │ ├── grohl-url │ │ │ └── index.html │ │ ├── grohl │ │ │ ├── index.html │ │ │ └── splash.jpg │ │ ├── love │ │ │ ├── index.html │ │ │ └── splash.jpg │ │ ├── springsteen │ │ │ ├── index.html │ │ │ └── splash.jpg │ │ └── vedder │ │ │ ├── index.html │ │ │ └── splash.jpg │ │ ├── dead │ │ ├── _layout.html │ │ ├── cobain │ │ │ ├── index.html │ │ │ └── splash.jpg │ │ ├── hendrix │ │ │ ├── index.html │ │ │ └── splash.jpg │ │ ├── jackson │ │ │ ├── index.html │ │ │ └── splash.jpg │ │ ├── joplin │ │ │ ├── index.html │ │ │ └── splash.jpg │ │ └── presley │ │ │ ├── index.html │ │ │ └── splash.jpg │ │ ├── default.css │ │ ├── img │ │ ├── green_dust_scratch.png │ │ ├── rip_jobs.png │ │ ├── thumb-01.jpg │ │ ├── thumb-02.jpg │ │ ├── thumb-03.jpg │ │ ├── thumb-04.jpg │ │ ├── thumb-05.jpg │ │ ├── thumb-06.jpg │ │ ├── thumb-07.jpg │ │ ├── thumb-08.jpg │ │ ├── thumb-09.jpg │ │ └── tileable_wood_texture.png │ │ ├── menu-alive.html │ │ └── menu-dead.html ├── start-bare.bat ├── start-chat.bat ├── start-plugins.bat ├── start-redis-html.bat ├── start-redis.bat ├── start-rockwind-azure.bat ├── start-rockwind-sqlite.bat ├── start-rockwind-vfs-aws.bat ├── start-rockwind-vfs-azure.bat └── start-rockwind-vfs-sqlite.bat ├── example-plugins └── Multitenancy │ ├── ChangeDbFeature.cs │ └── Multitenancy.csproj └── support ├── copy-files ├── CopyFiles.csproj ├── Program.cs ├── populate-azure.bat └── populate-s3.bat └── northwind-data ├── Northwind.cs ├── NorthwindData.csproj ├── Program.cs ├── Properties └── AssemblyInfo.cs ├── populate-azure.bat ├── populate-redis.bat └── populate-sqlserver.bat /.travis.yml: -------------------------------------------------------------------------------- 1 | language: csharp 2 | solution: src/WebApp/WebApp.csproj 3 | os: linux 4 | dist: trusty 5 | sudo: required 6 | dotnet: 2.0.0 7 | mono: none 8 | env: DOTNETCORE=1 9 | services: 10 | - docker 11 | script: 12 | - chmod +x ./deploy-envs.sh 13 | - chmod +x ./scripts/build.sh 14 | - chmod +x ./scripts/deploy.sh 15 | - cd scripts && ./build.sh 16 | - if [ "$TRAVIS_BRANCH" == "master" ]; then ./deploy.sh; fi -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "label": "build", 8 | "command": "dotnet build", 9 | "type": "shell", 10 | "group": "build", 11 | "presentation": { 12 | "reveal": "silent" 13 | }, 14 | "problemMatcher": "$msCompile", 15 | "options": { 16 | "cwd": "${workspaceRoot}/src/Web" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build 2 | WORKDIR /src 3 | COPY /src/GistRun/GistRun.csproj ./ 4 | 5 | RUN dotnet nuget add source https://www.myget.org/F/servicestack -n myget.org 6 | RUN dotnet restore 7 | COPY /src/GistRun . 8 | 9 | RUN dotnet publish -c Release -o /app/publish \ 10 | --no-restore 11 | 12 | COPY /src/GistRun/NuGet.Config /app/publish 13 | 14 | FROM mcr.microsoft.com/dotnet/sdk:5.0 AS final 15 | 16 | COPY /src/GistRun/prefetch.sh ./ 17 | RUN chmod +x prefetch.sh 18 | RUN ./prefetch.sh 19 | 20 | RUN adduser --disabled-password \ 21 | --home /app \ 22 | --gecos '' deploy && chown -R deploy /app 23 | 24 | USER deploy 25 | WORKDIR /app 26 | 27 | EXPOSE 5000 28 | COPY --from=build /app/publish . 29 | ENV DOTNET_NOLOGO 1 30 | ENV DOTNET_CLI_TELEMETRY_OPTOUT 1 31 | ENV INSPECT_VARS .gistrun/vars.json 32 | ENV ASPNETCORE_URLS http://*:5000 33 | 34 | # instruct Kestrel to expose API on port 5000 35 | ENTRYPOINT ["dotnet", "GistRun.dll"] 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Web Apps 2 | 3 | Web Apps developed using ServiceStack Templates 4 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/build/build.bat: -------------------------------------------------------------------------------- 1 | for /f "usebackq tokens=*" %%i in (`..\..\build\vswhere.exe -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe`) do ( 2 | SET MSBUILD="%%i" 3 | ) 4 | %MSBUILD% build.proj /property:Configuration=Release 5 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/build/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | dotnet build ./build.proj /property:Configuration=Release 3 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/build/copy-cef.bat: -------------------------------------------------------------------------------- 1 | RMDIR ..\src\ServiceStack.CefGlue.Win64\locales /s /q 2 | RMDIR ..\src\ServiceStack.CefGlue.Win64\swiftshader /s /q 3 | DEL ..\src\ServiceStack.CefGlue.Win64\*.pak ..\src\ServiceStack.CefGlue.Win64\*.lib ..\src\ServiceStack.CefGlue.Win64\*.dll ..\src\ServiceStack.CefGlue.Win64\*.bin ..\src\ServiceStack.CefGlue.Win64\*.dat ..\src\ServiceStack.CefGlue.Win64\*.exe 4 | 5 | XCOPY /E C:\src\cef_binary_windows64\Release ..\src\ServiceStack.CefGlue.Win64\ 6 | XCOPY /E C:\src\cef_binary_windows64\Resources ..\src\ServiceStack.CefGlue.Win64\ 7 | COPY C:\src\cef_binary_windows64_client\Release\cefclient.exe ..\src\ServiceStack.CefGlue.Win64\ 8 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/build/copy-xilian.bat: -------------------------------------------------------------------------------- 1 | REM RUN prepare.bat 2 | 3 | SET DST_PATH=..\src\ServiceStack.CefGlue\CefGlue 4 | 5 | RMDIR %DST_PATH% /s /q 6 | 7 | XCOPY /E ..\..\cefglue\CefGlue %DST_PATH%\ 8 | 9 | DEL %DST_PATH%\CefGlue.csproj %DST_PATH%\Interop\Base\cef_string_t.disabled.cs 10 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/build/prepare.bat: -------------------------------------------------------------------------------- 1 | REM https://gitlab.com/xiliumhq/chromiumembedded/cefglue 2 | REM COPY https://cef-builds.spotifycdn.com/index.html#windows64 into C:\src\cef_binary_windows64 3 | 4 | XCOPY /E /Y C:\src\cef_binary_windows64\include C:\src\cefglue\CefGlue.Interop.Gen\include\ 5 | 6 | DEL C:\src\cefglue\CefGlue.Interop.Gen\include\cef_thread.h ..\..\cefglue\CefGlue.Interop.Gen\include\cef_waitable_event.h 7 | 8 | PUSHD C:\src\cefglue\CefGlue.Interop.Gen 9 | c:\python27\python.exe -B cefglue_interop_gen.py --schema cef3 --cpp-header-dir include --cefglue-dir ..\CefGlue\ --no-backup 10 | POPD 11 | 12 | REM Install GTK# for .NET from https://www.mono-project.com/download/stable/#download-win 13 | PUSHD C:\src\cefglue 14 | build-net45.cmd 15 | POPD 16 | 17 | REM copy-xilian.bat 18 | REM copy-cef.bat 19 | REM CI Server: update c:\src\cef_binary_windows64 + c:\src\cef_binary_windows64_client + run ServiceStack.CefGlue build task -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/.nuget/NuGet.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue.Win64/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | [assembly: System.Reflection.AssemblyVersion("6.0.0.0")] 2 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue.Win64/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/ServiceStack.CefGlue/src/ServiceStack.CefGlue.Win64/favicon.ico -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefBrowser.partial.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | public partial class CefBrowser 4 | { 5 | public void SendProcessMessage(CefProcessId targetProcess, CefProcessMessage message) 6 | { 7 | this.GetMainFrame().SendProcessMessage(targetProcess, message); 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/CefRuntimePlatform.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | 5 | public enum CefRuntimePlatform 6 | { 7 | Windows, 8 | Linux, 9 | MacOS, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefCompletionCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Generic callback interface used for asynchronous completion. 11 | /// 12 | public abstract unsafe partial class CefCompletionCallback 13 | { 14 | private void on_complete(cef_completion_callback_t* self) 15 | { 16 | CheckSelf(self); 17 | 18 | OnComplete(); 19 | } 20 | 21 | /// 22 | /// Method that will be called once the task is complete. 23 | /// 24 | protected abstract void OnComplete(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefDeleteCookiesCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Interface to implement to be notified of asynchronous completion via 11 | /// CefCookieManager::DeleteCookies(). 12 | /// 13 | public abstract unsafe partial class CefDeleteCookiesCallback 14 | { 15 | private void on_complete(cef_delete_cookies_callback_t* self, int num_deleted) 16 | { 17 | CheckSelf(self); 18 | OnComplete(num_deleted); 19 | } 20 | 21 | /// 22 | /// Method that will be called upon completion. |num_deleted| will be the 23 | /// number of cookies that were deleted. 24 | /// 25 | protected abstract void OnComplete(int numDeleted); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefEndTracingCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Implement this interface to receive notification when tracing has completed. 11 | /// The methods of this class will be called on the browser process UI thread. 12 | /// 13 | public abstract unsafe partial class CefEndTracingCallback 14 | { 15 | private void on_end_tracing_complete(cef_end_tracing_callback_t* self, cef_string_t* tracing_file) 16 | { 17 | CheckSelf(self); 18 | 19 | OnEndTracingComplete(cef_string_t.ToString(tracing_file)); 20 | } 21 | 22 | /// 23 | /// Called after all processes have sent their trace data. |tracing_file| is 24 | /// the path at which tracing data was written. The client is responsible for 25 | /// deleting |tracing_file|. 26 | /// 27 | protected abstract void OnEndTracingComplete(string tracingFile); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefPdfPrintCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface for CefBrowserHost::PrintToPDF. The methods of this class 11 | /// will be called on the browser process UI thread. 12 | /// 13 | public abstract unsafe partial class CefPdfPrintCallback 14 | { 15 | private void on_pdf_print_finished(cef_pdf_print_callback_t* self, cef_string_t* path, int ok) 16 | { 17 | CheckSelf(self); 18 | 19 | var m_path = cef_string_t.ToString(path); 20 | OnPdfPrintFinished(m_path, ok != 0); 21 | } 22 | 23 | /// 24 | /// Method that will be executed when the PDF printing has completed. |path| 25 | /// is the output path. |ok| will be true if the printing completed 26 | /// successfully or false otherwise. 27 | /// 28 | protected abstract void OnPdfPrintFinished(string path, bool ok); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefResolveCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface for CefRequestContext::ResolveHost. 11 | /// 12 | public abstract unsafe partial class CefResolveCallback 13 | { 14 | private void on_resolve_completed(cef_resolve_callback_t* self, CefErrorCode result, cef_string_list* resolved_ips) 15 | { 16 | CheckSelf(self); 17 | 18 | var mResolvedIps = cef_string_list.ToArray(resolved_ips); 19 | OnResolveCompleted(result, mResolvedIps); 20 | } 21 | 22 | /// 23 | /// Called on the UI thread after the ResolveHost request has completed. 24 | /// |result| will be the result code. |resolved_ips| will be the list of 25 | /// resolved IP addresses or empty if the resolution failed. 26 | /// 27 | protected abstract void OnResolveCompleted(CefErrorCode result, string[] resolvedIps); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefSetCookieCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Interface to implement to be notified of asynchronous completion via 11 | /// CefCookieManager::SetCookie(). 12 | /// 13 | public abstract unsafe partial class CefSetCookieCallback 14 | { 15 | private void on_complete(cef_set_cookie_callback_t* self, int success) 16 | { 17 | CheckSelf(self); 18 | OnComplete(success != 0); 19 | } 20 | 21 | /// 22 | /// Method that will be called upon completion. |success| will be true if the 23 | /// cookie was set successfully. 24 | /// 25 | protected abstract void OnComplete(bool success); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefStringVisitor.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Implement this interface to receive string values asynchronously. 11 | /// 12 | public abstract unsafe partial class CefStringVisitor 13 | { 14 | private void visit(cef_string_visitor_t* self, cef_string_t* @string) 15 | { 16 | CheckSelf(self); 17 | 18 | Visit(cef_string_t.ToString(@string)); 19 | } 20 | 21 | /// 22 | /// Method that will be executed. 23 | /// 24 | protected abstract void Visit(string value); 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefTask.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using Xilium.CefGlue.Interop; 6 | 7 | /// 8 | /// Implement this interface for asynchronous task execution. If the task is 9 | /// posted successfully and if the associated message loop is still running then 10 | /// the Execute() method will be called on the target thread. If the task fails 11 | /// to post then the task object may be destroyed on the source thread instead of 12 | /// the target thread. For this reason be cautious when performing work in the 13 | /// task object destructor. 14 | /// 15 | public abstract unsafe partial class CefTask 16 | { 17 | private void execute(cef_task_t* self) 18 | { 19 | CheckSelf(self); 20 | 21 | Execute(); 22 | } 23 | 24 | /// 25 | /// Method that will be executed on the target thread. 26 | /// 27 | protected abstract void Execute(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefUserData.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | using Xilium.CefGlue.Interop; 7 | 8 | public abstract unsafe partial class CefUserData 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefV8ArrayBufferReleaseCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface that is passed to CefV8Value::CreateArrayBuffer. 11 | /// 12 | public abstract unsafe partial class CefV8ArrayBufferReleaseCallback 13 | { 14 | private void release_buffer(cef_v8array_buffer_release_callback_t* self, void* buffer) 15 | { 16 | CheckSelf(self); 17 | 18 | ReleaseBuffer((IntPtr)buffer); 19 | } 20 | 21 | /// 22 | /// Called to release |buffer| when the ArrayBuffer JS object is garbage 23 | /// collected. |buffer| is the value that was passed to CreateArrayBuffer along 24 | /// with this object. 25 | /// 26 | protected abstract void ReleaseBuffer(IntPtr buffer); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Handlers/CefWebPluginUnstableCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Interface to implement for receiving unstable plugin information. The methods 11 | /// of this class will be called on the browser process IO thread. 12 | /// 13 | public abstract unsafe partial class CefWebPluginUnstableCallback 14 | { 15 | private void is_unstable(cef_web_plugin_unstable_callback_t* self, cef_string_t* path, int unstable) 16 | { 17 | CheckSelf(self); 18 | 19 | var m_path = cef_string_t.ToString(path); 20 | IsUnstable(m_path, unstable != 0); 21 | } 22 | 23 | /// 24 | /// Method that will be called for the requested plugin. |unstable| will be 25 | /// true if the plugin has reached the crash count threshold of 3 times in 120 26 | /// seconds. 27 | /// 28 | protected abstract void IsUnstable(string path, bool unstable); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Generic callback interface used for asynchronous continuation. 11 | /// 12 | public sealed unsafe partial class CefCallback 13 | { 14 | /// 15 | /// Continue processing. 16 | /// 17 | public void Continue() 18 | { 19 | cef_callback_t.cont(_self); 20 | } 21 | 22 | /// 23 | /// Cancel processing. 24 | /// 25 | public void Cancel() 26 | { 27 | cef_callback_t.cancel(_self); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefDownloadItemCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface used to asynchronously cancel a download. 11 | /// 12 | public sealed unsafe partial class CefDownloadItemCallback 13 | { 14 | /// 15 | /// Call to cancel the download. 16 | /// 17 | public void Cancel() 18 | { 19 | cef_download_item_callback_t.cancel(_self); 20 | } 21 | 22 | /// 23 | /// Call to pause the download. 24 | /// 25 | public void Pause() 26 | { 27 | cef_download_item_callback_t.pause(_self); 28 | } 29 | 30 | /// 31 | /// Call to resume the download. 32 | /// 33 | public void Resume() 34 | { 35 | cef_download_item_callback_t.resume(_self); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefGetExtensionResourceCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface used for asynchronous continuation of 11 | /// CefExtensionHandler::GetExtensionResource. 12 | /// 13 | public sealed unsafe partial class CefGetExtensionResourceCallback 14 | { 15 | /// 16 | /// Continue the request. Read the resource contents from |stream|. 17 | /// 18 | public void Continue(CefStreamReader stream) 19 | { 20 | var n_stream = stream.ToNative(); 21 | cef_get_extension_resource_callback_t.cont(_self, n_stream); 22 | } 23 | 24 | /// 25 | /// Cancel the request. 26 | /// 27 | public void Cancel() 28 | { 29 | cef_get_extension_resource_callback_t.cancel(_self); 30 | } 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefJSDialogCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface used for asynchronous continuation of JavaScript dialog 11 | /// requests. 12 | /// 13 | public sealed unsafe partial class CefJSDialogCallback 14 | { 15 | /// 16 | /// Continue the JS dialog request. Set |success| to true if the OK button was 17 | /// pressed. The |user_input| value should be specified for prompt dialogs. 18 | /// 19 | public void Continue(bool success, string userInput) 20 | { 21 | fixed (char* userInput_str = userInput) 22 | { 23 | var n_userInput = new cef_string_t(userInput_str, userInput != null ? userInput.Length : 0); 24 | 25 | cef_jsdialog_callback_t.cont(_self, success ? 1 : 0, &n_userInput); 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefPrintDialogCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface for asynchronous continuation of print dialog requests. 11 | /// 12 | public sealed unsafe partial class CefPrintDialogCallback 13 | { 14 | /// 15 | /// Continue printing with the specified |settings|. 16 | /// 17 | public void Continue(CefPrintSettings settings) 18 | { 19 | cef_print_dialog_callback_t.cont(_self, settings.ToNative()); 20 | } 21 | 22 | /// 23 | /// Cancel the printing. 24 | /// 25 | public void Cancel() 26 | { 27 | cef_print_dialog_callback_t.cancel(_self); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefPrintJobCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface for asynchronous continuation of print job requests. 11 | /// 12 | public sealed unsafe partial class CefPrintJobCallback 13 | { 14 | /// 15 | /// Indicate completion of the print job. 16 | /// 17 | public void Continue() 18 | { 19 | cef_print_job_callback_t.cont(_self); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefRegistration.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Generic callback interface used for managing the lifespan of a registration. 11 | /// 12 | public sealed unsafe partial class CefRegistration 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefRequestCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface used for asynchronous continuation of url requests. 11 | /// 12 | public sealed unsafe partial class CefRequestCallback 13 | { 14 | /// 15 | /// Continue the url request. If |allow| is true the request will be continued. 16 | /// Otherwise, the request will be canceled. 17 | /// 18 | public void Continue(bool allow) 19 | { 20 | cef_request_callback_t.cont(_self, allow ? 1 : 0); 21 | } 22 | 23 | /// 24 | /// Cancel the url request. 25 | /// 26 | public void Cancel() 27 | { 28 | cef_request_callback_t.cancel(_self); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefResourceReadCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback for asynchronous continuation of CefResourceHandler::Read(). 11 | /// 12 | public sealed unsafe partial class CefResourceReadCallback 13 | { 14 | /// 15 | /// Callback for asynchronous continuation of Read(). If |bytes_read| == 0 16 | /// the response will be considered complete. If |bytes_read| > 0 then Read() 17 | /// will be called again until the request is complete (based on either the 18 | /// result or the expected content length). If |bytes_read| < 0 then the 19 | /// request will fail and the |bytes_read| value will be treated as the error 20 | /// code. 21 | /// 22 | public void Continue(int bytesRead) 23 | { 24 | cef_resource_read_callback_t.cont(_self, bytesRead); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefResourceSkipCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback for asynchronous continuation of CefResourceHandler::Skip(). 11 | /// 12 | public sealed unsafe partial class CefResourceSkipCallback 13 | { 14 | /// 15 | /// Callback for asynchronous continuation of Skip(). If |bytes_skipped| > 0 16 | /// then either Skip() will be called again until the requested number of 17 | /// bytes have been skipped or the request will proceed. If |bytes_skipped| 18 | /// <= 0 the request will fail with ERR_REQUEST_RANGE_NOT_SATISFIABLE. 19 | /// 20 | public void Continue(long bytesSkipped) 21 | { 22 | cef_resource_skip_callback_t.cont(_self, bytesSkipped); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefRunContextMenuCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface used for continuation of custom context menu display. 11 | /// 12 | public sealed unsafe partial class CefRunContextMenuCallback 13 | { 14 | /// 15 | /// Complete context menu display by selecting the specified |command_id| and 16 | /// |event_flags|. 17 | /// 18 | public void Continue(int commandId, CefEventFlags eventFlags) 19 | { 20 | cef_run_context_menu_callback_t.cont(_self, commandId, eventFlags); 21 | } 22 | 23 | /// 24 | /// Cancel context menu display. 25 | /// 26 | public void Cancel() 27 | { 28 | cef_run_context_menu_callback_t.cancel(_self); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefSelectClientCertificateCallback.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Callback interface used to select a client certificate for authentication. 11 | /// 12 | public sealed unsafe partial class CefSelectClientCertificateCallback 13 | { 14 | /// 15 | /// Chooses the specified certificate for client certificate authentication. 16 | /// NULL value means that no client certificate should be used. 17 | /// 18 | public void Select(CefX509Certificate cert) 19 | { 20 | cef_select_client_certificate_callback_t.select(_self, cert != null ? cert.ToNative() : null); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Classes.Proxies/CefSslInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Diagnostics; 6 | using System.Runtime.InteropServices; 7 | using Xilium.CefGlue.Interop; 8 | 9 | /// 10 | /// Class representing SSL information. 11 | /// 12 | public sealed unsafe partial class CefSslInfo 13 | { 14 | /// 15 | /// Returns a bitmask containing any and all problems verifying the server 16 | /// certificate. 17 | /// 18 | public CefCertStatus CertStatus 19 | { 20 | get { return cef_sslinfo_t.get_cert_status(_self); } 21 | } 22 | 23 | /// 24 | /// Returns the X.509 certificate. 25 | /// 26 | public CefX509Certificate GetX509Certificate() 27 | { 28 | return CefX509Certificate.FromNative( 29 | cef_sslinfo_t.get_x509certificate(_self) 30 | ); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefAlphaType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_alpha_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Describes how to interpret the alpha component of a pixel. 11 | /// 12 | public enum CefAlphaType 13 | { 14 | /// 15 | /// No transparency. The alpha component is ignored. 16 | /// 17 | Opaque, 18 | 19 | /// 20 | /// Transparency with pre-multiplied alpha component. 21 | /// 22 | Premultiplied, 23 | 24 | /// 25 | /// Transparency with post-multiplied alpha component. 26 | /// 27 | Postmultiplied, 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefCdmRegistrationError.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_cdm_registration_error_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Error codes for CDM registration. See cef_web_plugin.h for details. 9 | /// 10 | public enum CefCdmRegistrationError 11 | { 12 | /// 13 | /// No error. Registration completed successfully. 14 | /// 15 | None = 0, 16 | 17 | /// 18 | /// Required files or manifest contents are missing. 19 | /// 20 | IncorrectContents, 21 | 22 | /// 23 | /// The CDM is incompatible with the current Chromium version. 24 | /// 25 | Incompatible, 26 | 27 | /// 28 | /// CDM registration is not supported at this time. 29 | /// 30 | NotSupported, 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefColorModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_color_model_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Print job color mode values. 9 | /// 10 | public enum CefColorModel 11 | { 12 | Unknown = 0, 13 | Gray, 14 | Color, 15 | Cmyk, 16 | Cmy, 17 | Kcmy, 18 | Cmy_K, // CMY_K represents CMY+K. 19 | Black, 20 | Grayscale, 21 | Rgb, 22 | Rgb16, 23 | Rgba, 24 | 25 | ColorMode_Color, // Used in samsung printer ppds. 26 | ColorMode_Monochrome, // Used in samsung printer ppds. 27 | 28 | HP_Color_Color, // Used in HP color printer ppds. 29 | HP_Color_Black, // Used in HP color printer ppds. 30 | 31 | PrintoutMode_Normal, // Used in foomatic ppds. 32 | PrintoutMode_Normal_Gray, // Used in foomatic ppds. 33 | 34 | ProcessColorModel_Cmyk, // Used in canon printer ppds. 35 | ProcessColorModel_Greyscale, // Used in canon printer ppds. 36 | ProcessColorModel_Rgb, // Used in canon printer ppds 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefColorType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_color_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Describes how to interpret the components of a pixel. 11 | /// 12 | public enum CefColorType 13 | { 14 | /// 15 | /// RGBA with 8 bits per pixel (32bits total). 16 | /// 17 | Rgba8888, 18 | 19 | /// 20 | /// BGRA with 8 bits per pixel (32bits total). 21 | /// 22 | Bgra8888, 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefCompositionUnderlineStyle.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_composition_underline_style_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Composition underline style. 11 | /// 12 | public enum CefCompositionUnderlineStyle 13 | { 14 | Solid, 15 | Dot, 16 | Dash, 17 | None, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefContextMenuEditStateFlags.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_context_menu_edit_state_flags_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Supported context menu edit state bit flags. 11 | /// 12 | [Flags] 13 | public enum CefContextMenuEditStateFlags 14 | { 15 | None = 0, 16 | CanUndo = 1 << 0, 17 | CanRedo = 1 << 1, 18 | CanCut = 1 << 2, 19 | CanCopy = 1 << 3, 20 | CanPaste = 1 << 4, 21 | CanDelete = 1 << 5, 22 | CanSelectAll = 1 << 6, 23 | CanTranslate = 1 << 7, 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefContextMenuMediaStateFlags.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_context_menu_media_state_flags_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Supported context menu media state bit flags. 11 | /// 12 | [Flags] 13 | public enum CefContextMenuMediaStateFlags 14 | { 15 | None = 0, 16 | Error = 1 << 0, 17 | Paused = 1 << 1, 18 | Muted = 1 << 2, 19 | Loop = 1 << 3, 20 | CanSave = 1 << 4, 21 | HasAudio = 1 << 5, 22 | HasVideo = 1 << 6, 23 | ControlRootElement = 1 << 7, 24 | CanPrint = 1 << 8, 25 | CanRotate = 1 << 9, 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefContextMenuMediaType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_context_menu_media_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Supported context menu media types. 11 | /// 12 | public enum CefContextMenuMediaType 13 | { 14 | /// 15 | /// No special node is in context. 16 | /// 17 | None, 18 | 19 | /// 20 | /// An image node is selected. 21 | /// 22 | Image, 23 | 24 | /// 25 | /// A video node is selected. 26 | /// 27 | Video, 28 | 29 | /// 30 | /// An audio node is selected. 31 | /// 32 | Audio, 33 | 34 | /// 35 | /// A file node is selected. 36 | /// 37 | File, 38 | 39 | /// 40 | /// A plugin node is selected. 41 | /// 42 | Plugin, 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefContextSafetyImplementation.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | /// 4 | /// CEF offers two context safety implementations with different performance characteristics. 5 | /// 6 | public enum CefContextSafetyImplementation : int 7 | { 8 | /// 9 | /// The default implementation (value of 0) uses a map of hash values and should provide 10 | /// better performance in situations with a small number contexts. 11 | /// 12 | SafeDefault = 0, 13 | 14 | /// 15 | /// The alternate implementation (value of 1) uses a hidden value attached to each context 16 | /// and should provide better performance in situations with a large number of contexts. 17 | /// 18 | SafeAlternate = 1, 19 | 20 | /// 21 | /// If you need better performance in the creation of V8 references and you 22 | /// plan to manually track context lifespan you can disable context safety by 23 | /// specifying a value of -1. 24 | /// 25 | Disabled = -1, 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefCookiePriority.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_cookie_priority_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Cookie priority values. 9 | /// 10 | public enum CefCookiePriority 11 | { 12 | Low = -1, 13 | Medium = 0, 14 | High = 1, 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefCookieSameSite.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_cookie_same_site_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Cookie same site values. 9 | /// 10 | public enum CefCookieSameSite 11 | { 12 | Unspecified, 13 | NoRestriction, 14 | LaxMode, 15 | StrictMode, 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefCrossAxisAlignment.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_cross_axis_alignment_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Specifies where along the cross axis the CefBoxLayout child views should be 11 | /// laid out. 12 | /// 13 | public enum CefCrossAxisAlignment 14 | { 15 | /// 16 | /// Child views will be stretched to fit. 17 | /// 18 | Stretch, 19 | 20 | /// 21 | /// Child views will be left-aligned. 22 | /// 23 | Start, 24 | 25 | /// 26 | /// Child views will be center-aligned. 27 | /// 28 | Center, 29 | 30 | /// 31 | /// Child views will be right-aligned. 32 | /// 33 | End, 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefDomDocumentType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_dom_document_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// DOM document types. 11 | /// 12 | public enum CefDomDocumentType 13 | { 14 | Unknown = 0, 15 | Html, 16 | Xhtml, 17 | Plugin, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefDomEventCategory.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_dom_event_category_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// DOM event category flags. 11 | /// 12 | public enum CefDomEventCategory 13 | { 14 | Unknown = 0x0, 15 | UI = 0x1, 16 | Mouse = 0x2, 17 | Mutation = 0x4, 18 | Keyboard = 0x8, 19 | Text = 0x10, 20 | Composition = 0x20, 21 | Drag = 0x40, 22 | Clipboard = 0x80, 23 | Message = 0x100, 24 | Wheel = 0x200, 25 | BeforeTextInserted = 0x400, 26 | Overflow = 0x800, 27 | PageTransition = 0x1000, 28 | PopState = 0x2000, 29 | Progress = 0x4000, 30 | XmlHttpRequestProgress = 0x8000, 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefDomEventPhase.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_dom_event_phase_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// DOM event processing phases. 11 | /// 12 | public enum CefDomEventPhase 13 | { 14 | Unknown = 0, 15 | Capturing, 16 | AtTarget, 17 | Bubbling, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefDomNodeType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_dom_node_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// DOM node types. 11 | /// 12 | public enum CefDomNodeType 13 | { 14 | Unsupported = 0, 15 | Element, 16 | Attribute, 17 | Text, 18 | CDataSection, 19 | ProcessingInstruction, 20 | Comment, 21 | Document, 22 | DocumentType, 23 | DocumentFragment, 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefDragOperationsMask.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_drag_operations_mask. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// "Verb" of a drag-and-drop operation as negotiated between the source and 11 | /// destination. These constants match their equivalents in WebCore's 12 | /// DragActions.h and should not be renumbered. 13 | /// 14 | public enum CefDragOperationsMask : uint 15 | { 16 | None = 0, 17 | Copy = 1, 18 | Link = 2, 19 | Generic = 4, 20 | Private = 8, 21 | Move = 16, 22 | Delete = 32, 23 | Every = UInt32.MaxValue, 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefDuplexMode.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_duplex_mode_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Print job duplex mode values. 9 | /// 10 | public enum CefDuplexMode 11 | { 12 | Unknown = -1, 13 | Simplex, 14 | LongEdge, 15 | ShortEdge, 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefEventFlags.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_event_flags_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Supported event bit flags. 11 | /// 12 | [Flags] 13 | public enum CefEventFlags : uint 14 | { 15 | None = 0, 16 | 17 | CapsLockOn = 1 << 0, 18 | 19 | ShiftDown = 1 << 1, 20 | ControlDown = 1 << 2, 21 | AltDown = 1 << 3, 22 | 23 | LeftMouseButton = 1 << 4, 24 | MiddleMouseButton = 1 << 5, 25 | RightMouseButton = 1 << 6, 26 | 27 | /// 28 | /// Mac OS-X command key. 29 | /// 30 | CommandDown = 1 << 7, 31 | 32 | NumLockOn = 1 << 8, 33 | IsKeyPad = 1 << 9, 34 | IsLeft = 1 << 10, 35 | IsRight = 1 << 11, 36 | AltGrDown = 1 << 12, 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefFocusSource.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | 5 | /// 6 | /// Focus sources. 7 | /// 8 | public enum CefFocusSource 9 | { 10 | /// 11 | /// The source is explicit navigation via the API (LoadURL(), etc). 12 | /// 13 | Navigation = 0, 14 | 15 | /// 16 | /// The source is a system-generated focus event. 17 | /// 18 | System, 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefJSDialogType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_jsdialog_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Supported JavaScript dialog types. 9 | /// 10 | public enum CefJSDialogType 11 | { 12 | Alert = 0, 13 | Confirm, 14 | Prompt, 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefJsonParserOptions.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_json_parser_options_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Options that can be passed to CefParseJSON. 11 | /// 12 | [Flags] 13 | public enum CefJsonParserOptions 14 | { 15 | /// 16 | /// Parses the input strictly according to RFC 4627. See comments in Chromium's 17 | /// base/json/json_reader.h file for known limitations/deviations from the RFC. 18 | /// 19 | Rfc = 0, 20 | 21 | /// 22 | /// Allows commas to exist after the last element in structures. 23 | /// 24 | AllowTrailingCommas = 1 << 0, 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefKeyEventType.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | 5 | /// 6 | /// Key event types. 7 | /// 8 | public enum CefKeyEventType : int 9 | { 10 | /// 11 | /// Notification that a key transitioned from "up" to "down". 12 | /// 13 | RawKeyDown = 0, 14 | 15 | /// 16 | /// Notification that a key was pressed. This does not necessarily correspond 17 | /// to a character depending on the key and language. Use KEYEVENT_CHAR for 18 | /// character input. 19 | /// 20 | KeyDown, 21 | 22 | /// 23 | /// Notification that a key was released. 24 | /// 25 | KeyUp, 26 | 27 | /// 28 | /// Notification that a character was typed. Use this for text input. Key 29 | /// down events may generate 0, 1, or more than one character event depending 30 | /// on the key, locale, and operating system. 31 | /// 32 | Char, 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefMainAxisAlignment.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_main_axis_alignment_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Specifies where along the main axis the CefBoxLayout child views should be 11 | /// laid out. 12 | /// 13 | public enum CefMainAxisAlignment 14 | { 15 | /// 16 | /// Child views will be left-aligned. 17 | /// 18 | Start, 19 | 20 | /// 21 | /// Child views will be center-aligned. 22 | /// 23 | Center, 24 | 25 | /// 26 | /// Child views will be right-aligned. 27 | /// 28 | End, 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefMediaRouteConnectionState.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_media_route_connection_state_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Connection state for a MediaRoute object. 9 | /// 10 | public enum CefMediaRouteConnectionState 11 | { 12 | Unknown, 13 | Connecting, 14 | Connected, 15 | Closed, 16 | Terminated, 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefMediaRouteCreateResult.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_media_route_create_result_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Result codes for CefMediaRouter::CreateRoute. These constants match 9 | /// their equivalents in Chromium's route_request_result.h and should not be 10 | /// renumbered. 11 | /// 12 | public enum CefMediaRouteCreateResult 13 | { 14 | UnknownError = 0, 15 | Ok = 1, 16 | TimedOut = 2, 17 | RouteNotFound = 3, 18 | SinkNotFound = 4, 19 | InvalidOrigin = 5, 20 | NoSupportedProvider = 7, 21 | Cancelled = 8, 22 | RouteAlreadyExists = 9, 23 | 24 | // CEF_MRCR_TOTAL_COUNT = 11 // The total number of values. 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefMediaSinkIconType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_media_sink_icon_type_t 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Connection state for a MediaRoute object. 9 | /// 10 | public enum CefMediaSinkIconType 11 | { 12 | Cast, 13 | CastAudioGroup, 14 | CastAudio, 15 | Meeting, 16 | Hangout, 17 | Education, 18 | WiredDisplay, 19 | Generic, 20 | 21 | // CEF_MSIT_TOTAL_COUNT, 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefMenuColorType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_menu_color_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Supported color types for menu items. 9 | /// 10 | public enum CefMenuColorType 11 | { 12 | Text, 13 | TextHovered, 14 | TextAccelerator, 15 | TextAcceleratorHovered, 16 | Background, 17 | BackgroundHovered, 18 | Count, 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefMenuItemType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_menu_item_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Supported menu item types. 9 | /// 10 | public enum CefMenuItemType 11 | { 12 | None, 13 | Command, 14 | Check, 15 | Radio, 16 | Separator, 17 | SubMenu, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefMouseButtonType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_mouse_button_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Mouse button types. 9 | /// 10 | public enum CefMouseButtonType 11 | { 12 | Left = 0, 13 | Middle, 14 | Right, 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefNavigationType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_log_severity_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | public enum CefNavigationType 8 | { 9 | LinkClicked = 0, 10 | FormSubmitted, 11 | BackForward, 12 | Reload, 13 | FormResubmitted, 14 | Other, 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefPaintElementType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_paint_element_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Paint element types. 9 | /// 10 | public enum CefPaintElementType 11 | { 12 | View = 0, 13 | Popup, 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefPdfPrintMarginType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_pdf_print_margin_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Margin type for PDF printing. 9 | /// 10 | public enum CefPdfPrintMarginType 11 | { 12 | /// 13 | /// Default margins. 14 | /// 15 | Default, 16 | 17 | /// 18 | /// No margins. 19 | /// 20 | None, 21 | 22 | /// 23 | /// Minimum margins. 24 | /// 25 | Minimum, 26 | 27 | /// 28 | /// Custom margins using the |margin_*| values from cef_pdf_print_settings_t. 29 | /// 30 | Custom, 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefPluginPolicy.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_plugin_policy_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Plugin policies supported by CefRequestContextHandler::OnBeforePluginLoad. 9 | /// 10 | public enum CefPluginPolicy : int 11 | { 12 | /// 13 | /// Allow the content. 14 | /// 15 | Allow, 16 | 17 | /// 18 | /// Allow important content and block unimportant content based on heuristics. 19 | /// The user can manually load blocked content. 20 | /// 21 | DetectImportant, 22 | 23 | /// 24 | /// Block the content. The user can manually load blocked content. 25 | /// 26 | Block, 27 | 28 | /// 29 | /// Disable the content. The user cannot load disabled content. 30 | /// 31 | Disable, 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefPointerType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_pointer_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// The device type that caused the event. 9 | /// 10 | public enum CefPointerType 11 | { 12 | Touch = 0, 13 | Mouse, 14 | Pen, 15 | Eraser, 16 | Unknown, 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefPostDataElementType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_postdataelement_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Post data elements may represent either bytes or files. 9 | /// 10 | public enum CefPostDataElementType 11 | { 12 | Empty = 0, 13 | Bytes, 14 | File, 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefProcessId.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_process_id_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Existing process IDs. 9 | /// 10 | public enum CefProcessId 11 | { 12 | Browser, 13 | Renderer, 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefResponseFilterStatus.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_response_filter_status_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Return values for CefResponseFilter::Filter(). 9 | /// 10 | public enum CefResponseFilterStatus 11 | { 12 | /// 13 | /// Some or all of the pre-filter data was read successfully but more data is 14 | /// needed in order to continue filtering (filtered output is pending). 15 | /// 16 | NeedMoreData, 17 | 18 | /// 19 | /// Some or all of the pre-filter data was read successfully and all available 20 | /// filtered output has been written. 21 | /// 22 | Done, 23 | 24 | /// 25 | /// An error occurred during filtering. 26 | /// 27 | Error, 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefReturnValue.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_return_value_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Return value types. 9 | /// 10 | public enum CefReturnValue 11 | { 12 | /// 13 | /// Cancel immediately. 14 | /// 15 | Cancel = 0, 16 | 17 | /// 18 | /// Continue immediately. 19 | /// 20 | Continue, 21 | 22 | /// 23 | /// Continue asynchronously (usually via a callback). 24 | /// 25 | ContinueAsync, 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefScaleFactor.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_scale_factor_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Supported UI scale factors for the platform. SCALE_FACTOR_NONE is used for 9 | /// density independent resources such as string, html/js files or an image that 10 | /// can be used for any scale factors (such as wallpapers). 11 | /// 12 | public enum CefScaleFactor : int 13 | { 14 | None = 0, 15 | P100, 16 | P125, 17 | P133, 18 | P140, 19 | P150, 20 | P180, 21 | P200, 22 | P250, 23 | P300, 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefSslContentStatus.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_ssl_version_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Supported SSL content status flags. See content/public/common/ssl_status.h 11 | /// for more information. 12 | /// 13 | [Flags] 14 | public enum CefSslContentStatus 15 | { 16 | Normal = 0, 17 | DisplayedInsecure = 1 << 0, 18 | RanInsecure = 1 << 1, 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefSslVersion.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_ssl_version_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Supported SSL version values. See net/ssl/ssl_connection_status_flags.h 9 | /// for more information. 10 | /// 11 | public enum CefSslVersion 12 | { 13 | /// 14 | /// Unknown SSL version. 15 | /// 16 | Unknown = 0, 17 | Ssl2 = 1, 18 | Ssl3 = 2, 19 | Tls1 = 3, 20 | Tls1_1 = 4, 21 | Tls1_2 = 5, 22 | Tls1_3 = 6, 23 | Quic = 7, 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefState.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_state_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Text; 10 | 11 | /// 12 | /// Represents the state of a setting. 13 | /// 14 | public enum CefState : int 15 | { 16 | /// 17 | /// Use the default state for the setting. 18 | /// 19 | Default = 0, 20 | 21 | /// 22 | /// Enable or allow the setting. 23 | /// 24 | Enabled, 25 | 26 | /// 27 | /// Disable or disallow the setting. 28 | /// 29 | Disabled, 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefStorageType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_storage_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Storage types. 9 | /// 10 | public enum CefStorageType 11 | { 12 | Local = 0, 13 | Session, 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefTerminationStatus.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_termination_status_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Process termination status values. 9 | /// 10 | public enum CefTerminationStatus 11 | { 12 | /// 13 | /// Non-zero exit status. 14 | /// 15 | Termination, 16 | 17 | /// 18 | /// SIGKILL or task manager kill. 19 | /// 20 | WasKilled, 21 | 22 | /// 23 | /// Segmentation fault. 24 | /// 25 | ProcessCrashed, 26 | 27 | /// 28 | /// Out of memory. Some platforms may use TS_PROCESS_CRASHED instead. 29 | /// 30 | OutOfMemory, 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefTextInputMode.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_text_input_mode_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Input mode of a virtual keyboard. These constants match their equivalents 9 | /// in Chromium's text_input_mode.h and should not be renumbered. 10 | /// See https://html.spec.whatwg.org/#input-modalities:-the-inputmode-attribute 11 | /// 12 | public enum CefTextInputMode 13 | { 14 | Default, 15 | None, 16 | Text, 17 | Tel, 18 | Url, 19 | Email, 20 | Numeric, 21 | Decimal, 22 | Search, 23 | 24 | Max = Search, 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefTextStyle.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_text_style_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// Text style types. Should be kepy in sync with gfx::TextStyle. 11 | /// 12 | public enum CefTextStyle 13 | { 14 | Bold, 15 | Italic, 16 | Strike, 17 | DiagonalStrike, 18 | Underline, 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefTouchEventType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_touch_event_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Touch points states types. 9 | /// 10 | public enum CefTouchEventType 11 | { 12 | Released = 0, 13 | Pressed, 14 | Moved, 15 | Cancelled, 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefUrlRequestStatus.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_urlrequest_flags_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | public enum CefUrlRequestStatus 10 | { 11 | /// 12 | /// Unknown status. 13 | /// 14 | Unknown = 0, 15 | 16 | /// 17 | /// Request succeeded. 18 | /// 19 | Success, 20 | 21 | /// 22 | /// An IO request is pending, and the caller will be informed when it is 23 | /// completed. 24 | /// 25 | IOPending, 26 | 27 | /// 28 | /// Request was canceled programatically. 29 | /// 30 | Canceled, 31 | 32 | /// 33 | /// Request failed for some reason. 34 | /// 35 | Failed, 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefV8AccessControl.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_v8_accesscontrol_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// V8 access control values. 11 | /// 12 | [Flags] 13 | public enum CefV8AccessControl 14 | { 15 | Default = 0, 16 | AllCanRead = 1, 17 | AllCanWrite = 1 << 1, 18 | ProhibitsOverwriting = 1 << 2, 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefV8PropertyAttribute.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_v8_propertyattribute_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | using System; 8 | 9 | /// 10 | /// V8 property attribute values. 11 | /// 12 | [Flags] 13 | public enum CefV8PropertyAttribute 14 | { 15 | None = 0, 16 | ReadOnly = 1 << 0, 17 | DontEnum = 1 << 1, 18 | DontDelete = 1 << 2, 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefValueType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_value_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Supported value types. 9 | /// 10 | public enum CefValueType 11 | { 12 | Invalid = 0, 13 | Null, 14 | Bool, 15 | Int, 16 | Double, 17 | String, 18 | Binary, 19 | Dictionary, 20 | List, 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefWindowOpenDisposition.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_window_open_disposition_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// The manner in which a link click should be opened. These constants match 9 | /// their equivalents in Chromium's window_open_disposition.h and should not be 10 | /// renumbered. 11 | /// 12 | public enum CefWindowOpenDisposition 13 | { 14 | Unknown = 0, 15 | CurrentTab, 16 | SingletonTab, 17 | NewForegroundTab, 18 | NewBackgroundTab, 19 | NewPopup, 20 | NewWindow, 21 | SaveToDisk, 22 | OffTheRecord, 23 | IgnoreAction, 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefXmlEncodingType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_xml_encoding_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// Supported XML encoding types. The parser supports ASCII, ISO-8859-1, and 9 | /// UTF16 (LE and BE) by default. All other types must be translated to UTF8 10 | /// before being passed to the parser. If a BOM is detected and the correct 11 | /// decoder is available then that decoder will be used automatically. 12 | /// 13 | public enum CefXmlEncoding 14 | { 15 | None = 0, 16 | Utf8, 17 | Utf16LE, 18 | Utf16BE, 19 | Ascii, 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Enums/CefXmlNodeType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // C API name: cef_xml_node_type_t. 4 | // 5 | namespace Xilium.CefGlue 6 | { 7 | /// 8 | /// XML node types. 9 | /// 10 | public enum CefXmlNodeType 11 | { 12 | Unsupported = 0, 13 | ProcessingInstruction, 14 | DocumentType, 15 | ElementStart, 16 | ElementEnd, 17 | Attribute, 18 | Text, 19 | CData, 20 | EntityReference, 21 | WhiteSpace, 22 | Comment, 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Exceptions/CefRuntimeException.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | 7 | public class CefRuntimeException : Exception 8 | { 9 | public CefRuntimeException(string message) 10 | : base(message) 11 | { 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Exceptions/CefVersionMismatchException.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | 7 | public sealed class CefVersionMismatchException : CefRuntimeException 8 | { 9 | public CefVersionMismatchException(string message) 10 | : base(message) 11 | { 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Extensions/CefBrowserHostExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xilium.CefGlue 4 | { 5 | public static class CefBrowserHostExtensions 6 | { 7 | public static unsafe bool SendDevToolsMessage(this CefBrowserHost browserHost, byte[] message) 8 | { 9 | fixed (byte* messagePtr = &message[0]) 10 | { 11 | return browserHost.SendDevToolsMessage((IntPtr)messagePtr, message.Length); 12 | } 13 | } 14 | 15 | public static unsafe bool SendDevToolsMessage(this CefBrowserHost browserHost, ArraySegment message) 16 | { 17 | fixed (byte* messagePtr = &message.Array[message.Offset]) 18 | { 19 | return browserHost.SendDevToolsMessage((IntPtr)messagePtr, message.Count); 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Base/cef_base_scoped_t.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue.Interop 2 | { 3 | using System; 4 | using System.Runtime.InteropServices; 5 | using System.Security; 6 | 7 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 8 | internal unsafe struct cef_base_scoped_t 9 | { 10 | internal UIntPtr _size; 11 | internal IntPtr _del; 12 | 13 | [UnmanagedFunctionPointer(libcef.CEF_CALLBACK)] 14 | #if !DEBUG 15 | [SuppressUnmanagedCodeSecurity] 16 | #endif 17 | public delegate void del_delegate(cef_base_ref_counted_t* self); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_audio_parameters_t.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal unsafe struct cef_audio_parameters_t 11 | { 12 | public CefChannelLayout channel_layout; 13 | public int sample_rate; 14 | public int frames_per_buffer; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_composition_underline.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal struct cef_composition_underline_t 11 | { 12 | public cef_range_t range; 13 | public uint color; 14 | public uint background_color; 15 | public int thick; 16 | public CefCompositionUnderlineStyle style; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_cursor_info_t.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue.Interop 2 | { 3 | using System; 4 | using System.Runtime.InteropServices; 5 | 6 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 7 | internal unsafe struct cef_cursor_info_t 8 | { 9 | public cef_point_t hotspot; 10 | public float image_scale_factor; 11 | public void* buffer; 12 | public cef_size_t size; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_draggable_region_t.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal unsafe struct cef_draggable_region_t 11 | { 12 | public cef_rect_t bounds; 13 | public int draggable; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_key_event_t.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue.Interop 2 | { 3 | using System; 4 | using System.Runtime.InteropServices; 5 | 6 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 7 | internal unsafe struct cef_key_event_t 8 | { 9 | public CefKeyEventType type; 10 | public CefEventFlags modifiers; 11 | public int windows_key_code; 12 | public int native_key_code; 13 | public int is_system_key; 14 | public ushort character; 15 | public ushort unmodified_character; 16 | public int focus_on_editable_field; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_media_sink_device_info_t.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal unsafe struct cef_media_sink_device_info_t 11 | { 12 | public cef_string_t ip_address; 13 | public int port; 14 | public cef_string_t model_name; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_mouse_event_t.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue.Interop 2 | { 3 | using System; 4 | using System.Runtime.InteropServices; 5 | 6 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 7 | internal unsafe struct cef_mouse_event_t 8 | { 9 | public int x; 10 | public int y; 11 | public CefEventFlags modifiers; 12 | 13 | public cef_mouse_event_t(int x, int y, CefEventFlags modifiers) 14 | { 15 | this.x = x; 16 | this.y = y; 17 | this.modifiers = modifiers; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_point_t.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal unsafe struct cef_point_t 11 | { 12 | public int x; 13 | public int y; 14 | 15 | public cef_point_t(int x, int y) 16 | { 17 | this.x = x; 18 | this.y = y; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_popup_features_t.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal unsafe struct cef_popup_features_t 11 | { 12 | public int x; 13 | public int xSet; 14 | public int y; 15 | public int ySet; 16 | public int width; 17 | public int widthSet; 18 | public int height; 19 | public int heightSet; 20 | 21 | public int menuBarVisible; 22 | public int statusBarVisible; 23 | public int toolBarVisible; 24 | public int scrollbarsVisible; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_range_t.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal unsafe struct cef_range_t 11 | { 12 | public int from; 13 | public int to; 14 | 15 | public cef_range_t(int from, int to) 16 | { 17 | this.from = from; 18 | this.to = to; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_rect_t.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal unsafe struct cef_rect_t 11 | { 12 | public int x; 13 | public int y; 14 | public int width; 15 | public int height; 16 | 17 | public cef_rect_t(int x, int y, int width, int height) 18 | { 19 | this.x = x; 20 | this.y = y; 21 | this.width = width; 22 | this.height = height; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_screen_info_t.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal unsafe struct cef_screen_info_t 11 | { 12 | public float device_scale_factor; 13 | public int depth; 14 | public int depth_per_component; 15 | public int is_monochrome; 16 | public cef_rect_t rect; 17 | public cef_rect_t available_rect; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/Structs/cef_size_t.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file manually written from cef/include/internal/cef_types.h. 3 | // 4 | namespace Xilium.CefGlue.Interop 5 | { 6 | using System; 7 | using System.Runtime.InteropServices; 8 | 9 | [StructLayout(LayoutKind.Sequential, Pack = libcef.ALIGN)] 10 | internal unsafe struct cef_size_t 11 | { 12 | public int width; 13 | public int height; 14 | 15 | public cef_size_t(int width, int height) 16 | { 17 | this.width = width; 18 | this.height = height; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Interop/_Platform/NativeMethods.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue.Interop 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | 7 | internal static partial class NativeMethods 8 | { 9 | public const int CW_USEDEFAULT = unchecked((int)0x80000000); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Platform/Windows/LoadLibraryFlags.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue.Platform.Windows 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | 7 | [Flags] 8 | public enum LoadLibraryFlags : uint 9 | { 10 | DONT_RESOLVE_DLL_REFERENCES = 0x00000001, 11 | LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010, 12 | LOAD_LIBRARY_AS_DATAFILE = 0x00000002, 13 | LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x00000040, 14 | LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x00000020, 15 | LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Platform/Windows/NativeMethods.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue.Platform.Windows 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Runtime.InteropServices; 6 | using System.Text; 7 | 8 | internal static partial class NativeMethods 9 | { 10 | [DllImport("kernel32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] 11 | public static extern IntPtr GetModuleHandle(string lpModuleName); 12 | 13 | [DllImport("kernel32.dll", SetLastError = true)] 14 | public static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hReservedNull, LoadLibraryFlags dwFlags); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/StringHelper.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | 7 | internal static class StringHelper 8 | { 9 | public static bool IsNullOrEmpty(string value) 10 | { 11 | return value == null || value.Length == 0; 12 | } 13 | 14 | public static bool IsNullOrWhiteSpace(string value) 15 | { 16 | if (value == null) return true; 17 | 18 | for (int i = 0; i < value.Length; i++) 19 | { 20 | if (!char.IsWhiteSpace(value[i])) return false; 21 | } 22 | 23 | return true; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Structs/CefColor.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | 5 | public struct CefColor 6 | { 7 | private uint _value; 8 | 9 | public CefColor(uint argb) 10 | { 11 | _value = argb; 12 | } 13 | 14 | public CefColor(byte alpha, byte red, byte green, byte blue) 15 | { 16 | _value = unchecked((uint)((alpha << 24) | (red << 16) | (green << 8) | blue)); 17 | } 18 | 19 | public byte A { get { return unchecked((byte)(_value >> 24)); } } 20 | 21 | public byte R { get { return unchecked((byte)(_value >> 16)); } } 22 | 23 | public byte G { get { return unchecked((byte)(_value >> 8)); } } 24 | 25 | public byte B { get { return unchecked((byte)(_value)); } } 26 | 27 | public uint ToArgb() 28 | { 29 | return _value; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Structs/CefDraggableRegion.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | using Xilium.CefGlue.Interop; 7 | 8 | public sealed class CefDraggableRegion 9 | { 10 | internal static unsafe CefDraggableRegion FromNative(cef_draggable_region_t* ptr) 11 | { 12 | return new CefDraggableRegion(ptr); 13 | } 14 | 15 | private readonly CefRectangle _bounds; 16 | private readonly bool _draggable; 17 | 18 | private unsafe CefDraggableRegion(cef_draggable_region_t* ptr) 19 | { 20 | _bounds = new CefRectangle( 21 | ptr->bounds.x, 22 | ptr->bounds.y, 23 | ptr->bounds.width, 24 | ptr->bounds.height 25 | ); 26 | _draggable = ptr->draggable != 0; 27 | } 28 | 29 | public CefRectangle Bounds { get { return _bounds; } } 30 | 31 | public bool Draggable { get { return _draggable; } } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Structs/CefInsets.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | using Xilium.CefGlue.Interop; 7 | 8 | public struct CefInsets 9 | { 10 | private int _top; 11 | private int _left; 12 | private int _bottom; 13 | private int _right; 14 | 15 | public CefInsets(int top, int left, int bottom, int right) 16 | { 17 | _top = top; 18 | _left = left; 19 | _bottom = bottom; 20 | _right = right; 21 | } 22 | 23 | public int Top 24 | { 25 | get { return _top; } 26 | set { _top = value; } 27 | } 28 | 29 | public int Left 30 | { 31 | get { return _left; } 32 | set { _left = value; } 33 | } 34 | 35 | public int Bottom 36 | { 37 | get { return _bottom; } 38 | set { _bottom = value; } 39 | } 40 | 41 | public int Right 42 | { 43 | get { return _right; } 44 | set { _right = value; } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Structs/CefMediaSinkDeviceInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | /// 4 | /// Device information for a MediaSink object. 5 | /// 6 | public readonly struct CefMediaSinkDeviceInfo 7 | { 8 | private readonly string _ipAddress; 9 | private readonly int _port; 10 | private readonly string _modelName; 11 | 12 | public CefMediaSinkDeviceInfo(string ipAddress, int port, string modelName) 13 | { 14 | _ipAddress = ipAddress; 15 | _port = port; 16 | _modelName = modelName; 17 | } 18 | 19 | public readonly string IPAddress => _ipAddress; 20 | 21 | public readonly int Port => _port; 22 | 23 | public readonly string ModelName => _modelName; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Structs/CefPoint.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | using Xilium.CefGlue.Interop; 7 | 8 | public struct CefPoint 9 | { 10 | private int _x; 11 | private int _y; 12 | 13 | public CefPoint(int x, int y) 14 | { 15 | _x = x; 16 | _y = y; 17 | } 18 | 19 | public int X 20 | { 21 | get { return _x; } 22 | set { _x = value; } 23 | } 24 | 25 | public int Y 26 | { 27 | get { return _y; } 28 | set { _y = value; } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Structs/CefRange.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | using Xilium.CefGlue.Interop; 7 | 8 | public struct CefRange 9 | { 10 | private int _from; 11 | private int _to; 12 | 13 | public CefRange(int from, int to) 14 | { 15 | _from = from; 16 | _to = to; 17 | } 18 | 19 | public int From 20 | { 21 | get { return _from; } 22 | set { _from = value; } 23 | } 24 | 25 | public int To 26 | { 27 | get { return _to; } 28 | set { _to = value; } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Structs/CefRectangle.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | using Xilium.CefGlue.Interop; 7 | 8 | public struct CefRectangle 9 | { 10 | private int _x; 11 | private int _y; 12 | private int _width; 13 | private int _height; 14 | 15 | public CefRectangle(int x, int y, int width, int height) 16 | { 17 | _x = x; 18 | _y = y; 19 | _width = width; 20 | _height = height; 21 | } 22 | 23 | public int X 24 | { 25 | get { return _x; } 26 | set { _x = value; } 27 | } 28 | 29 | public int Y 30 | { 31 | get { return _y; } 32 | set { _y = value; } 33 | } 34 | 35 | public int Width 36 | { 37 | get { return _width; } 38 | set { _width = value; } 39 | } 40 | 41 | public int Height 42 | { 43 | get { return _height; } 44 | set { _height = value; } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefGlue/Structs/CefSize.cs: -------------------------------------------------------------------------------- 1 | namespace Xilium.CefGlue 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | using Xilium.CefGlue.Interop; 7 | 8 | public struct CefSize 9 | { 10 | private int _width; 11 | private int _height; 12 | 13 | public CefSize(int width, int height) 14 | { 15 | _width = width; 16 | _height = height; 17 | } 18 | 19 | public int Width 20 | { 21 | get { return _width; } 22 | set { _width = value; } 23 | } 24 | 25 | public int Height 26 | { 27 | get { return _height; } 28 | set { _height = value; } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/src/ServiceStack.CefGlue/CefPlatform.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using Xilium.CefGlue; 4 | 5 | namespace ServiceStack.CefGlue 6 | { 7 | public abstract class CefPlatform 8 | { 9 | public static CefPlatform Instance { get; protected set; } 10 | 11 | public abstract CefSize GetScreenResolution(); 12 | 13 | public abstract void HideConsoleWindow(); 14 | 15 | public abstract void ResizeWindow(IntPtr handle, int width, int height); 16 | 17 | public abstract Rectangle GetClientRectangle(IntPtr handle); 18 | 19 | public abstract void SetWindowFullScreen(IntPtr handle); 20 | 21 | public abstract void ShowScrollBar(IntPtr handle, bool show); 22 | } 23 | } -------------------------------------------------------------------------------- /ServiceStack.CefGlue/tests/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6.0.3 5 | latest 6 | false 7 | 8 | 9 | 10 | DEBUG 11 | 12 | 13 | 14 | $(DefineConstants);NETFX;NET472 15 | 16 | 17 | 18 | $(DefineConstants);NETCORE;NETSTANDARD2_0 19 | 20 | 21 | 22 | $(DefineConstants);NET6_0;NET6_0_OR_GREATER 23 | 24 | 25 | 26 | $(DefineConstants);NETCORE;NETCORE_SUPPORT 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ServiceStack.CefGlue/tests/ServiceStack.CefGlue.Win64.AspNetCore/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/ServiceStack.CefGlue/tests/ServiceStack.CefGlue.Win64.AspNetCore/favicon.ico -------------------------------------------------------------------------------- /ServiceStack.CefGlue/tests/ServiceStack.CefGlue.Win64.AspNetCore/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

X-Frame-Options Proxy Test

9 | 10 | 11 | 12 |

open in _blank

13 |

window.open()

14 | 15 | 16 | -------------------------------------------------------------------------------- /deploy-envs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # set environment variables used in deploy.sh and AWS task-definition.json: 4 | export IMAGE_NAME=netcoreapps-rockwind-aws 5 | export IMAGE_VERSION=latest 6 | 7 | export AWS_DEFAULT_REGION=us-east-1 8 | export AWS_ECS_CLUSTER_NAME=default 9 | export AWS_VIRTUAL_HOST=rockwind-aws.web-app.io 10 | 11 | export AZURE_REGISTRY=netcoreapps.azurecr.io 12 | 13 | # set any sensitive information in travis-ci encrypted project settings: 14 | # required: AWS_ACCOUNT_ID, AWS_ACCESS_KEY, AWS_SECRET_KEY 15 | # optional: SERVICESTACK_LICENSE 16 | 17 | # required: AZURE_REGISTRY_LOGIN, AZURE_REGISTRY_PASSWORD -------------------------------------------------------------------------------- /docker/aws/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:2.0-sdk 2 | COPY src/apps/web /web 3 | ADD src/apps/rockwind-vfs/web.aws.settings /web/web.settings 4 | WORKDIR /web 5 | EXPOSE 5000/tcp 6 | ENV ASPNETCORE_URLS https://*:5000 7 | ENTRYPOINT ["dotnet", "/web/app.dll"] -------------------------------------------------------------------------------- /docker/aws/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source ./deploy-envs.sh 3 | 4 | #AWS_ACCOUNT_ID={} set in private variable 5 | export AWS_ECS_REPO_DOMAIN=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com 6 | 7 | # Have to copy to the root foolder to avoid docker context limitations 8 | cp ./Dockerfile ../../Dockerfile 9 | # Build process 10 | docker build -t $IMAGE_NAME ../../. 11 | docker tag $IMAGE_NAME $AWS_ECS_REPO_DOMAIN/$IMAGE_NAME:$IMAGE_VERSION 12 | -------------------------------------------------------------------------------- /docker/aws/deploy-envs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # set environment variables used in deploy.sh and AWS task-definition.json: 4 | export IMAGE_NAME=netcoreapps-rockwind-aws 5 | export IMAGE_VERSION=latest 6 | 7 | export AWS_DEFAULT_REGION=us-east-1 8 | export AWS_ECS_CLUSTER_NAME=default 9 | export AWS_VIRTUAL_HOST=rockwind-aws.web-app.io 10 | 11 | # set any sensitive information in travis-ci encrypted project settings: 12 | # required: AWS_ACCOUNT_ID, AWS_ACCESS_KEY, AWS_SECRET_KEY 13 | # optional: SERVICESTACK_LICENSE -------------------------------------------------------------------------------- /docker/azure/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:2.0-sdk 2 | COPY src/apps/web /web 3 | COPY src/apps/rockwind-vfs/web.azure.settings /web/web.settings 4 | WORKDIR /web 5 | EXPOSE 5000/tcp 6 | ENV ASPNETCORE_URLS https://*:5000 7 | ENTRYPOINT ["dotnet", "/web/app.dll"] -------------------------------------------------------------------------------- /docker/azure/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source ./deploy-envs.sh 3 | 4 | # Have to copy to the root foolder to avoid docker context limitations 5 | cp ./Dockerfile ../../Dockerfile 6 | # Build process 7 | docker build -t $IMAGE_NAME ../../. 8 | # Tag docker image for latter push to Azure Registry Container 9 | docker tag $IMAGE_NAME $AZURE_REGISTRY/$IMAGE_NAME:$IMAGE_VERSION 10 | -------------------------------------------------------------------------------- /docker/azure/deploy-envs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # set environment variables used in deploy.sh and AWS task-definition.json: 4 | export IMAGE_NAME=netcoreapps-rockwind-azure 5 | export IMAGE_VERSION=latest 6 | 7 | export AZURE_REGISTRY=netcoreapps.azurecr.io 8 | 9 | # set any sensitive information in travis-ci encrypted project settings: 10 | # required: AZURE_REGISTRY_LOGIN, AZURE_REGISTRY_PASSWORD 11 | # optional: SERVICESTACK_LICENSE 12 | -------------------------------------------------------------------------------- /docker/azure/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source ./deploy-envs.sh 3 | 4 | docker login $AZURE_REGISTRY -u $AZURE_REGISTRY_LOGIN -p $AZURE_REGISTRY_PASSWORD 5 | 6 | docker push $AZURE_REGISTRY/$IMAGE_NAME:$IMAGE_VERSION 7 | -------------------------------------------------------------------------------- /docker/tool/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build 2 | COPY app /app 3 | WORKDIR /app 4 | RUN dotnet tool install -g x 5 | 6 | # Build runtime image 7 | FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime 8 | WORKDIR /app 9 | COPY --from=build /app app 10 | COPY --from=build /root/.dotnet/tools tools 11 | ENV ASPNETCORE_URLS http://*:5000 12 | ENTRYPOINT ["/app/tools/x", "app/app.settings"] -------------------------------------------------------------------------------- /scripts/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source ../deploy-envs.sh 3 | 4 | #AWS_ACCOUNT_ID={} set in private variable 5 | export AWS_ECS_REPO_DOMAIN=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com 6 | 7 | # Build process 8 | docker build -t $IMAGE_NAME ../ 9 | docker tag $IMAGE_NAME $AWS_ECS_REPO_DOMAIN/$IMAGE_NAME:$IMAGE_VERSION 10 | 11 | # Tag docker image for latter push to Azure Registry Container 12 | docker tag $IMAGE_NAME $AZURE_REGISTRY/$IMAGE_NAME:$IMAGE_VERSION 13 | -------------------------------------------------------------------------------- /scripts/task-definition.json: -------------------------------------------------------------------------------- 1 | { 2 | "family": "${ECS_TASK}", 3 | "networkMode": "bridge", 4 | "containerDefinitions": [ 5 | { 6 | "image": "${AWS_ECS_REPO_DOMAIN}/${IMAGE_NAME}:${IMAGE_VERSION}", 7 | "name": "${IMAGE_NAME}", 8 | "cpu": 128, 9 | "memory": 256, 10 | "essential": true, 11 | "portMappings": [ 12 | { 13 | "containerPort": 5000, 14 | "hostPort": 0, 15 | "protocol": "tcp" 16 | } 17 | ], 18 | "environment": [ 19 | { 20 | "name": "VIRTUAL_HOST", 21 | "value": "${AWS_VIRTUAL_HOST}" 22 | }, 23 | { 24 | "name": "AWS_ACCESS_KEY", 25 | "value": "${AWS_ACCESS_KEY}" 26 | }, 27 | { 28 | "name": "AWS_SECRET_KEY", 29 | "value": "${AWS_SECRET_KEY}" 30 | }, 31 | { 32 | "name": "AWS_RDS_POSTGRES", 33 | "value": "${AWS_RDS_POSTGRES}" 34 | } 35 | ] 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /src/.nuget/NuGet.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/App/App.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.5.002.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App", "App.csproj", "{A28182C4-E66D-4E0E-B98D-F278DE3F9DEE}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {A28182C4-E66D-4E0E-B98D-F278DE3F9DEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {A28182C4-E66D-4E0E-B98D-F278DE3F9DEE}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {A28182C4-E66D-4E0E-B98D-F278DE3F9DEE}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {A28182C4-E66D-4E0E-B98D-F278DE3F9DEE}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {1168B79A-E928-49DA-982A-E23FDB277584} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /src/App/copy.bat: -------------------------------------------------------------------------------- 1 | COPY C:\src\ServiceStack.CefGlue\src\ServiceStack.CefGlue.Win64\*.cs . 2 | COPY C:\src\ServiceStack.CefGlue\src\ServiceStack.CefGlue.Win64\favicon.ico 3 | -------------------------------------------------------------------------------- /src/App/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/App/favicon.ico -------------------------------------------------------------------------------- /src/App/generate-filelist.sc: -------------------------------------------------------------------------------- 1 | * use output in obj\Release\app.{version}.nuspec instead * 2 | 3 | var fs = vfsFileSystem('obj/Release') 4 | var nuspec = fs.allRootFiles().last().fileContents() 5 | var lines = nuspec.readLines() 6 | 7 | * nuspec.raw() * 8 | 9 | #each line in lines where line.trim().startsWith(' 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Test/apps/autodto/northwind/app.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Auto DTO 3 | features AutoQueryFeature, OpenApiFeature, PostmanFeature, CorsFeature 4 | AutoQueryFeature { MaxLimit: 100 } 5 | AutoQueryFeature.GenerateCrudServices { } 6 | 7 | # Configure below. Supported dialects: sqlite, mysql, postgresql, sqlserver 8 | db sqlite 9 | db.connection northwind.sqlite -------------------------------------------------------------------------------- /src/Test/apps/autodto/northwind/northwind.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/Test/apps/autodto/northwind/northwind.sqlite -------------------------------------------------------------------------------- /src/Test/apps/copy.bat: -------------------------------------------------------------------------------- 1 | copy multitenancy\_table.html ..\..\..\..\NetCoreTemplates\rockwind-app\sharpdata\ 2 | copy multitenancy\_table.html ..\..\..\..\sharp-apps\rockwind\sharpdata\ 3 | copy multitenancy\_table.html ..\..\..\..\sharp-apps\rockwind\sharpdata\ 4 | copy multitenancy\_table.html ..\..\..\..\sharp-apps\rockwind-aws\app\sharpdata\ 5 | copy multitenancy\_table.html ..\..\..\..\sharp-apps\rockwind-azure\app\sharpdata\ 6 | copy multitenancy\_table.html ..\..\..\..\mix\apps\rockwind\sharpdata\ 7 | copy multitenancy\_table.html ..\..\..\..\mix\apps\sharpdata\ 8 | copy multitenancy\_db\_table.html ..\..\..\..\mix\apps\sharpdata\_db\ 9 | -------------------------------------------------------------------------------- /src/Test/apps/multitenancy/app.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Multitenancy test 3 | 4 | # Configure below. Supported dialects: sqlite, mysql, postgresql, sqlserver 5 | db sqlserver 6 | db.connection $MSSQL_CONNECTION 7 | db.connections[northwind] { db:sqlite, connection:'northwind.sqlite' } 8 | db.connections[techstacks] { db:postgres, connection:$TECHSTACKS_DB } 9 | 10 | features ChangeDbFeature -------------------------------------------------------------------------------- /src/Test/apps/multitenancy/northwind.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/Test/apps/multitenancy/northwind.sqlite -------------------------------------------------------------------------------- /src/Test/apps/multitenancy/plugins/Multitenancy.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/Test/apps/multitenancy/plugins/Multitenancy.dll -------------------------------------------------------------------------------- /src/Test/apps/multitenancy/test.html: -------------------------------------------------------------------------------- 1 | {{ requestBodyAsString |> to => strBody }} 2 | {{ requestBodyAsJson |> to => jsonBody }} 3 | {{ rawBodyAsString |> to => rawStrBody }} 4 | {{ rawBodyAsJson |> to => rawJsonBody }} 5 | 6 | requestBodyAsString: '{{strBody |> raw}}' 7 | requestBodyAsJson: '{{jsonBody |> dump |> raw}}' 8 | rawBodyAsString: '{{rawStrBody |> raw}}' 9 | rawBodyAsJson: '{{rawJsonBody |> dump |> raw}}' 10 | 11 | hi: {{ 'world' |> hi }} 12 | {{htmlError}} -------------------------------------------------------------------------------- /src/Test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "echo": "echo Hello, World!" 4 | } 5 | } -------------------------------------------------------------------------------- /src/Test/parse-rss.l: -------------------------------------------------------------------------------- 1 | "RSS Parser" 2 | 3 | (def xml (/urlContentsWithCache "https://news.ycombinator.com/rss") ) 4 | 5 | (println (/subString xml 0 1000)) 6 | 7 | (defn parse-rss [xml] 8 | (let ( (to) (doc) (channel) (items) (el) ) 9 | (def doc (System.Xml.Linq.XDocument/Parse xml)) 10 | (def to (ObjectDictionary.)) 11 | (def items (List.)) 12 | (def channel (first (.Descendants doc "channel"))) 13 | (def el (XLinqExtensions/FirstElement channel)) 14 | 15 | (while (not= (.LocalName (.Name el)) "item") 16 | (.Add to (.LocalName (.Name el)) (.Value el)) 17 | (def el (XLinqExtensions/NextElement el))) 18 | 19 | (doseq (elItem (.Descendants channel "item")) 20 | (def item (ObjectDictionary.)) 21 | (def el (XLinqExtensions/FirstElement elItem)) 22 | 23 | (while el 24 | (.Add item (.LocalName (.Name el)) (.Value el)) 25 | (def el (XLinqExtensions/NextElement el))) 26 | 27 | (.Add items item)) 28 | 29 | (.Add to "items" (to-list items)) 30 | to 31 | ) 32 | ) 33 | 34 | (parse-rss xml) 35 | -------------------------------------------------------------------------------- /src/Test/run-script.cmd: -------------------------------------------------------------------------------- 1 | REM dotnet run /verbose run script.ss -id 10643 2 | REM dotnet run /verbose run script-aws.ss 3 | dotnet run run script.html -id 10643 > 10643.html && start 10643.html 4 | -------------------------------------------------------------------------------- /src/Test/script-args.ss: -------------------------------------------------------------------------------- 1 | 2 | {{ ARGV |> dump }} 3 | 4 | {{ dbTableNamesWithRowCounts |> textDump({ caption: 'Arg Tables' }) }} 5 | 6 | {{ useDb({ connectionString:"Server=localhost;Database=test;UID=test;Password=test" }) }} 7 | {{ dbTableNamesWithRowCounts() |> textDump({ caption: 'Test Tables' }) }} 8 | -------------------------------------------------------------------------------- /src/Test/script-aws.ss: -------------------------------------------------------------------------------- 1 | 7 | 8 | Querying AWS... 9 | 10 | ```code 11 | dbTableNamesWithRowCounts | textDump({ caption: 'Tables' }) 12 | 13 | 5 | to => limit 14 | 15 | `Last ${limit} Orders:\n` 16 | {{ `SELECT * FROM "Order" ORDER BY "Id" DESC ${limit.sqlLimit()}` 17 | | dbSelect | map => { it.Id, it.CustomerId, it.EmployeeId, Freight: it.Freight.currency() } | textDump }} 18 | 19 | {{ vfsContent.allRootDirectories().map(dir => `${dir.Name}/`) 20 | .union(vfsContent.allRootFiles().map(file => file.Name)) | textDump({caption:'Root Files + Folders'}) }} 21 | 22 | (ARGV.first() ?? '*.jpg') | to => pattern 23 | `\nFirst ${limit} ${pattern} files in S3:` 24 | vfsContent.findFiles(pattern) | take(limit) | map => it.VirtualPath | join('\n') 25 | ``` -------------------------------------------------------------------------------- /src/Test/script-azure.ss: -------------------------------------------------------------------------------- 1 | 7 | 8 | {{ dbTableNamesWithRowCounts | textDump({ caption: 'Tables' }) }} 9 | -------------------------------------------------------------------------------- /src/Test/script-minify.ss: -------------------------------------------------------------------------------- 1 | 4 | 5 | Markdown: 6 | {{#markdown}} 7 | ## Title 8 | 9 | > quote 10 | 11 | Paragraph with [a link](https://example.org). 12 | {{/markdown}} 13 | 14 | JS: 15 | {{#minifyjs}} 16 | function add(left, right) { 17 | return left + right; 18 | } 19 | add(1, 2); 20 | {{/minifyjs}} 21 | 22 | 23 | CSS: 24 | {{#minifycss}} 25 | body { 26 | background-color: #ffffff; 27 | } 28 | {{/minifycss}} 29 | -------------------------------------------------------------------------------- /src/Test/script.l: -------------------------------------------------------------------------------- 1 | ; 5 | 6 | (if (not (bound? id)) 7 | (setq id 10692)) 8 | 9 | (setq order 10 | (/dbSingle "SELECT Id, OrderDate, CustomerId, Freight FROM [Order] o WHERE Id = @id" { :id id }) ) 11 | 12 | (if order 13 | (/textDump order { :caption "Order Details" }) 14 | (println "There is no Order with id: " id) 15 | ) 16 | -------------------------------------------------------------------------------- /src/Test/script.sc: -------------------------------------------------------------------------------- 1 | 5 | 6 | (id ?? 10692) | to => id 7 | 8 | `SELECT Id, OrderDate, CustomerId, Freight FROM "Order" o WHERE Id = @id` | dbSingle({ id }) | to => order 9 | 10 | #with order 11 | order | textDump({ caption: 'Order Details' }) 12 | else 13 | `There is no Order with id: ${id}` 14 | /with 15 | -------------------------------------------------------------------------------- /src/U/Scenarios/Generic.cs: -------------------------------------------------------------------------------- 1 | using Terminal.Gui; 2 | 3 | namespace UICatalog { 4 | [ScenarioMetadata (Name: "Generic", Description: "Generic sample - A template for creating new Scenarios")] 5 | [ScenarioCategory ("Controls")] 6 | class MyScenario : Scenario { 7 | public override void Setup () 8 | { 9 | // Put your scenario code here, e.g. 10 | var button = new Button ("Press me!") { 11 | X = Pos.Center (), 12 | Y = Pos.Center (), 13 | }; 14 | button.Clicked += () => MessageBox.Query (20, 7, "Hi", "Neat?", "Yes", "No"); 15 | Win.Add (button); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/U/Scenarios/SystemConsole.cs: -------------------------------------------------------------------------------- 1 | using Terminal.Gui; 2 | 3 | namespace UICatalog { 4 | [ScenarioMetadata (Name: "System Console", Description: "Not working - #518 - Enables System Console and exercises things")] 5 | [ScenarioCategory ("Bug Repro")] 6 | [ScenarioCategory ("Console")] 7 | class UseSystemConsole : Scenario { 8 | public override void Init (Toplevel top, ColorScheme colorScheme) 9 | { 10 | Application.UseSystemConsole = true; 11 | base.Init (top, colorScheme); 12 | } 13 | 14 | public override void RequestStop () 15 | { 16 | base.RequestStop (); 17 | Application.UseSystemConsole = false; 18 | } 19 | 20 | public override void Run () 21 | { 22 | base.Run (); 23 | } 24 | 25 | public override void Setup () 26 | { 27 | var pressMe = new Button ("Press me!") { 28 | X = Pos.Center (), 29 | Y = Pos.Center (), 30 | }; 31 | pressMe.Clicked += () => MessageBox.Query (20, 7, "Hi", "Neat?", "Yes", "No"); 32 | Win.Add (pressMe); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /src/U/install-local-tool.bat: -------------------------------------------------------------------------------- 1 | dotnet pack U.csproj -c release -o nupkg 2 | dotnet tool uninstall -g u 3 | dotnet tool install --add-source .\nupkg -g u -------------------------------------------------------------------------------- /src/U/pack.bat: -------------------------------------------------------------------------------- 1 | dotnet pack U.csproj -c release -o nupkg -------------------------------------------------------------------------------- /src/U/pack.sh: -------------------------------------------------------------------------------- 1 | dotnet pack U.csproj -c release -o nupkg -------------------------------------------------------------------------------- /src/U/publish-nuget.bat: -------------------------------------------------------------------------------- 1 | for /f "tokens=*" %%a in ('dir /a-d /o-n /b nupkg\*') do set NEWEST=%%a&& goto :next 2 | :next 3 | 4 | nuget push nupkg\%NEWEST% -Source https://www.nuget.org/api/v2/package -------------------------------------------------------------------------------- /src/U/publish-nuget.sh: -------------------------------------------------------------------------------- 1 | #for /f "tokens=*" %%a in ('dir /a-d /o-n /b nupkg\*') do set NEWEST=%%a&& goto :next 2 | #:next 3 | 4 | set NEWEST=u.0.0.3.nupkg 5 | dotnet nuget push nupkg/$NEWEST -k $NUGET_APIKEY -s https://www.nuget.org/api/v2/package -------------------------------------------------------------------------------- /src/Web/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | using Microsoft.AspNetCore.Hosting; 4 | using ServiceStack; 5 | 6 | namespace Web 7 | { 8 | public class Program 9 | { 10 | public static async Task Main(string[] args) 11 | { 12 | try 13 | { 14 | var host = (await Startup.CreateWebHost("web", args))?.Build(); 15 | host?.Run(); 16 | } 17 | catch (Exception ex) 18 | { 19 | ex.HandleProgramExceptions(); 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/Web/README.md: -------------------------------------------------------------------------------- 1 | # Web App Releases 2 | 3 | Releases for ServiceStack Web Apps. 4 | 5 | ## Install 6 | 7 | If you have Linux, OSX or [Windows Subsystem for Linux](https://msdn.microsoft.com/en-us/commandline/wsl/install_guide), 8 | from the directory where all your Web Apps are, run: 9 | 10 | curl -L https://github.com/NetCoreWebApps/Web/archive/v0.1.tar.gz | tar xz && mv Web-0.1 web 11 | 12 | Otherwise for Windows without access to linux tools, download: 13 | 14 | - [Web v0.1.zip](https://github.com/NetCoreWebApps/Web/archive/v0.1.zip) 15 | 16 | Then copy all contents into the `web` folder next to where all your Web Apps are. 17 | 18 | ## Usage 19 | 20 | To run install [.NET Core 2.1 for your platform](https://www.microsoft.com/net/download/core) then for Linux, OSX and Windows, run: 21 | 22 | dotnet web/app.dll ..//web.settings 23 | 24 | Replacing `` with the app you wish to run. 25 | 26 | ## Web App Examples 27 | 28 | See [templates.servicestack.net/docs/web-apps](http://templates.servicestack.net/docs/web-apps) for examples of different Web Apps and 29 | `web.settings` configuration. -------------------------------------------------------------------------------- /src/Web/global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "2.1.801" 4 | } 5 | } -------------------------------------------------------------------------------- /src/Web/install-local-tool.bat: -------------------------------------------------------------------------------- 1 | dotnet pack Web.csproj -c release -o nupkg 2 | dotnet tool uninstall -g web 3 | dotnet tool install --add-source .\nupkg -g web -------------------------------------------------------------------------------- /src/Web/pack.bat: -------------------------------------------------------------------------------- 1 | dotnet pack Web.csproj -c release -o nupkg -------------------------------------------------------------------------------- /src/Web/publish-nuget.bat: -------------------------------------------------------------------------------- 1 | for /f "tokens=*" %%a in ('dir /a-d /o-n /b nupkg\*') do set NEWEST=%%a&& goto :next 2 | :next 3 | 4 | nuget push nupkg\%NEWEST% -Source https://www.nuget.org/api/v2/package -------------------------------------------------------------------------------- /src/Web/run.bare.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\bare\app.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.blog.bat: -------------------------------------------------------------------------------- 1 | web ..\apps\blog\app.settings -------------------------------------------------------------------------------- /src/Web/run.chat.bat: -------------------------------------------------------------------------------- 1 | dotnet build ..\example-plugins\Chat 2 | copy ..\example-plugins\Chat\bin\Debug\netcoreapp2.1\Chat.dll ..\apps\chat\plugins 3 | 4 | dotnet run ..\apps\chat\app.settings 5 | -------------------------------------------------------------------------------- /src/Web/run.deploy.apps.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | cat ../apps/bare/web.settings | sed "/debug/s/ .*/ false/" > ../apps/web/web.bare.settings 4 | 5 | cat ../apps/blog/web.release.settings > ../apps/web/web.blog.settings 6 | 7 | cat ../apps/redis/web.settings | sed "/debug/s/ .*/ false/" > ../apps/web/web.redis.settings 8 | 9 | cat ../apps/rockwind/web.sqlite.settings | sed "/debug/s/ .*/ false/" > ../apps/web/web.rockwind-sqlite.settings 10 | 11 | cat ../apps/rockwind-vfs/web.sqlite.settings | sed "/debug/s/ .*/ false/" > ../apps/web/web.rockwind-vfs-sqlite.settings 12 | 13 | cat ../apps/plugins/web.settings | sed "/debug/s/ .*/ false/" > ../apps/web/web.plugins.settings 14 | 15 | cat ../apps/chat/web.release.settings > ../apps/web/web.chat.settings 16 | 17 | cat ../apps/redis-html/web.settings | sed "/debug/s/ .*/ false/" > ../apps/web/web.redis-html.settings 18 | 19 | rsync -avz -e 'ssh' ../apps deploy@web-app.io:/home/deploy 20 | 21 | ssh deploy@web-app.io "sudo supervisorctl restart all" 22 | -------------------------------------------------------------------------------- /src/Web/run.plugins.bat: -------------------------------------------------------------------------------- 1 | dotnet build ..\example-plugins\ScriptInfo 2 | copy ..\example-plugins\ScriptInfo\bin\Debug\netcoreapp2.1\ScriptInfo.dll ..\apps\plugins\plugins 3 | 4 | dotnet build ..\example-plugins\ServerInfo 5 | copy ..\example-plugins\ServerInfo\bin\Debug\netcoreapp2.1\ServerInfo.dll ..\apps\plugins\plugins 6 | 7 | dotnet run ..\apps\plugins\app.settings 8 | -------------------------------------------------------------------------------- /src/Web/run.plugins2.bat: -------------------------------------------------------------------------------- 1 | dotnet build ..\example-plugins\FilterInfo 2 | copy ..\example-plugins\FilterInfo\bin\Debug\netcoreapp2.1\FilterInfo.dll ..\apps\plugins2\plugins 3 | 4 | dotnet build ..\example-plugins\ServerInfo 5 | copy ..\example-plugins\ServerInfo\bin\Debug\netcoreapp2.1\ServerInfo.dll ..\apps\plugins2\plugins 6 | 7 | dotnet run ..\apps\plugins2\app.settings 8 | -------------------------------------------------------------------------------- /src/Web/run.redis-html.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\redis-html\app.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.redis.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\redis\app.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.rockwind-mysql.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\rockwind\app.mysql.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.rockwind-sqlite.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\rockwind\app.sqlite.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.rockwind-sqlserver.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\rockwind\app.sqlserver.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.rockwind-vfs-aws.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\rockwind-vfs\app.aws.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.rockwind-vfs-azure.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\rockwind-vfs\app.azure.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.rockwind-vfs-postgres.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\rockwind-vfs\app.postgres.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.rockwind-vfs-sqlite.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\rockwind-vfs\app.sqlite.settings 2 | -------------------------------------------------------------------------------- /src/Web/run.rockwind-vfs-sqlserver.bat: -------------------------------------------------------------------------------- 1 | dotnet run ..\apps\rockwind-vfs\app.sqlserver.settings 2 | -------------------------------------------------------------------------------- /src/Web/runtimeconfig.template.json: -------------------------------------------------------------------------------- 1 | { 2 | // Rollforward across major versions of ASP.NET Core 3 | // The default setting only will only rollforward across minor versions 4 | "rollForwardOnNoCandidateFx": 2 5 | } 6 | -------------------------------------------------------------------------------- /src/Web/timefix.ps1: -------------------------------------------------------------------------------- 1 | gci -path "C:\Users\mythz\.nuget\packages" -rec -file *.dll | Where-Object {$_.LastWriteTime -lt (Get-Date).AddYears(-20)} | % { try { $_.LastWriteTime = '01/01/2020 00:00:00' } catch {} } 2 | -------------------------------------------------------------------------------- /src/X/global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "8.0.100" 4 | } 5 | } -------------------------------------------------------------------------------- /src/X/install-local-tool.bat: -------------------------------------------------------------------------------- 1 | dotnet pack X.csproj -c release -o nupkg 2 | dotnet tool uninstall -g x 3 | dotnet tool install --add-source .\nupkg -g x -------------------------------------------------------------------------------- /src/X/install-local-tool.sh: -------------------------------------------------------------------------------- 1 | rm -f ./nupkg/*.nupkg 2 | dotnet pack X.csproj -c release -o nupkg 3 | dotnet tool uninstall -g x 4 | dotnet tool install --add-source ./nupkg -g x -------------------------------------------------------------------------------- /src/X/pack.bat: -------------------------------------------------------------------------------- 1 | dotnet pack X.csproj -c release -o nupkg -------------------------------------------------------------------------------- /src/X/pack.sh: -------------------------------------------------------------------------------- 1 | dotnet pack X.csproj -c release -o nupkg -------------------------------------------------------------------------------- /src/X/publish-nuget.bat: -------------------------------------------------------------------------------- 1 | for /f "tokens=*" %%a in ('dir /a-d /o-n /b nupkg\*') do set NEWEST=%%a&& goto :next 2 | :next 3 | 4 | nuget push nupkg\%NEWEST% -Source https://www.nuget.org/api/v2/package -------------------------------------------------------------------------------- /src/X/publish-nuget.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Get the newest file in nupkg directory 4 | NEWEST=$(ls -t nupkg/* | head -n1) 5 | 6 | # Push the package using dotnet nuget 7 | dotnet nuget push "$NEWEST" -k $NUGET_APIKEY --source https://www.nuget.org/api/v2/package 8 | -------------------------------------------------------------------------------- /src/apps/bare/about.html: -------------------------------------------------------------------------------- 1 | 4 | 5 |

6 | About Us page. 7 |

-------------------------------------------------------------------------------- /src/apps/bare/app.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Bare WebApp 3 | -------------------------------------------------------------------------------- /src/apps/bare/assets/css/default.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 54px; 3 | } 4 | @media (min-width: 992px) { 5 | body { 6 | padding-top: 56px; 7 | } 8 | } -------------------------------------------------------------------------------- /src/apps/bare/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/bare/assets/img/favicon.ico -------------------------------------------------------------------------------- /src/apps/bare/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/bare/assets/img/logo.png -------------------------------------------------------------------------------- /src/apps/bare/assets/js/default.js: -------------------------------------------------------------------------------- 1 | // App's JavaScript -------------------------------------------------------------------------------- /src/apps/bare/contact.html: -------------------------------------------------------------------------------- 1 | 4 | 5 |

6 | Contact Us page. 7 |

-------------------------------------------------------------------------------- /src/apps/bare/hello.html: -------------------------------------------------------------------------------- 1 | API Example /hello.html = /hello 2 | QueryString params, ?name=... is available in {{qs.name}} argument 3 | 4 | Returns JSON Response when called with `Accept: application/json`: 5 | 6 | {{ { result: `Hello, ${qs.name}!` } | return }} 7 | 8 | Only return value is returned as a serialized response, all other content on page is ignored. 9 | -------------------------------------------------------------------------------- /src/apps/bare/index.html: -------------------------------------------------------------------------------- 1 | 4 | 5 |

6 | Complete with page layout, menu partial and responsive navigation! 7 |

8 |
    9 |
  • Bootstrap v4.1.3
  • 10 |
  • jQuery v3.3.1
  • 11 |
12 | 13 |
14 |
15 | 16 |
17 | 18 |
19 |
20 |
21 | 22 |
23 |

24 |
25 |
26 |
27 | 28 | {{#raw appendTo scripts}} 29 | 41 | {{/raw}} -------------------------------------------------------------------------------- /src/apps/bare/menu.html: -------------------------------------------------------------------------------- 1 | {{ { '/': 'Home', 2 | '/about': 'About', 3 | '/services': 'Services', 4 | '/contact': 'Contact', 5 | } | toList | assignTo: links }} 6 | 7 | -------------------------------------------------------------------------------- /src/apps/bare/services.html: -------------------------------------------------------------------------------- 1 | 4 | 5 |

6 | Services page. 7 |

-------------------------------------------------------------------------------- /src/apps/blog/README.md: -------------------------------------------------------------------------------- 1 | # blog 2 | 3 | Blog is a minimal, multi-user Twitter OAuth blogging platform that can create living, powerful pages 4 | 5 | [![](https://raw.githubusercontent.com/NetCoreApps/TemplatePages/master/src/wwwroot/assets/img/screenshots/blog.png)](http://blog.web-app.io) 6 | 7 | ## Install 8 | 9 | Run as a Desktop App (Windows only): 10 | 11 | $ dotnet tool install -g app 12 | 13 | $ app install blog 14 | $ cd blog && app 15 | 16 | Run as a .NET Core Web App (Windows, macOS, Linux): 17 | 18 | $ dotnet tool install -g web 19 | 20 | $ web install blog 21 | $ cd blog && web 22 | 23 | > Requires [.NET Core 2.1](https://www.microsoft.com/net/download/dotnet-core/2.1). 24 | 25 | ## Learn 26 | 27 | See [templates.servicestack.net/docs/web-apps](http://templates.servicestack.net/docs/web-apps) to learn about ServiceStack .NET Core 2.1 Web Apps. 28 | -------------------------------------------------------------------------------- /src/apps/blog/_assert-auth-partial.html: -------------------------------------------------------------------------------- 1 | 2 | {{#if !isAuthenticated }} 3 |

4 | Please Sign In to add Posts 5 |

6 | {{return}} 7 | {{/if}} 8 | -------------------------------------------------------------------------------- /src/apps/blog/_assert-post-partial.html: -------------------------------------------------------------------------------- 1 | 2 | {{#if post == null }} 3 | {{ `Post ${slug} does not exist` | assignTo: error }} 4 | {{else if post.CreatedBy != userName }} 5 | {{ `You do not have permission to edit this post` | assignTo: error }} 6 | {{/if}} 7 | 8 | {{ 'error' | showIfExists(error) | partial({ error }) }} 9 | -------------------------------------------------------------------------------- /src/apps/blog/_error-partial.html: -------------------------------------------------------------------------------- 1 |
2 |
{{error}}
3 | < home 4 |
5 | {{return}} -------------------------------------------------------------------------------- /src/apps/blog/_user/api.html: -------------------------------------------------------------------------------- 1 | API /{user}/api 2 | * user : string - Return posts created by this Username 3 | 4 | {{ `SELECT * 5 | FROM Post p INNER JOIN UserInfo u on p.CreatedBy = u.UserName 6 | WHERE UserName = @user 7 | ORDER BY p.Created DESC` 8 | | dbSelect({ user }) 9 | | return }} 10 | -------------------------------------------------------------------------------- /src/apps/blog/app.release.settings: -------------------------------------------------------------------------------- 1 | name Blog Web App 2 | db sqlite 3 | db.connection ../blog.sqlite 4 | 5 | features AuthFeature 6 | AuthFeature.AuthProviders TwitterAuthProvider 7 | 8 | oauth.RedirectUrl http://blog.web-app.io 9 | oauth.CallbackUrl http://blog.web-app.io/auth/{0} 10 | oauth.twitter.ConsumerKey K9jvaxhuc3VD3lwsOKzcYw 11 | oauth.twitter.ConsumerSecret XI0a4o9qs3NTXYvzDdAdycvu4jf1zNo9xotbyuiVM 12 | 13 | args.blog { name:'blog.web-app.io', href:'/' } 14 | 15 | CefConfig { width:1150, height:900 } 16 | -------------------------------------------------------------------------------- /src/apps/blog/app.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Blog Web App 3 | db sqlite 4 | db.connection blog.sqlite 5 | 6 | features AuthFeature 7 | AuthFeature.AuthProviders TwitterAuthProvider 8 | SharpPagesFeature { ScriptAdminRole: 'AllowAnon' } 9 | 10 | oauth.RedirectUrl http://localhost:5000/ 11 | oauth.CallbackUrl http://localhost:5000/auth/{0} 12 | oauth.twitter.ConsumerKey JvWZokH73rdghDdCFCFkJtCEU 13 | oauth.twitter.ConsumerSecret WNeOT6YalxXDR4iWZjc4jVjFaydoDcY8jgRrGc5FVLjsVlY2Y8 14 | 15 | args.blog { name:'blog.web-app.io', href:'/' } 16 | 17 | CefConfig { width:1150, height:900 } 18 | -------------------------------------------------------------------------------- /src/apps/blog/db.html: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 | {{ `SELECT * FROM Post ORDER BY Modified DESC` | dbSelect | htmlDump({ caption: 'Post table', className: 'table-data db-post' }) }} 8 | 9 | {{#noop remove noop block to also display UserInfo table}} 10 | {{ `SELECT * FROM UserInfo ORDER BY Modified DESC` | dbSelect | htmlDump({ caption: 'UserInfo table', className: 'table-data' }) }} 11 | {{/noop}} 12 | 13 | 20 | 21 |
22 | -------------------------------------------------------------------------------- /src/apps/blog/hello/_name/index.html: -------------------------------------------------------------------------------- 1 | API /hello/{name} 2 | * name : string - Name of Person to greet 3 | 4 | {{ { result: `Hello, ${name}!` } | return }} 5 | -------------------------------------------------------------------------------- /src/apps/blog/index.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | {{ `SELECT * 4 | FROM Post p INNER JOIN UserInfo u on p.CreatedBy = u.UserName 5 | ORDER BY p.Created DESC, Id DESC` 6 | | dbSelect | assignTo: posts }} 7 | 8 | {{ 'posts' | partial({ posts } )}} 9 | 10 |
11 | -------------------------------------------------------------------------------- /src/apps/blog/log.html: -------------------------------------------------------------------------------- 1 |
2 | Output from init.html: 3 | 4 |
{{initout | raw}}
5 |
6 | 7 | 8 | -------------------------------------------------------------------------------- /src/apps/blog/posts/_slug/api.html: -------------------------------------------------------------------------------- 1 | API /posts/{slug}/api 2 | * slug : string - Return post with this slug name 3 | 4 | {{ `SELECT * 5 | FROM Post p INNER JOIN UserInfo u on p.CreatedBy = u.UserName 6 | WHERE Slug = @slug 7 | ORDER BY p.Created DESC` 8 | | dbSingle({ slug }) 9 | | assignTo: post }} 10 | 11 | {{ post ?? httpResult({ status:404, statusDescription:'Post was not found' }) 12 | | return }} 13 | -------------------------------------------------------------------------------- /src/apps/blog/posts/_slug/delete.html: -------------------------------------------------------------------------------- 1 | 2 | {{#if isHttpPost}} 3 | {{ 'assert-auth' | partial }} 4 | 5 | {{ `SELECT * from Post p INNER JOIN UserInfo u on p.CreatedBy = u.UserName WHERE Slug = @slug ORDER BY p.Created DESC` 6 | | dbSingle({ slug }) 7 | | assignTo: post }} 8 | 9 | {{ 'assert-post' | partial({ post }) }} 10 | 11 | {{ `DELETE FROM Post WHERE Slug=@slug AND CreatedBy=@userName` | dbExec({ slug, userName }) | end }} 12 | 13 | {{/if}} 14 | 15 | {{ httpResult({ status:301, Location: `/${userName}` }) | return }} 16 | -------------------------------------------------------------------------------- /src/apps/blog/posts/_slug/index.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | {{ `SELECT * 4 | FROM Post p INNER JOIN UserInfo u on p.CreatedBy = u.UserName 5 | WHERE Slug = @slug 6 | ORDER BY p.Created DESC` 7 | | dbSingle({ slug }) 8 | | assignTo: post }} 9 | 10 | {{ 'error' | showIf(!post) | partial({ error:'Post does not exist' }) }} 11 | 12 | {{ 'posts' | partial({ posts: [post] } )}} 13 | 14 |
15 |

Content Source

16 | 17 | 18 |
19 | 20 | 36 | 37 |
38 | -------------------------------------------------------------------------------- /src/apps/blog/preview.html: -------------------------------------------------------------------------------- 1 | API /preview 2 | * content : string - #Script to evaluate 3 | 4 | {{ qs.content | evalTemplate({use:{plugins:'MarkdownScriptPlugin'}}) | assignTo:response }} 5 | {{ response | return({ contentType:'text/plain' }) }} 6 | -------------------------------------------------------------------------------- /src/apps/chat/README.md: -------------------------------------------------------------------------------- 1 | # chat 2 | 3 | Chat is a highly extensible Web App with custom AppHost that leverages OAuth + Server Events for real-time Chat 4 | 5 | [![](https://raw.githubusercontent.com/NetCoreApps/TemplatePages/master/src/wwwroot/assets/img/screenshots/chat.png)](http://chat.web-app.io) 6 | 7 | ## Install 8 | 9 | Run as a Desktop App (Windows only): 10 | 11 | $ dotnet tool install -g app 12 | 13 | $ app install chat 14 | $ cd chat && app 15 | 16 | Run as a .NET Core Web App (Windows, macOS, Linux): 17 | 18 | $ dotnet tool install -g web 19 | 20 | $ web install chat 21 | $ cd chat && web 22 | 23 | > Requires [.NET Core 2.1](https://www.microsoft.com/net/download/dotnet-core/2.1). 24 | 25 | ## Learn 26 | 27 | See [templates.servicestack.net/docs/web-apps](http://templates.servicestack.net/docs/web-apps) to learn about ServiceStack .NET Core 2.1 Web Apps. 28 | -------------------------------------------------------------------------------- /src/apps/chat/_layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ title }} 5 | 6 | 7 | {{#if debug}}{{/if}} 8 | 9 | 10 | 11 | 16 | 17 | 18 | 19 | {{ page }} 20 | 21 | {{ scripts | raw }} 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/apps/chat/app.release.settings: -------------------------------------------------------------------------------- 1 | debug false 2 | name Chat Web App 3 | 4 | oauth.RedirectUrl http://chat.web-app.io/ 5 | oauth.CallbackUrl http://chat.web-app.io/auth/{0} 6 | oauth.twitter.ConsumerKey udxbVuKZ91L0naGzT8G2n1zlT 7 | oauth.twitter.ConsumerSecret oqPIwQuwZyR7PPvcTfcstnBB3hsX9vns48M1upukX2kvTQ6SAx 8 | oauth.facebook.Permissions email 9 | oauth.facebook.AppId 146286335959326 10 | oauth.facebook.AppSecret 48207b1ea861ecbff664e86515128c37 11 | oauth.github.Scopes user 12 | oauth.github.ClientId 3329b4f03241fb244be4 13 | oauth.github.ClientSecret a7fc35e9b75b8fff0a65fb9fd1d6f30026f161c4 14 | -------------------------------------------------------------------------------- /src/apps/chat/app.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Chat Web App 3 | port 5000 4 | 5 | oauth.RedirectUrl http://localhost:5000/ 6 | oauth.CallbackUrl http://localhost:5000/auth/{0} 7 | oauth.twitter.ConsumerKey JvWZokH73rdghDdCFCFkJtCEU 8 | oauth.twitter.ConsumerSecret WNeOT6YalxXDR4iWZjc4jVjFaydoDcY8jgRrGc5FVLjsVlY2Y8 9 | oauth.facebook.Permissions email 10 | oauth.facebook.AppId 447523305684110 11 | oauth.facebook.AppSecret 7d8a16d5c7cbbfab4b49fd51183c93a0 12 | oauth.github.Scopes user 13 | oauth.github.ClientId dbe8c242e3d1099f4558 14 | oauth.github.ClientSecret 42c8db8d0ca72a0ef202e0c197d1377670c990f4 15 | -------------------------------------------------------------------------------- /src/apps/chat/assets/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/chat/assets/img/bg.jpg -------------------------------------------------------------------------------- /src/apps/chat/assets/img/facebook_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/chat/assets/img/facebook_normal.png -------------------------------------------------------------------------------- /src/apps/chat/assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/chat/assets/img/favicon.png -------------------------------------------------------------------------------- /src/apps/chat/assets/img/github_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/chat/assets/img/github_normal.png -------------------------------------------------------------------------------- /src/apps/chat/assets/img/no-profile64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/chat/assets/img/no-profile64.png -------------------------------------------------------------------------------- /src/apps/chat/assets/img/twitter_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/chat/assets/img/twitter_normal.png -------------------------------------------------------------------------------- /src/apps/chat/plugins/Chat.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/chat/plugins/Chat.dll -------------------------------------------------------------------------------- /src/apps/northwind.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/northwind.sqlite -------------------------------------------------------------------------------- /src/apps/plugins/README.md: -------------------------------------------------------------------------------- 1 | # plugins 2 | 3 | Plugins shows an example of extending WebApps with Plugins, Filters, ServiceStack Services and other C# extensions 4 | 5 | [![](https://raw.githubusercontent.com/NetCoreApps/TemplatePages/master/src/wwwroot/assets/img/screenshots/plugins.png)](http://plugins.web-app.io) 6 | 7 | ## Install 8 | 9 | Run as a Desktop App (Windows only): 10 | 11 | $ dotnet tool install -g app 12 | 13 | $ app install plugins 14 | $ cd plugins && app 15 | 16 | Run as a .NET Core Web App (Windows, macOS, Linux): 17 | 18 | $ dotnet tool install -g web 19 | 20 | $ web install plugins 21 | $ cd plugins && web 22 | 23 | > Requires [.NET Core 2.1](https://www.microsoft.com/net/download/dotnet-core/2.1). 24 | 25 | ## Learn 26 | 27 | See [templates.servicestack.net/docs/web-apps](http://templates.servicestack.net/docs/web-apps) to learn about ServiceStack .NET Core 2.1 Web Apps. 28 | -------------------------------------------------------------------------------- /src/apps/plugins/app.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Web App Plugins 3 | features CustomPlugin, OpenApiFeature, PostmanFeature, CorsFeature, ValidationFeature 4 | CustomPlugin { ShowProcessLinks: true } 5 | ValidationFeature { ScanAppHostAssemblies: true } 6 | -------------------------------------------------------------------------------- /src/apps/plugins/assets/img/logo-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/plugins/assets/img/logo-64.png -------------------------------------------------------------------------------- /src/apps/plugins/assets/img/metadata-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/plugins/assets/img/metadata-screenshot.png -------------------------------------------------------------------------------- /src/apps/plugins/live-template.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 5 |
6 |
7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /src/apps/plugins/plugins/ScriptInfo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/plugins/plugins/ScriptInfo.dll -------------------------------------------------------------------------------- /src/apps/plugins/plugins/ServerInfo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/plugins/plugins/ServerInfo.dll -------------------------------------------------------------------------------- /src/apps/plugins2/app.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Web App Plugins2 3 | port 5000 4 | features OpenApiFeature, PostmanFeature, CorsFeature, ValidationFeature, plugins/* 5 | CustomPlugin { ShowProcessLinks: true } 6 | -------------------------------------------------------------------------------- /src/apps/plugins2/assets/img/logo-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/plugins2/assets/img/logo-64.png -------------------------------------------------------------------------------- /src/apps/plugins2/assets/img/metadata-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/plugins2/assets/img/metadata-screenshot.png -------------------------------------------------------------------------------- /src/apps/plugins2/live-template.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 5 |
6 |
7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /src/apps/plugins2/plugins/FilterInfo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/plugins2/plugins/FilterInfo.dll -------------------------------------------------------------------------------- /src/apps/plugins2/plugins/ServerInfo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/plugins2/plugins/ServerInfo.dll -------------------------------------------------------------------------------- /src/apps/plugins2/templates/server-info.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ drives | orderByDescending: it.TotalSize 5 | | take(5) | selectPartial: drive-info }} 6 |
Top 5 Local Disks
NameTypeAvailable SpaceTotal Free SpaceTotal Size
7 | 8 | 9 | 10 | 11 | 12 | {{ currentProcess | selectPartial: process-info }} 13 |
Current Process
IdNameCPU TimeUser TimeMemory (current)Memory (peak)Active Threads
14 | -------------------------------------------------------------------------------- /src/apps/redis-html/README.md: -------------------------------------------------------------------------------- 1 | # redis-html 2 | 3 | redis-html is a Redis Admin Viewer developed as server-generated HTML Website 4 | 5 | [![](https://raw.githubusercontent.com/NetCoreApps/TemplatePages/master/src/wwwroot/assets/img/screenshots/redis-html.png)](http://redis-html.web-app.io) 6 | 7 | ## Install 8 | 9 | Run as a Desktop App (Windows only): 10 | 11 | $ dotnet tool install -g app 12 | 13 | $ app install redis-html 14 | $ cd redis-html && app 15 | 16 | Run as a .NET Core Web App (Windows, macOS, Linux): 17 | 18 | $ dotnet tool install -g web 19 | 20 | $ web install redis-html 21 | $ cd redis-html && web 22 | 23 | > Requires [.NET Core 2.1](https://www.microsoft.com/net/download/dotnet-core/2.1). 24 | 25 | ## Learn 26 | 27 | See [templates.servicestack.net/docs/web-apps](http://templates.servicestack.net/docs/web-apps) to learn about ServiceStack .NET Core 2.1 Web Apps. 28 | -------------------------------------------------------------------------------- /src/apps/redis-html/app.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Redis Web App 3 | redis.connection localhost:6379 4 | -------------------------------------------------------------------------------- /src/apps/redis-html/assets/img/redis-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/redis-html/assets/img/redis-logo.png -------------------------------------------------------------------------------- /src/apps/redis/README.md: -------------------------------------------------------------------------------- 1 | # redis 2 | 3 | Redis Admin Viewer developed as Vue Client Single Page App 4 | 5 | [![](https://raw.githubusercontent.com/NetCoreApps/TemplatePages/master/src/wwwroot/assets/img/screenshots/redis.png)](http://redis.web-app.io) 6 | 7 | ## Install 8 | 9 | Run as a Desktop App (Windows only): 10 | 11 | $ dotnet tool install -g app 12 | 13 | $ app install redis 14 | $ cd redis && app 15 | 16 | Run as a .NET Core Web App (Windows, macOS, Linux): 17 | 18 | $ dotnet tool install -g web 19 | 20 | $ web install redis 21 | $ cd redis && web 22 | 23 | > Requires [.NET Core 2.1](https://www.microsoft.com/net/download/dotnet-core/2.1). 24 | 25 | ## Learn 26 | 27 | See [templates.servicestack.net/docs/web-apps](http://templates.servicestack.net/docs/web-apps) to learn about ServiceStack .NET Core 2.1 Web Apps. 28 | -------------------------------------------------------------------------------- /src/apps/redis/api/call.html: -------------------------------------------------------------------------------- 1 | {{ 'command' | importRequestParams }} 2 | 3 | {{ { command } | ensureAllArgsNotEmpty }} 4 | 5 | {{ ['flush','monitor','brpop','blpop'] | any => contains(lower(command), it) 6 | | assignTo: illegalCommand }} 7 | 8 | {{ illegalCommand ? throwArgumentException('Command is not allowed.') : null }} 9 | 10 | {{ command | redisCall | assignTo: contents }} 11 | 12 | {{ contents | return({ 'Content-Type': 'text/plain' }) }} 13 | -------------------------------------------------------------------------------- /src/apps/redis/api/search.html: -------------------------------------------------------------------------------- 1 | {{ qs.limit ?? 100 | assignTo: limit }} 2 | 3 | {{ `${qs.q ?? ''}*` | redisSearchKeys({ limit }) 4 | | return }} -------------------------------------------------------------------------------- /src/apps/redis/app.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Redis Web App 3 | redis.connection localhost:6379 4 | icon assets/img/redis.ico 5 | CefConfig { Width:1200, Height:1200 } 6 | -------------------------------------------------------------------------------- /src/apps/redis/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/redis/assets/img/favicon.ico -------------------------------------------------------------------------------- /src/apps/redis/assets/img/redis-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/redis/assets/img/redis-logo.png -------------------------------------------------------------------------------- /src/apps/redis/assets/img/redis.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/redis/assets/img/redis.ico -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/api/customers.html: -------------------------------------------------------------------------------- 1 | {{ 'id,city,country' | importRequestParams }} 2 | {{ limit ?? 100 | assignTo: limit }} 3 | 4 | {{ `select "Id", "CompanyName", "ContactName", "ContactTitle", "City", "Country" from "Customer"` | assignTo: sql }} 5 | 6 | {{#if !isEmpty(PathArgs)}} 7 | {{ `${sql} where "Id" = @id` | dbSingle({ id: PathArgs[0] }) 8 | | return }} 9 | {{/if}} 10 | 11 | {{#if id}} {{ '"Id" = @id' | addTo: filters }} {{/if}} 12 | {{#if city}} {{ '"City" = @city' | addTo: filters }} {{/if}} 13 | {{#if country}} {{ '"Country" = @country' | addTo: filters }} {{/if}} 14 | 15 | {{#if !isEmpty(filters)}} 16 | {{ `${sql} WHERE ${join(filters, ' AND ')}` | assignTo: sql }} 17 | {{/if}} 18 | 19 | {{ `${sql} ORDER BY "CompanyName" ${sqlLimit(limit)}` | assignTo: sql }} 20 | 21 | {{ sql | dbSelect({ id, city, country }) 22 | | return }} 23 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/app.aws.settings: -------------------------------------------------------------------------------- 1 | # Note: values prefixed with '$' are resolved from Environment Variables 2 | debug false 3 | name AWS S3 PostgreSQL Web App 4 | db postgres 5 | db.connection $AWS_RDS_POSTGRES 6 | files s3 7 | files.config {AccessKey:$AWS_S3_ACCESS_KEY,SecretKey:$AWS_S3_SECRET_KEY,Region:us-east-1,Bucket:rockwind} 8 | args.assetsBase http://s3-postgresql.s3-website-us-east-1.amazonaws.com/ 9 | 10 | # Reduces an S3 API call, but takes longer for modified pages to appear 11 | checkForModifiedPagesAfterSecs 60 12 | defaultFileCacheExpirySecs 60 13 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/app.azure.settings: -------------------------------------------------------------------------------- 1 | # Note: values prefixed with '$' are resolved from Environment Variables 2 | debug false 3 | name Azure Blob SQL Server Web App 4 | db sqlserver 5 | db.connection $AZURE_SQL_CONNECTION_STRING 6 | files azure 7 | files.config {ConnectionString:$AZURE_BLOB_CONNECTION_STRING,ContainerName:rockwind} 8 | args.assetsBase https://servicestack.blob.core.windows.net/rockwind/ 9 | 10 | # Reduces an Azure Blob API call, but takes longer for modified pages to appear 11 | checkForModifiedPagesAfterSecs 60 12 | defaultFileCacheExpirySecs 60 13 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/app.postgres.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Rockwind VFS PostgreSQL Web App 3 | db postgres 4 | db.connection Server=localhost;Port=5432;User Id=test;Password=test;Database=northwind;Pooling=true;MinPoolSize=0;MaxPoolSize=200 5 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/app.sqlite.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Rockwind VFS SQLite Web App 3 | db sqlite 4 | db.connection ../northwind.sqlite 5 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/app.sqlserver.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Rockwind VFS SQL Server Web App 3 | db sqlserver 4 | db.connection Server=localhost;Database=northwind;User Id=test;Password=test;MultipleActiveResultSets=True; 5 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/assets/css/default.css: -------------------------------------------------------------------------------- 1 | #back { 2 | position:absolute; 3 | top:8px; 4 | left:8px; 5 | } 6 | #back:hover { 7 | text-decoration: none; 8 | } 9 | caption { 10 | caption-side: top; 11 | text-align: center; 12 | } 13 | .details tbody tr:hover { 14 | cursor: pointer; 15 | background: #FFF9C4 !important; 16 | } 17 | .auto-width { 18 | width: auto; 19 | } -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/assets/img/home-icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/assets/img/home-icon.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/assets/img/logo-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/assets/img/logo-32.png -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/northwind/_layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ title ?? 'Northwind dynamic data demo' }} 4 | {{#if debug}}{{/if}} 5 | 6 | 7 | 20 | 21 | 22 | 23 | Home 24 | 25 |

{{ title }}

26 | 27 | {{ page }} 28 | 29 | 30 | 31 | 32 | 33 | {{ scripts | raw }} 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/northwind/categories.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ `select * from "Category"` | dbSelect | htmlDump({ className: "table table-striped auto-width" }) }} 8 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/northwind/employee.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ 'id' | importRequestParams }} 8 | 9 | {{#if id}} 10 | 11 | {{ id | toInt | assignTo: id }} 12 | {{ 'select * from "Employee" where "Id" = @id' | dbSingle({ id }) 13 | | assignTo: employee }} 14 | 15 | {{#if employee}} 16 | 17 | {{#tr {each:toList(employee)} }} 18 | 19 | {{/tr}} 20 |
{{Key}}{{Value}}
21 | 22 | {{ `select "TerritoryDescription", "RegionDescription" 23 | from "EmployeeTerritory" et 24 | inner join 25 | "Territory" t on et."TerritoryId" = t."Id" 26 | inner join 27 | "Region" r on t."RegionId" = r."Id" 28 | where et."EmployeeId" = @id` 29 | | dbSelect({ id }) 30 | | htmlDump({ className: "table table-striped auto-width", caption: "Employee Territories"}) }} 31 | 32 | {{else}} 33 | {{ `No Employee has id: ${id}` }} 34 | {{/if}} 35 | 36 | {{/if}} 37 | 38 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/northwind/employees.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ `select "Id", "TitleOfCourtesy" as "Title", "FirstName", "LastName", "City", "Region", "Country", "HomePhone", "Extension" from "Employee"` | assignTo: sql }} 8 | 9 | {{ sql | dbSelect | htmlDump({ className: "table table-striped details" }) }} 10 | 11 | {{#raw appendTo scripts}} 12 | 18 | {{/raw}} 19 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/northwind/index.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Home 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
Customers/customers
Employees/employees
Products/products
Categories/categories
Suppliers/suppliers
Shipppers/shippers
33 | 34 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/northwind/shippers.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ `select * from "Shipper"` | dbSelect | htmlDump({ className: "table table-striped auto-width" }) }} 8 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/northwind/suppliers.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ `select "Id", "CompanyName", "ContactName", "ContactTitle", "City", "PostalCode", "Country", "Phone" from "Supplier"` | assignTo: sql }} 8 | 9 | {{ sql | dbSelect | htmlDump({ className: "table table-striped" }) }} 10 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/alive/_layout.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Alive Rockstars - {{ title }} 5 | {{#if debug}}{{/if}} 6 | 7 | 16 | 17 | 18 | ← Home 19 | 20 |
21 |
22 |
Rockstars still rocking it...
23 |

24 | 25 |

26 |
27 | 28 |

{{ title }}

29 | 30 | {{ "menu-alive" | partial }} 31 | 32 |
33 | {{ page }} 34 | 35 |
36 | 37 | {{ "menu-dead" | partial }} 38 |
39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/alive/grohl-url/index.html: -------------------------------------------------------------------------------- 1 |  4 |
5 | 6 | Dave Grohl 7 |

8 | David Eric "Dave" Grohl is an American rock musician, multi-instrumentalist, and 9 | singer-songwriter, who is the lead vocalist, guitarist, primary songwriter and founder of 10 | the Foo Fighters, prior to ... Wikipedia 11 |

12 | 13 |
14 |
15 | Born 16 |
17 |
18 | January 14, 1969 (age 48), Warren 19 |
20 |
21 | Spouse 22 |
23 |
24 | Jordyn Blum (m. 2003), Jennifer Youngblood (m. 1993-1997) 25 |
26 |
27 | Music groups 28 |
29 |
30 | Foo Fighters, Nirvana, Scream, Killing Joke, Melvana 31 |
32 |
33 | 34 | {{ "https://raw.githubusercontent.com/NetCoreApps/TemplatePages/master/src/wwwroot/usecases/rockstar-files/alive/grohl/content.md" 35 | | includeUrlWithCache | markdown }} 36 | 37 |
38 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/alive/grohl/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/alive/grohl/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/alive/love/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/alive/love/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/alive/springsteen/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/alive/springsteen/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/alive/vedder/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/alive/vedder/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/dead/_layout.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Dead Rockstars - {{ title }} 5 | {{#if debug}}{{/if}} 6 | 7 | 8 | 17 | 18 | 19 | ← Home 20 | 21 |
22 |
23 |
Rocking the grave...
24 |

25 | 26 |

27 |
28 | 29 |

{{ title }}

30 | 31 | {{ "menu-dead" | partial }} 32 | 33 |
34 | {{ page }} 35 | 36 |
37 | 38 | {{ "menu-alive" | partial }} 39 |
40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/dead/cobain/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/dead/cobain/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/dead/hendrix/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/dead/hendrix/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/dead/jackson/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/dead/jackson/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/dead/joplin/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/dead/joplin/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/dead/presley/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/dead/presley/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/green_dust_scratch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/green_dust_scratch.png -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/rip_jobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/rip_jobs.png -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/thumb-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/thumb-01.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/thumb-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/thumb-02.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/thumb-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/thumb-03.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/thumb-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/thumb-04.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/thumb-05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/thumb-05.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/thumb-06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/thumb-06.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/thumb-07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/thumb-07.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/thumb-08.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/thumb-08.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/thumb-09.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/thumb-09.jpg -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/img/tileable_wood_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind-vfs/rockstars/img/tileable_wood_texture.png -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/menu-alive.html: -------------------------------------------------------------------------------- 1 | {{ { 2 | "/rockstars/alive/grohl/": "Dave Grohl", 3 | "/rockstars/alive/vedder/": "Eddie Vedder", 4 | "/rockstars/alive/springsteen/": "Bruce Springsteen", 5 | "/rockstars/alive/love/": "Courtney Love" 6 | } | assignTo: links }} 7 | 8 | 16 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/rockstars/menu-dead.html: -------------------------------------------------------------------------------- 1 | {{ { 2 | "/rockstars/dead/cobain/": "Kurt Cobain", 3 | "/rockstars/dead/hendrix/": "Jimi Hendrix", 4 | "/rockstars/dead/jackson/": "Michael Jackson", 5 | "/rockstars/dead/joplin/": "Janis Joplin", 6 | "/rockstars/dead/presley/": "Elvis Presley" 7 | } | assignTo: links }} 8 | 9 | 17 | -------------------------------------------------------------------------------- /src/apps/rockwind-vfs/template.app.sqlite.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Rockwind VFS SQLite Web App 3 | db sqlite 4 | db.connection northwind.sqlite 5 | -------------------------------------------------------------------------------- /src/apps/rockwind/api/customers.html: -------------------------------------------------------------------------------- 1 | {{ 'id,city,country' | importRequestParams }} 2 | {{ qs.limit ?? 100 | assignTo: limit }} 3 | 4 | {{ 'select Id, CompanyName, ContactName, ContactTitle, City, Country from Customer' | assignTo: sql }} 5 | 6 | {{#if !isEmpty(PathArgs)}} 7 | {{ `${sql} where Id = @id` | dbSingle({ id: PathArgs[0] }) 8 | | return }} 9 | {{/if}} 10 | 11 | {{#if id}} {{ 'Id = @id' | addTo: filters }} {{/if}} 12 | {{#if city}} {{ 'City = @city' | addTo: filters }} {{/if}} 13 | {{#if country}} {{ 'Country = @country' | addTo: filters }} {{/if}} 14 | 15 | {{#if !isEmpty(filters)}} 16 | {{ `${sql} WHERE ${join(filters, ' AND ')}` | assignTo: sql }} 17 | {{/if}} 18 | 19 | {{ `${sql} ORDER BY CompanyName ${sqlLimit(limit)}` | assignTo: sql }} 20 | 21 | {{ sql | dbSelect({ id, city, country }) 22 | | return }} 23 | -------------------------------------------------------------------------------- /src/apps/rockwind/app.azure.settings: -------------------------------------------------------------------------------- 1 | # Note: values prefixed with '$' are resolved from Environment Variables 2 | debug false 3 | name Azure Blob SQL Server Web App 4 | bind * 5 | port 5000 6 | db sqlserver 7 | db.connection $AZURE_SQL_CONNECTION_STRING 8 | files azure 9 | files.config {ConnectionString:$AZURE_BLOB_CONNECTION_STRING,ContainerName:rockwind-fs} 10 | 11 | # Reduces a Blob Storage API call, but takes longer for modified pages to appear 12 | checkForModifiedPagesAfterSecs 60 13 | defaultFileCacheExpirySecs 60 14 | -------------------------------------------------------------------------------- /src/apps/rockwind/app.mysql.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Rockwind MySql Web App 3 | port 5000 4 | db mysql 5 | db.connection Server=localhost;Database=northwind;UID=root;Password=test;SslMode=none 6 | -------------------------------------------------------------------------------- /src/apps/rockwind/app.sqlite.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Rockwind SQLite Web App 3 | contentRoot .. 4 | webRoot . 5 | db sqlite 6 | db.connection ~/northwind.sqlite 7 | -------------------------------------------------------------------------------- /src/apps/rockwind/app.sqlserver.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Rockwind SQL Server Web App 3 | port 5000 4 | db sqlserver 5 | db.connection Server=localhost;Database=northwind;User Id=test;Password=test;MultipleActiveResultSets=True; 6 | -------------------------------------------------------------------------------- /src/apps/rockwind/app.template.settings: -------------------------------------------------------------------------------- 1 | debug true 2 | name Rockwind WebApp 3 | db sqlite 4 | db.connection ~/northwind.sqlite -------------------------------------------------------------------------------- /src/apps/rockwind/assets/css/default.css: -------------------------------------------------------------------------------- 1 | #back { 2 | position:absolute; 3 | top:8px; 4 | left:8px; 5 | } 6 | #back:hover { 7 | text-decoration: none; 8 | } 9 | caption { 10 | caption-side: top; 11 | text-align: center; 12 | } 13 | .details tbody tr:hover { 14 | cursor: pointer; 15 | background: #FFF9C4 !important; 16 | } 17 | .auto-width { 18 | width: auto; 19 | } -------------------------------------------------------------------------------- /src/apps/rockwind/assets/img/home-icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/assets/img/home-icon.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/assets/img/logo-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/assets/img/logo-32.png -------------------------------------------------------------------------------- /src/apps/rockwind/northwind/_layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ title ?? 'Northwind dynamic data demo' }} 4 | {{#if debug}}{{/if}} 5 | 6 | 7 | 20 | 21 | 22 | 23 | Home 24 | 25 |

{{ title }}

26 | 27 | {{ page }} 28 | 29 | 30 | 31 | 32 | 33 | {{ scripts | raw }} 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/apps/rockwind/northwind/categories.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ "select * from Category" | dbSelect | htmlDump({ className: "table table-striped auto-width" }) }} 8 | -------------------------------------------------------------------------------- /src/apps/rockwind/northwind/employee.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ 'id' | importRequestParams }} 8 | 9 | {{#if id}} 10 | 11 | {{ "select * from Employee where Id = @id" | dbSingle({ id }) 12 | | assignTo: employee }} 13 | 14 | {{#if employee}} 15 | 16 | {{#tr {each:toList(employee)} }} 17 | 18 | {{/tr}} 19 |
{{Key}}{{Value}}
20 | 21 | {{ `select TerritoryDescription, RegionDescription 22 | from EmployeeTerritory et 23 | inner join 24 | Territory t on et.TerritoryId = t.Id 25 | inner join 26 | Region r on t.RegionId = r.Id 27 | where et.EmployeeId = @id` 28 | | dbSelect({ id }) 29 | | htmlDump({ className: "table table-striped auto-width", caption: "Employee Territories"}) }} 30 | 31 | {{else}} 32 | {{ `No Employee has id: ${id}` }} 33 | {{/if}} 34 | 35 | {{/if}} 36 | 37 | -------------------------------------------------------------------------------- /src/apps/rockwind/northwind/employees.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ "select Id, TitleOfCourtesy as Title, FirstName, LastName, City, Region, Country, HomePhone, Extension from Employee" | assignTo: sql }} 8 | 9 | {{ sql | dbSelect | htmlDump({ className: "table table-striped details" }) }} 10 | 11 | {{#raw appendTo scripts}} 12 | 18 | {{/raw}} 19 | -------------------------------------------------------------------------------- /src/apps/rockwind/northwind/index.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Home 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
Customers/customers
Employees/employees
Products/products
Categories/categories
Suppliers/suppliers
Shipppers/shippers
33 | 34 | -------------------------------------------------------------------------------- /src/apps/rockwind/northwind/shippers.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ "select * from Shipper" | dbSelect | htmlDump({ className: "table table-striped auto-width" }) }} 8 | -------------------------------------------------------------------------------- /src/apps/rockwind/northwind/sql/api.html: -------------------------------------------------------------------------------- 1 | 2 | {{#if isUnsafeSql(form.sql) }} 3 | {{ `
Potentially unsafe SQL detected
` | return }} 4 | {{/if}} 5 | 6 | {{ form.sql | dbSelect | htmlDump | return }} 7 | -------------------------------------------------------------------------------- /src/apps/rockwind/northwind/suppliers.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | ← Back 6 | 7 | {{ "select Id, CompanyName, ContactName, ContactTitle, City, PostalCode, Country, Phone from Supplier" | assignTo: sql }} 8 | 9 | {{ sql | dbSelect | htmlDump({ className: "table table-striped" }) }} 10 | -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/alive/_layout.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Alive Rockstars - {{ title }} 5 | {{#if debug}}{{/if}} 6 | 7 | 16 | 17 | 18 | ← Home 19 | 20 |
21 |
22 |
Rockstars still rocking it...
23 |

24 | 25 |

26 |
27 | 28 |

{{ title }}

29 | 30 | {{ "menu-alive" | partial }} 31 | 32 |
33 | {{ page }} 34 | 35 |
36 | 37 | {{ "menu-dead" | partial }} 38 |
39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/alive/grohl-url/index.html: -------------------------------------------------------------------------------- 1 |  4 |
5 | 6 | Dave Grohl 7 |

8 | David Eric "Dave" Grohl is an American rock musician, multi-instrumentalist, and 9 | singer-songwriter, who is the lead vocalist, guitarist, primary songwriter and founder of 10 | the Foo Fighters, prior to ... Wikipedia 11 |

12 | 13 |
14 |
15 | Born 16 |
17 |
18 | January 14, 1969 (age 48), Warren 19 |
20 |
21 | Spouse 22 |
23 |
24 | Jordyn Blum (m. 2003), Jennifer Youngblood (m. 1993-1997) 25 |
26 |
27 | Music groups 28 |
29 |
30 | Foo Fighters, Nirvana, Scream, Killing Joke, Melvana 31 |
32 |
33 | 34 | {{ "https://raw.githubusercontent.com/NetCoreApps/TemplatePages/master/src/wwwroot/usecases/rockstar-files/alive/grohl/content.md" 35 | | includeUrlWithCache | markdown }} 36 | 37 |
38 | -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/alive/grohl/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/alive/grohl/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/alive/love/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/alive/love/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/alive/springsteen/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/alive/springsteen/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/alive/vedder/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/alive/vedder/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/dead/_layout.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Dead Rockstars - {{ title }} 5 | {{#if debug}}{{/if}} 6 | 7 | 16 | 17 | 18 | ← Home 19 | 20 |
21 |
22 |
Rocking the grave...
23 |

24 | 25 |

26 |
27 | 28 |

{{ title }}

29 | 30 | {{ "menu-dead" | partial }} 31 | 32 |
33 | {{ page }} 34 | 35 |
36 | 37 | {{ "menu-alive" | partial }} 38 |
39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/dead/cobain/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/dead/cobain/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/dead/hendrix/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/dead/hendrix/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/dead/jackson/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/dead/jackson/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/dead/joplin/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/dead/joplin/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/dead/presley/splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/dead/presley/splash.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/green_dust_scratch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/green_dust_scratch.png -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/rip_jobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/rip_jobs.png -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/thumb-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/thumb-01.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/thumb-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/thumb-02.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/thumb-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/thumb-03.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/thumb-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/thumb-04.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/thumb-05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/thumb-05.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/thumb-06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/thumb-06.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/thumb-07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/thumb-07.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/thumb-08.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/thumb-08.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/thumb-09.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/thumb-09.jpg -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/img/tileable_wood_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ServiceStack/dotnet-app/86ec1d09483e4ac55786584478ffc95a5e13f6ea/src/apps/rockwind/rockstars/img/tileable_wood_texture.png -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/menu-alive.html: -------------------------------------------------------------------------------- 1 | {{ { 2 | "/rockstars/alive/grohl/": "Dave Grohl", 3 | "/rockstars/alive/vedder/": "Eddie Vedder", 4 | "/rockstars/alive/springsteen/": "Bruce Springsteen", 5 | "/rockstars/alive/love/": "Courtney Love" 6 | } | assignTo: links }} 7 | 8 | 16 | -------------------------------------------------------------------------------- /src/apps/rockwind/rockstars/menu-dead.html: -------------------------------------------------------------------------------- 1 | {{ { 2 | "/rockstars/dead/cobain/": "Kurt Cobain", 3 | "/rockstars/dead/hendrix/": "Jimi Hendrix", 4 | "/rockstars/dead/jackson/": "Michael Jackson", 5 | "/rockstars/dead/joplin/": "Janis Joplin", 6 | "/rockstars/dead/presley/": "Elvis Presley" 7 | } | assignTo: links }} 8 | 9 | 17 | -------------------------------------------------------------------------------- /src/apps/start-bare.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../bare/web.settings -------------------------------------------------------------------------------- /src/apps/start-chat.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../chat/web.settings -------------------------------------------------------------------------------- /src/apps/start-plugins.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../plugins/web.settings -------------------------------------------------------------------------------- /src/apps/start-redis-html.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../redis-html/web.settings -------------------------------------------------------------------------------- /src/apps/start-redis.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../redis/web.settings -------------------------------------------------------------------------------- /src/apps/start-rockwind-azure.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../rockwind/web.azure.settings -------------------------------------------------------------------------------- /src/apps/start-rockwind-sqlite.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../rockwind/web.sqlite.settings -------------------------------------------------------------------------------- /src/apps/start-rockwind-vfs-aws.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../rockwind-vfs/web.aws.settings -------------------------------------------------------------------------------- /src/apps/start-rockwind-vfs-azure.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../rockwind-vfs/web.azure.settings -------------------------------------------------------------------------------- /src/apps/start-rockwind-vfs-sqlite.bat: -------------------------------------------------------------------------------- 1 | dotnet web/app.dll ../rockwind-vfs/web.sqlite.settings -------------------------------------------------------------------------------- /src/example-plugins/Multitenancy/ChangeDbFeature.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ServiceStack; 3 | using ServiceStack.Script; 4 | 5 | namespace Multitenancy 6 | { 7 | public class ChangeDbFeature : IPlugin 8 | { 9 | public void Register(IAppHost appHost) 10 | { 11 | appHost.PreRequestFilters.Add((req, res) => { 12 | var db = req.QueryString["db"]; 13 | if (db == null) return; 14 | req.Items[Keywords.DbInfo] = db == "northwind" 15 | ? new ConnectionInfo { ConnectionString = "northwind.sqlite", ProviderName = "sqlite" } 16 | : db == "techstacks" 17 | ? new ConnectionInfo { 18 | ConnectionString = Environment.GetEnvironmentVariable("TECHSTACKS_DB"), 19 | ProviderName = "postgres" 20 | } 21 | : null; 22 | }); 23 | } 24 | } 25 | 26 | public class MyScripts : ScriptMethods 27 | { 28 | public string hi(string name) => $"Hi {name}"; 29 | } 30 | } -------------------------------------------------------------------------------- /src/example-plugins/Multitenancy/Multitenancy.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/support/copy-files/populate-azure.bat: -------------------------------------------------------------------------------- 1 | dotnet run azure "{ConnectionString:$AZURE_BLOB_CONNECTION_STRING,ContainerName:rockwind}" 2 | -------------------------------------------------------------------------------- /src/support/copy-files/populate-s3.bat: -------------------------------------------------------------------------------- 1 | dotnet run s3 "{AccessKey:$AWS_ACCESS_KEY,SecretKey:$AWS_SECRET_KEY,Region:us-east-1,Bucket:rockwind}" -------------------------------------------------------------------------------- /src/support/northwind-data/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyConfiguration("")] 9 | [assembly: AssemblyCompany("")] 10 | [assembly: AssemblyProduct("Northwind Data")] 11 | [assembly: AssemblyTrademark("")] 12 | 13 | // Setting ComVisible to false makes the types in this assembly not visible 14 | // to COM components. If you need to access a type in this assembly from 15 | // COM, set the ComVisible attribute to true on that type. 16 | [assembly: ComVisible(false)] 17 | 18 | // The following GUID is for the ID of the typelib if this project is exposed to COM 19 | [assembly: Guid("7f6a9757-091f-4562-b52f-860d73789091")] 20 | -------------------------------------------------------------------------------- /src/support/northwind-data/populate-azure.bat: -------------------------------------------------------------------------------- 1 | dotnet run sqlserver $AZURE_SQL_CONNECTION_STRING -------------------------------------------------------------------------------- /src/support/northwind-data/populate-redis.bat: -------------------------------------------------------------------------------- 1 | dotnet run redis localhost:6379 -------------------------------------------------------------------------------- /src/support/northwind-data/populate-sqlserver.bat: -------------------------------------------------------------------------------- 1 | dotnet run sqlserver "Server=localhost;Database=northwind;User Id=test;Password=test;MultipleActiveResultSets=True;" --------------------------------------------------------------------------------