` 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 |
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 |
8 |
9 | {{#each links}}
10 |
11 | {{Value}}
12 |
13 | {{/each}}
14 |
15 |
--------------------------------------------------------------------------------
/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 | [](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 |
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 | [](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 | [](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 |
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 |
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 | Top 5 Local Disks
3 | Name Type Available Space Total Free Space Total Size
4 | {{ drives | orderByDescending: it.TotalSize
5 | | take(5) | selectPartial: drive-info }}
6 |
7 |
8 |
9 | Current Process
10 | Id Name CPU Time User Time Memory (current)
11 | Memory (peak) Active Threads
12 | {{ currentProcess | selectPartial: process-info }}
13 |
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 | [](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 | [](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 |
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 | {{Key}} {{Value}}
19 | {{/tr}}
20 |
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 |
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 |
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 |
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 | {{Key}} {{Value}}
18 | {{/tr}}
19 |
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 |
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 |
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;"
--------------------------------------------------------------------------------