From 32c10b0d13f65312c557ad91fecb94c437f998c3 Mon Sep 17 00:00:00 2001
From: Demis Bellot
Date: Thu, 28 Nov 2013 14:44:18 -0500
Subject: [PATCH 01/14] update links
---
ImageResizer/default.html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ImageResizer/default.html b/ImageResizer/default.html
index 4625530..fa9f0c1 100644
--- a/ImageResizer/default.html
+++ b/ImageResizer/default.html
@@ -61,10 +61,10 @@
1 page c# |
1 html |
photography
-
+
-
+
Image Resizer
From d98795290e0f054280bcc87e1c08cd999bfcbefa Mon Sep 17 00:00:00 2001
From: Demis Bellot
Date: Thu, 20 Feb 2014 22:52:53 -0500
Subject: [PATCH 02/14] Upgrade all UseCases (except for CustomAuthMvc) to
v4.0.11
---
CustomAuthentication/App_Code/AppHost.cs | 16 +-
.../CustomAuthentication.csproj | 45 +-
CustomAuthentication/Default.aspx.cs | 25 +-
CustomAuthentication/Web.config | 120 +-
CustomAuthentication/packages.config | 10 +-
HelloWorld/Global.asax.cs | 227 +-
HelloWorld/HelloWorld.csproj | 36 +-
HelloWorld/Web.config | 32 +-
HelloWorld/packages.config | 10 +-
PocoPower/PocoPower.csproj | 36 +-
PocoPower/Program.cs | 5 +-
PocoPower/Properties/AssemblyInfo.cs | 72 +-
PocoPower/app.config | 3 +
PocoPower/packages.config | 15 +-
PocoPower/sqlite/x64/sqlite3.dll | Bin 1176064 -> 0 bytes
PocoPower/sqlite/x86/sqlite3.dll | Bin 599419 -> 0 bytes
PocoPower/sqlite/x86/sqlite3.exe | Bin 486400 -> 0 bytes
PocoPower/sqlite3.dll | Bin 599419 -> 612664 bytes
Reusability/Global.asax | 2 +-
Reusability/Global.asax.cs | 23 +-
Reusability/MqStats.cs | 21 +-
Reusability/Properties/AssemblyInfo.cs | 70 +-
Reusability/Reusability.csproj | 86 +-
Reusability/SMessageService.cs | 54 +-
Reusability/Tests.cs | 2 +-
Reusability/Web.config | 12 +-
Reusability/packages.config | 19 +-
Reusability/sqlite/x64/sqlite3.dll | Bin 1176064 -> 0 bytes
Reusability/sqlite/x86/sqlite3.dll | Bin 599419 -> 0 bytes
Reusability/sqlite/x86/sqlite3.exe | Bin 486400 -> 0 bytes
Reusability/sqlite3.dll | Bin 599419 -> 612664 bytes
ServiceStack.UseCases.sln | 1 +
SwaggerHelloWorld/Global.asax.cs | 7 +-
SwaggerHelloWorld/SwaggerHelloWorld.csproj | 48 +-
SwaggerHelloWorld/Web.config | 4 +-
SwaggerHelloWorld/packages.config | 12 +-
.../swagger-ui/css/highlight.default.css | 135 +
SwaggerHelloWorld/swagger-ui/css/screen.css | 1953 +--
.../swagger-ui/images/logo_small.png | Bin 0 -> 770 bytes
.../swagger-ui/images/throbber.gif | Bin 0 -> 9257 bytes
SwaggerHelloWorld/swagger-ui/index.html | 125 +-
.../swagger-ui/lib/handlebars-1.0.0.js | 2278 ++++
.../lib/handlebars.runtime-1.0.0.beta.6.js | 223 -
.../swagger-ui/lib/highlight.7.3.pack.js | 1 +
.../swagger-ui/lib/jquery-1.8.0.min.js | 2 +
.../swagger-ui/lib/jquery.min.js | 4 -
.../swagger-ui/lib/shred.bundle.js | 2765 ++++
.../swagger-ui/lib/shred/content.js | 193 +
SwaggerHelloWorld/swagger-ui/lib/swagger.js | 1166 +-
SwaggerHelloWorld/swagger-ui/swagger-ui.js | 2094 ++-
.../swagger-ui/swagger-ui.min.js | 2 +-
WebApi.ProductsExample/Global.asax.cs | 2 +-
WebApi.ProductsExample/ProductsService.cs | 3 +-
.../ProductsServiceTests.cs | 3 +-
WebApi.ProductsExample/Web.config | 119 +-
.../WebApi.ProductsExample.csproj | 49 +-
WebApi.ProductsExample/packages.config | 12 +-
packages/NUnit.2.6.2/NUnit.2.6.2.nupkg | Bin 94702 -> 0 bytes
packages/NUnit.2.6.2/NUnit.2.6.2.nuspec | 27 -
packages/NUnit.2.6.2/lib/nunit.framework.dll | Bin 147456 -> 0 bytes
packages/NUnit.2.6.2/lib/nunit.framework.xml | 10899 ----------------
packages/NUnit.2.6.2/license.txt | 15 -
.../ServiceStack.3.9.25.nupkg | Bin 519414 -> 0 bytes
.../ServiceStack.3.9.25.nuspec | 27 -
.../net35/ServiceStack.ServiceInterface.dll | Bin 258560 -> 0 bytes
.../lib/net35/ServiceStack.dll | Bin 689664 -> 0 bytes
.../lib/net35/ServiceStack.xml | 3328 -----
.../ServiceStack.Common.3.9.25.nupkg | Bin 459218 -> 0 bytes
.../ServiceStack.Common.3.9.25.nuspec | 28 -
.../lib/net35/ServiceStack.Common.dll | Bin 219648 -> 0 bytes
.../lib/net35/ServiceStack.Common.xml | 891 --
.../lib/net35/ServiceStack.Interfaces.dll | Bin 89600 -> 0 bytes
.../lib/net35/ServiceStack.Interfaces.xml | 1596 ---
.../lib/sl4/README.txt | 3 -
.../lib/sl4/ServiceStack.Common.dll | Bin 137216 -> 0 bytes
.../lib/sl4/ServiceStack.Common.xml | 475 -
.../lib/sl4/ServiceStack.Interfaces.dll | Bin 77312 -> 0 bytes
.../lib/sl4/ServiceStack.Interfaces.xml | 1343 --
.../lib/sl5/README.txt | 3 -
.../lib/sl5/ServiceStack.Common.dll | Bin 137216 -> 0 bytes
.../lib/sl5/ServiceStack.Common.xml | 475 -
.../lib/sl5/ServiceStack.Interfaces.dll | Bin 77312 -> 0 bytes
.../lib/sl5/ServiceStack.Interfaces.xml | 1343 --
...erviceStack.OrmLite.SqlServer.3.9.26.nupkg | Bin 179117 -> 0 bytes
...rviceStack.OrmLite.SqlServer.3.9.26.nuspec | 22 -
.../lib/ServiceStack.OrmLite.SqlServer.dll | Bin 11264 -> 0 bytes
.../lib/ServiceStack.OrmLite.dll | Bin 126976 -> 0 bytes
.../Content/sqlite/x64/sqlite3.dll | Bin 1176064 -> 0 bytes
.../Content/sqlite/x86/sqlite3.dll | Bin 599419 -> 0 bytes
.../Content/sqlite/x86/sqlite3.exe | Bin 486400 -> 0 bytes
...viceStack.OrmLite.Sqlite.Mono.3.9.26.nupkg | Bin 1682909 -> 0 bytes
...iceStack.OrmLite.Sqlite.Mono.3.9.26.nuspec | 21 -
.../lib/net35/Mono.Data.Sqlite.dll | Bin 169472 -> 0 bytes
.../lib/net35/ServiceStack.OrmLite.Sqlite.dll | Bin 11776 -> 0 bytes
.../lib/net35/ServiceStack.OrmLite.dll | Bin 126976 -> 0 bytes
.../ServiceStack.Razor.3.9.25.nupkg | Bin 280370 -> 0 bytes
.../ServiceStack.Razor.3.9.25.nuspec | 33 -
.../lib/net40/ServiceStack.Razor.dll | Bin 122368 -> 0 bytes
.../lib/net40/System.Web.Razor.dll | Bin 178536 -> 0 bytes
.../net40/System.Web.WebPages.Deployment.dll | Bin 25960 -> 0 bytes
.../lib/net40/System.Web.WebPages.Razor.dll | Bin 37224 -> 0 bytes
.../lib/net40/System.Web.WebPages.dll | Bin 136552 -> 0 bytes
.../ServiceStack.Redis.3.9.25.nupkg | Bin 123944 -> 0 bytes
.../ServiceStack.Redis.3.9.25.nuspec | 22 -
.../lib/net35/ServiceStack.Redis.XML | 1478 ---
.../lib/net35/ServiceStack.Redis.dll | Bin 214016 -> 0 bytes
.../ServiceStack.Text.3.9.27.nupkg | Bin 324079 -> 0 bytes
.../ServiceStack.Text.3.9.27.nuspec | 23 -
.../lib/net35/ServiceStack.Text.XML | 582 -
.../lib/net35/ServiceStack.Text.dll | Bin 161792 -> 0 bytes
.../ServiceStack.Text.WP.XML | 409 -
.../ServiceStack.Text.WP.dll | Bin 133120 -> 0 bytes
.../lib/sl4/ServiceStack.Text.dll | Bin 131072 -> 0 bytes
.../lib/sl4/ServiceStack.Text.xml | 385 -
.../lib/sl5/ServiceStack.Text.dll | Bin 130560 -> 0 bytes
.../lib/sl5/ServiceStack.Text.xml | 385 -
packages/repositories.config | 1 +
117 files changed, 9401 insertions(+), 26555 deletions(-)
create mode 100644 PocoPower/app.config
delete mode 100644 PocoPower/sqlite/x64/sqlite3.dll
delete mode 100644 PocoPower/sqlite/x86/sqlite3.dll
delete mode 100644 PocoPower/sqlite/x86/sqlite3.exe
delete mode 100644 Reusability/sqlite/x64/sqlite3.dll
delete mode 100644 Reusability/sqlite/x86/sqlite3.dll
delete mode 100644 Reusability/sqlite/x86/sqlite3.exe
create mode 100644 SwaggerHelloWorld/swagger-ui/css/highlight.default.css
create mode 100644 SwaggerHelloWorld/swagger-ui/images/logo_small.png
create mode 100644 SwaggerHelloWorld/swagger-ui/images/throbber.gif
create mode 100644 SwaggerHelloWorld/swagger-ui/lib/handlebars-1.0.0.js
delete mode 100644 SwaggerHelloWorld/swagger-ui/lib/handlebars.runtime-1.0.0.beta.6.js
create mode 100644 SwaggerHelloWorld/swagger-ui/lib/highlight.7.3.pack.js
create mode 100644 SwaggerHelloWorld/swagger-ui/lib/jquery-1.8.0.min.js
delete mode 100644 SwaggerHelloWorld/swagger-ui/lib/jquery.min.js
create mode 100644 SwaggerHelloWorld/swagger-ui/lib/shred.bundle.js
create mode 100644 SwaggerHelloWorld/swagger-ui/lib/shred/content.js
delete mode 100644 packages/NUnit.2.6.2/NUnit.2.6.2.nupkg
delete mode 100644 packages/NUnit.2.6.2/NUnit.2.6.2.nuspec
delete mode 100644 packages/NUnit.2.6.2/lib/nunit.framework.dll
delete mode 100644 packages/NUnit.2.6.2/lib/nunit.framework.xml
delete mode 100644 packages/NUnit.2.6.2/license.txt
delete mode 100644 packages/ServiceStack.3.9.25/ServiceStack.3.9.25.nupkg
delete mode 100644 packages/ServiceStack.3.9.25/ServiceStack.3.9.25.nuspec
delete mode 100644 packages/ServiceStack.3.9.25/lib/net35/ServiceStack.ServiceInterface.dll
delete mode 100644 packages/ServiceStack.3.9.25/lib/net35/ServiceStack.dll
delete mode 100644 packages/ServiceStack.3.9.25/lib/net35/ServiceStack.xml
delete mode 100644 packages/ServiceStack.Common.3.9.25/ServiceStack.Common.3.9.25.nupkg
delete mode 100644 packages/ServiceStack.Common.3.9.25/ServiceStack.Common.3.9.25.nuspec
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/net35/ServiceStack.Common.dll
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/net35/ServiceStack.Common.xml
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/net35/ServiceStack.Interfaces.dll
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/net35/ServiceStack.Interfaces.xml
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl4/README.txt
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl4/ServiceStack.Common.dll
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl4/ServiceStack.Common.xml
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl4/ServiceStack.Interfaces.dll
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl4/ServiceStack.Interfaces.xml
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl5/README.txt
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl5/ServiceStack.Common.dll
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl5/ServiceStack.Common.xml
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl5/ServiceStack.Interfaces.dll
delete mode 100644 packages/ServiceStack.Common.3.9.25/lib/sl5/ServiceStack.Interfaces.xml
delete mode 100644 packages/ServiceStack.OrmLite.SqlServer.3.9.26/ServiceStack.OrmLite.SqlServer.3.9.26.nupkg
delete mode 100644 packages/ServiceStack.OrmLite.SqlServer.3.9.26/ServiceStack.OrmLite.SqlServer.3.9.26.nuspec
delete mode 100644 packages/ServiceStack.OrmLite.SqlServer.3.9.26/lib/ServiceStack.OrmLite.SqlServer.dll
delete mode 100644 packages/ServiceStack.OrmLite.SqlServer.3.9.26/lib/ServiceStack.OrmLite.dll
delete mode 100644 packages/ServiceStack.OrmLite.Sqlite.Mono.3.9.26/Content/sqlite/x64/sqlite3.dll
delete mode 100644 packages/ServiceStack.OrmLite.Sqlite.Mono.3.9.26/Content/sqlite/x86/sqlite3.dll
delete mode 100644 packages/ServiceStack.OrmLite.Sqlite.Mono.3.9.26/Content/sqlite/x86/sqlite3.exe
delete mode 100644 packages/ServiceStack.OrmLite.Sqlite.Mono.3.9.26/ServiceStack.OrmLite.Sqlite.Mono.3.9.26.nupkg
delete mode 100644 packages/ServiceStack.OrmLite.Sqlite.Mono.3.9.26/ServiceStack.OrmLite.Sqlite.Mono.3.9.26.nuspec
delete mode 100644 packages/ServiceStack.OrmLite.Sqlite.Mono.3.9.26/lib/net35/Mono.Data.Sqlite.dll
delete mode 100644 packages/ServiceStack.OrmLite.Sqlite.Mono.3.9.26/lib/net35/ServiceStack.OrmLite.Sqlite.dll
delete mode 100644 packages/ServiceStack.OrmLite.Sqlite.Mono.3.9.26/lib/net35/ServiceStack.OrmLite.dll
delete mode 100644 packages/ServiceStack.Razor.3.9.25/ServiceStack.Razor.3.9.25.nupkg
delete mode 100644 packages/ServiceStack.Razor.3.9.25/ServiceStack.Razor.3.9.25.nuspec
delete mode 100644 packages/ServiceStack.Razor.3.9.25/lib/net40/ServiceStack.Razor.dll
delete mode 100644 packages/ServiceStack.Razor.3.9.25/lib/net40/System.Web.Razor.dll
delete mode 100644 packages/ServiceStack.Razor.3.9.25/lib/net40/System.Web.WebPages.Deployment.dll
delete mode 100644 packages/ServiceStack.Razor.3.9.25/lib/net40/System.Web.WebPages.Razor.dll
delete mode 100644 packages/ServiceStack.Razor.3.9.25/lib/net40/System.Web.WebPages.dll
delete mode 100644 packages/ServiceStack.Redis.3.9.25/ServiceStack.Redis.3.9.25.nupkg
delete mode 100644 packages/ServiceStack.Redis.3.9.25/ServiceStack.Redis.3.9.25.nuspec
delete mode 100644 packages/ServiceStack.Redis.3.9.25/lib/net35/ServiceStack.Redis.XML
delete mode 100644 packages/ServiceStack.Redis.3.9.25/lib/net35/ServiceStack.Redis.dll
delete mode 100644 packages/ServiceStack.Text.3.9.27/ServiceStack.Text.3.9.27.nupkg
delete mode 100644 packages/ServiceStack.Text.3.9.27/ServiceStack.Text.3.9.27.nuspec
delete mode 100644 packages/ServiceStack.Text.3.9.27/lib/net35/ServiceStack.Text.XML
delete mode 100644 packages/ServiceStack.Text.3.9.27/lib/net35/ServiceStack.Text.dll
delete mode 100644 packages/ServiceStack.Text.3.9.27/lib/sl4-windowsphone71/ServiceStack.Text.WP.XML
delete mode 100644 packages/ServiceStack.Text.3.9.27/lib/sl4-windowsphone71/ServiceStack.Text.WP.dll
delete mode 100644 packages/ServiceStack.Text.3.9.27/lib/sl4/ServiceStack.Text.dll
delete mode 100644 packages/ServiceStack.Text.3.9.27/lib/sl4/ServiceStack.Text.xml
delete mode 100644 packages/ServiceStack.Text.3.9.27/lib/sl5/ServiceStack.Text.dll
delete mode 100644 packages/ServiceStack.Text.3.9.27/lib/sl5/ServiceStack.Text.xml
diff --git a/CustomAuthentication/App_Code/AppHost.cs b/CustomAuthentication/App_Code/AppHost.cs
index d49524f..f6cf152 100644
--- a/CustomAuthentication/App_Code/AppHost.cs
+++ b/CustomAuthentication/App_Code/AppHost.cs
@@ -1,13 +1,8 @@
-using System;
-using System.Collections.Generic;
-using System.Net;
+using System.Collections.Generic;
using Funq;
-using ServiceStack.CacheAccess;
-using ServiceStack.CacheAccess.Providers;
-using ServiceStack.ServiceHost;
-using ServiceStack.ServiceInterface;
-using ServiceStack.ServiceInterface.Auth;
-using ServiceStack.WebHost.Endpoints;
+using ServiceStack;
+using ServiceStack.Auth;
+using ServiceStack.Configuration;
namespace CustomAuthentication.App_Code
{
@@ -17,9 +12,6 @@ public AppHost() : base("Custom Authentication Example", typeof(AppHost).Assembl
public override void Configure(Container container)
{
- // register storage for user sessions
- container.Register(new MemoryCacheClient());
-
// Register AuthFeature with custom user session and custom auth provider
Plugins.Add(new AuthFeature(
() => new CustomUserSession(),
diff --git a/CustomAuthentication/CustomAuthentication.csproj b/CustomAuthentication/CustomAuthentication.csproj
index 48e8003..fcc5d69 100644
--- a/CustomAuthentication/CustomAuthentication.csproj
+++ b/CustomAuthentication/CustomAuthentication.csproj
@@ -13,7 +13,7 @@
Properties
CustomAuthentication
CustomAuthentication
- v3.5
+ v4.0
false
..\
true
@@ -22,6 +22,11 @@
4.0
+
+
+
+
+
true
@@ -41,37 +46,32 @@
4
-
- ..\packages\ServiceStack.3.9.25\lib\net35\ServiceStack.dll
-
-
- ..\packages\ServiceStack.Common.3.9.25\lib\net35\ServiceStack.Common.dll
-
-
- ..\packages\ServiceStack.Common.3.9.25\lib\net35\ServiceStack.Interfaces.dll
-
-
- ..\packages\ServiceStack.OrmLite.SqlServer.3.9.26\lib\ServiceStack.OrmLite.dll
+
+ False
+ ..\packages\ServiceStack.4.0.11\lib\net40\ServiceStack.dll
-
- ..\packages\ServiceStack.OrmLite.SqlServer.3.9.26\lib\ServiceStack.OrmLite.SqlServer.dll
+
+ ..\packages\ServiceStack.Client.4.0.11\lib\net40\ServiceStack.Client.dll
-
- ..\packages\ServiceStack.Redis.3.9.25\lib\net35\ServiceStack.Redis.dll
+
+ False
+ ..\packages\ServiceStack.Common.4.0.11\lib\net40\ServiceStack.Common.dll
-
- ..\packages\ServiceStack.3.9.25\lib\net35\ServiceStack.ServiceInterface.dll
+
+ False
+ ..\packages\ServiceStack.Interfaces.4.0.11\lib\net40\ServiceStack.Interfaces.dll
-
+
False
- ..\packages\ServiceStack.Text.3.9.27\lib\net35\ServiceStack.Text.dll
+ ..\packages\ServiceStack.Text.4.0.11\lib\net40\ServiceStack.Text.dll
-
+
+
+
-
@@ -79,6 +79,7 @@
+
diff --git a/CustomAuthentication/Default.aspx.cs b/CustomAuthentication/Default.aspx.cs
index 6cd627b..1691ff3 100644
--- a/CustomAuthentication/Default.aspx.cs
+++ b/CustomAuthentication/Default.aspx.cs
@@ -1,13 +1,7 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
using System.Web;
-using System.Web.UI;
-using System.Web.UI.WebControls;
-using ServiceStack.ServiceClient.Web;
-using ServiceStack.ServiceInterface;
-using ServiceStack.ServiceInterface.Auth;
+using ServiceStack;
+using ServiceStack.Web;
namespace CustomAuthentication
{
@@ -22,13 +16,14 @@ protected void btnAuth_Click(object sender, EventArgs e)
{
var baseUrl = Request.Url.GetLeftPart(UriPartial.Authority) + "/api";
var client = new JsonServiceClient(baseUrl);
- var authResponse = client.Post("/auth", new Auth
- {
- UserName = tbUser.Text,
- Password = tbPassword.Text
- });
- var response = HttpContext.Current.Response.ToResponse();
- response.Cookies.AddSessionCookie(SessionFeature.SessionId, authResponse.SessionId);
+ var authResponse = client.Post("/auth", new Authenticate
+ {
+ UserName = tbUser.Text,
+ Password = tbPassword.Text
+ });
+
+ var requestContxt = HttpContext.Current.ToRequest();
+ ((IHttpResponse)requestContxt.Response).Cookies.AddSessionCookie(SessionFeature.SessionId, authResponse.SessionId);
phAuthenticated.Visible = true;
}
diff --git a/CustomAuthentication/Web.config b/CustomAuthentication/Web.config
index 1e837c1..e77b5c9 100644
--- a/CustomAuthentication/Web.config
+++ b/CustomAuthentication/Web.config
@@ -1,40 +1,16 @@

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
-
+
\ No newline at end of file
diff --git a/CustomAuthentication/packages.config b/CustomAuthentication/packages.config
index a0e3f0d..09a7bb3 100644
--- a/CustomAuthentication/packages.config
+++ b/CustomAuthentication/packages.config
@@ -1,8 +1,8 @@

-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/HelloWorld/Global.asax.cs b/HelloWorld/Global.asax.cs
index 468ccd1..caf16e2 100644
--- a/HelloWorld/Global.asax.cs
+++ b/HelloWorld/Global.asax.cs
@@ -1,116 +1,113 @@
-using System;
-using System.Drawing;
-using System.Drawing.Imaging;
-using System.IO;
-using Funq;
-using ServiceStack.ServiceHost;
-using ServiceStack.ServiceInterface;
-using ServiceStack.Text;
-using ServiceStack.WebHost.Endpoints;
-
-namespace HelloWorld
-{
- //Configure AppHost
- public class AppHost : AppHostBase
- {
- public AppHost() : base("Hello ServiceStack", typeof(Hello).Assembly) {}
- public override void Configure(Container container) {}
- }
-
- public class Global : System.Web.HttpApplication
- {
- protected void Application_Start(object sender, EventArgs e)
- {
- new AppHost().Init();
- }
- }
-
- //Define Request and Response DTOs
- [Route("/hellotext/{Name}")]
- public class HelloText
- {
- public string Name { get; set; }
- }
-
- [Route("/hellohtml/{Name}")]
- public class HelloHtml
- {
- public string Name { get; set; }
- }
-
- [Route("/helloimage/{Name}")]
- public class HelloImage
- {
- public string Name { get; set; }
-
- public int? Width { get; set; }
- public int? Height { get; set; }
- public int? FontSize { get; set; }
- public string Foreground { get; set; }
- public string Background { get; set; }
- }
-
- [Route("/hello/{Name}")]
- public class Hello : IReturn
- {
- public string Name { get; set; }
- }
-
- public class HelloResponse
- {
- public string Result { get; set; }
- }
-
- //Implementation
- public class HelloService : Service
- {
- public object Get(HelloHtml request)
- {
- return "Hello, {0}!
".Fmt(request.Name);
- }
-
- [AddHeader(ContentType = "text/plain")]
- public object Get(HelloText request)
- {
- return "Hello, {0}!
".Fmt(request.Name);
- }
-
- [AddHeader(ContentType = "image/png")]
- public object Get(HelloImage request)
- {
- var width = request.Width.GetValueOrDefault(640);
- var height = request.Height.GetValueOrDefault(360);
- var bgColor = request.Background != null ? Color.FromName(request.Background) : Color.ForestGreen;
- var fgColor = request.Foreground != null ? Color.FromName(request.Foreground) : Color.White;
-
- var image = new Bitmap(width, height);
- using (var g = Graphics.FromImage(image))
- {
- g.Clear(bgColor);
-
- var drawString = "Hello, {0}!".Fmt(request.Name);
- var drawFont = new Font("Times", request.FontSize.GetValueOrDefault(40));
- var drawBrush = new SolidBrush(fgColor);
- var drawRect = new RectangleF(0, 0, width, height);
-
- var drawFormat = new StringFormat {
- LineAlignment = StringAlignment.Center,
- Alignment = StringAlignment.Center };
-
- g.DrawString(drawString, drawFont, drawBrush, drawRect, drawFormat);
-
- var ms = new MemoryStream();
- image.Save(ms, ImageFormat.Png);
- return ms;
- }
- }
-
- public object Get(Hello request)
- {
- return new HelloResponse { Result = "Hello, {0}!".Fmt(request.Name) };
-
- //C# client can call with:
- //var response = client.Get(new Hello { Name = "ServiceStack" });
- }
- }
+using System;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using Funq;
+using ServiceStack;
+
+namespace HelloWorld
+{
+ //Configure AppHost
+ public class AppHost : AppHostBase
+ {
+ public AppHost() : base("Hello ServiceStack", typeof(Hello).Assembly) {}
+ public override void Configure(Container container) {}
+ }
+
+ public class Global : System.Web.HttpApplication
+ {
+ protected void Application_Start(object sender, EventArgs e)
+ {
+ new AppHost().Init();
+ }
+ }
+
+ //Define Request and Response DTOs
+ [Route("/hellotext/{Name}")]
+ public class HelloText
+ {
+ public string Name { get; set; }
+ }
+
+ [Route("/hellohtml/{Name}")]
+ public class HelloHtml
+ {
+ public string Name { get; set; }
+ }
+
+ [Route("/helloimage/{Name}")]
+ public class HelloImage
+ {
+ public string Name { get; set; }
+
+ public int? Width { get; set; }
+ public int? Height { get; set; }
+ public int? FontSize { get; set; }
+ public string Foreground { get; set; }
+ public string Background { get; set; }
+ }
+
+ [Route("/hello/{Name}")]
+ public class Hello : IReturn
+ {
+ public string Name { get; set; }
+ }
+
+ public class HelloResponse
+ {
+ public string Result { get; set; }
+ }
+
+ //Implementation
+ public class HelloService : Service
+ {
+ public object Get(HelloHtml request)
+ {
+ return "Hello, {0}!
".Fmt(request.Name);
+ }
+
+ [AddHeader(ContentType = "text/plain")]
+ public object Get(HelloText request)
+ {
+ return "Hello, {0}!
".Fmt(request.Name);
+ }
+
+ [AddHeader(ContentType = "image/png")]
+ public object Get(HelloImage request)
+ {
+ var width = request.Width.GetValueOrDefault(640);
+ var height = request.Height.GetValueOrDefault(360);
+ var bgColor = request.Background != null ? Color.FromName(request.Background) : Color.ForestGreen;
+ var fgColor = request.Foreground != null ? Color.FromName(request.Foreground) : Color.White;
+
+ var image = new Bitmap(width, height);
+ using (var g = Graphics.FromImage(image))
+ {
+ g.Clear(bgColor);
+
+ var drawString = "Hello, {0}!".Fmt(request.Name);
+ var drawFont = new Font("Times", request.FontSize.GetValueOrDefault(40));
+ var drawBrush = new SolidBrush(fgColor);
+ var drawRect = new RectangleF(0, 0, width, height);
+
+ var drawFormat = new StringFormat {
+ LineAlignment = StringAlignment.Center,
+ Alignment = StringAlignment.Center };
+
+ g.DrawString(drawString, drawFont, drawBrush, drawRect, drawFormat);
+
+ var ms = new MemoryStream();
+ image.Save(ms, ImageFormat.Png);
+ return ms;
+ }
+ }
+
+ public object Get(Hello request)
+ {
+ return new HelloResponse { Result = "Hello, {0}!".Fmt(request.Name) };
+
+ //C# client can call with:
+ //var response = client.Get(new Hello { Name = "ServiceStack" });
+ }
+ }
}
\ No newline at end of file
diff --git a/HelloWorld/HelloWorld.csproj b/HelloWorld/HelloWorld.csproj
index 82ca45c..2d2fc0d 100644
--- a/HelloWorld/HelloWorld.csproj
+++ b/HelloWorld/HelloWorld.csproj
@@ -22,6 +22,10 @@
4.0
+
+
+
+
true
@@ -42,30 +46,24 @@
-
- ..\packages\ServiceStack.3.9.25\lib\net35\ServiceStack.dll
-
-
- ..\packages\ServiceStack.Common.3.9.25\lib\net35\ServiceStack.Common.dll
-
-
- ..\packages\ServiceStack.Common.3.9.25\lib\net35\ServiceStack.Interfaces.dll
-
-
- ..\packages\ServiceStack.OrmLite.SqlServer.3.9.26\lib\ServiceStack.OrmLite.dll
+
+ False
+ ..\packages\ServiceStack.4.0.11\lib\net40\ServiceStack.dll
-
- ..\packages\ServiceStack.OrmLite.SqlServer.3.9.26\lib\ServiceStack.OrmLite.SqlServer.dll
+
+ ..\packages\ServiceStack.Client.4.0.11\lib\net40\ServiceStack.Client.dll
-
- ..\packages\ServiceStack.Redis.3.9.25\lib\net35\ServiceStack.Redis.dll
+
+ False
+ ..\packages\ServiceStack.Common.4.0.11\lib\net40\ServiceStack.Common.dll
-
- ..\packages\ServiceStack.3.9.25\lib\net35\ServiceStack.ServiceInterface.dll
+
+ False
+ ..\packages\ServiceStack.Interfaces.4.0.11\lib\net40\ServiceStack.Interfaces.dll
-
+
False
- ..\packages\ServiceStack.Text.3.9.27\lib\net35\ServiceStack.Text.dll
+ ..\packages\ServiceStack.Text.4.0.11\lib\net40\ServiceStack.Text.dll
diff --git a/HelloWorld/Web.config b/HelloWorld/Web.config
index 448d69d..9081cbf 100644
--- a/HelloWorld/Web.config
+++ b/HelloWorld/Web.config
@@ -1,17 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HelloWorld/packages.config b/HelloWorld/packages.config
index d89cad2..09a7bb3 100644
--- a/HelloWorld/packages.config
+++ b/HelloWorld/packages.config
@@ -1,8 +1,8 @@

-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/PocoPower/PocoPower.csproj b/PocoPower/PocoPower.csproj
index 80a0aa4..7592cc2 100644
--- a/PocoPower/PocoPower.csproj
+++ b/PocoPower/PocoPower.csproj
@@ -10,10 +10,11 @@
Properties
PocoPower
PocoPower
- v3.5
+ v4.0
512
..\
true
+
x86
@@ -36,35 +37,34 @@
- ..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.26\lib\net35\Mono.Data.Sqlite.dll
+ ..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.0.11\lib\net40\Mono.Data.Sqlite.dll
- ..\packages\ServiceStack.3.9.25\lib\net35\ServiceStack.dll
+ ..\packages\ServiceStack.4.0.11\lib\net40\ServiceStack.dll
+
+
+ ..\packages\ServiceStack.Client.4.0.11\lib\net40\ServiceStack.Client.dll
- ..\packages\ServiceStack.Common.3.9.25\lib\net35\ServiceStack.Common.dll
+ ..\packages\ServiceStack.Common.4.0.11\lib\net40\ServiceStack.Common.dll
- ..\packages\ServiceStack.Common.3.9.25\lib\net35\ServiceStack.Interfaces.dll
+ ..\packages\ServiceStack.Interfaces.4.0.11\lib\net40\ServiceStack.Interfaces.dll
- ..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.26\lib\net35\ServiceStack.OrmLite.dll
+ ..\packages\ServiceStack.OrmLite.4.0.11\lib\net40\ServiceStack.OrmLite.dll
- ..\packages\ServiceStack.OrmLite.Sqlite.Mono.3.9.26\lib\net35\ServiceStack.OrmLite.Sqlite.dll
-
-
- ..\packages\ServiceStack.OrmLite.SqlServer.3.9.26\lib\ServiceStack.OrmLite.SqlServer.dll
+ ..\packages\ServiceStack.OrmLite.Sqlite.Mono.4.0.11\lib\net40\ServiceStack.OrmLite.Sqlite.dll
- ..\packages\ServiceStack.Redis.3.9.25\lib\net35\ServiceStack.Redis.dll
+ ..\packages\ServiceStack.Redis.4.0.11\lib\net40\ServiceStack.Redis.dll
-
- ..\packages\ServiceStack.3.9.25\lib\net35\ServiceStack.ServiceInterface.dll
+
+ ..\packages\ServiceStack.Server.4.0.11\lib\net40\ServiceStack.Server.dll
-
- False
- ..\packages\ServiceStack.Text.3.9.27\lib\net35\ServiceStack.Text.dll
+
+ ..\packages\ServiceStack.Text.4.0.11\lib\net40\ServiceStack.Text.dll
@@ -78,6 +78,7 @@
+
@@ -85,9 +86,6 @@
PreserveNewest
-
-
-
diff --git a/PocoPower/Program.cs b/PocoPower/Program.cs
index 8937cc2..6f81587 100644
--- a/PocoPower/Program.cs
+++ b/PocoPower/Program.cs
@@ -2,11 +2,10 @@
using System.Collections.Generic;
using System.Data;
using System.Linq;
+using ServiceStack;
using ServiceStack.Configuration;
using ServiceStack.OrmLite;
using ServiceStack.Redis;
-using ServiceStack.ServiceClient.Web;
-using ServiceStack.ServiceInterface;
using ServiceStack.Text;
//Stand-alone Pre-Req:
@@ -86,7 +85,7 @@ public List GetTimeline(string screenName, string sinceId = null, string
if (!string.IsNullOrEmpty(maxId))
url = url.AddQueryParam("max_id", maxId);
- var json = url.DownloadJsonFromUrl();
+ var json = url.GetJsonFromUrl();
var tweets = json.FromJson>();
return tweets;
diff --git a/PocoPower/Properties/AssemblyInfo.cs b/PocoPower/Properties/AssemblyInfo.cs
index e537233..7a3bd43 100644
--- a/PocoPower/Properties/AssemblyInfo.cs
+++ b/PocoPower/Properties/AssemblyInfo.cs
@@ -1,36 +1,36 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("PocoPower")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("PocoPower")]
-[assembly: AssemblyCopyright("Copyright © 2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("e5fb03bf-a0a1-4642-942c-192a87e64c55")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("PocoPower")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("PocoPower")]
+[assembly: AssemblyCopyright("Copyright © 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e5fb03bf-a0a1-4642-942c-192a87e64c55")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/PocoPower/app.config b/PocoPower/app.config
new file mode 100644
index 0000000..e365603
--- /dev/null
+++ b/PocoPower/app.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/PocoPower/packages.config b/PocoPower/packages.config
index a2f5db5..ad50b42 100644
--- a/PocoPower/packages.config
+++ b/PocoPower/packages.config
@@ -1,9 +1,12 @@

-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/PocoPower/sqlite/x64/sqlite3.dll b/PocoPower/sqlite/x64/sqlite3.dll
deleted file mode 100644
index 45516a1656b845661c8f7889175f41592c6210f8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1176064
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