From a56f66230a0b4918bb3df84f069abe107cd253c6 Mon Sep 17 00:00:00 2001 From: jdevito Date: Wed, 18 Jan 2023 15:22:50 -0600 Subject: [PATCH] refactor: Changed CWS references to WebApi, re-organized Web folder --- .../Pepperdash Core/PepperDash_Core.csproj | 6 ++-- .../PepperDash_Core.csproj.DotSettings | 3 +- .../DefaultRequestRequestHandler.cs} | 4 +-- .../WebApiBaseRequestHandler.cs} | 7 ++-- .../GenericCwsBase.cs => Web/WebApiServer.cs} | 34 +++++++++++-------- 5 files changed, 30 insertions(+), 24 deletions(-) rename Pepperdash Core/Pepperdash Core/{CrestronWebServer/CwsDefaultRequestHandler.cs => Web/RequestHandlers/DefaultRequestRequestHandler.cs} (92%) rename Pepperdash Core/Pepperdash Core/{CrestronWebServer/CwsBaseHandler.cs => Web/RequestHandlers/WebApiBaseRequestHandler.cs} (92%) rename Pepperdash Core/Pepperdash Core/{CrestronWebServer/GenericCwsBase.cs => Web/WebApiServer.cs} (86%) diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj index 55c4a20..b4785a2 100644 --- a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj +++ b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj @@ -93,9 +93,9 @@ - - - + + + diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj.DotSettings b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj.DotSettings index 8107a4f..8e644b9 100644 --- a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj.DotSettings +++ b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj.DotSettings @@ -1,2 +1,3 @@  - True \ No newline at end of file + True + False \ No newline at end of file diff --git a/Pepperdash Core/Pepperdash Core/CrestronWebServer/CwsDefaultRequestHandler.cs b/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/DefaultRequestRequestHandler.cs similarity index 92% rename from Pepperdash Core/Pepperdash Core/CrestronWebServer/CwsDefaultRequestHandler.cs rename to Pepperdash Core/Pepperdash Core/Web/RequestHandlers/DefaultRequestRequestHandler.cs index 3a91114..38dd6b3 100644 --- a/Pepperdash Core/Pepperdash Core/CrestronWebServer/CwsDefaultRequestHandler.cs +++ b/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/DefaultRequestRequestHandler.cs @@ -1,8 +1,8 @@ using Crestron.SimplSharp.WebScripting; -namespace PepperDash.Core +namespace PepperDash.Core.Web.RequestHandlers { - public class CwsDefaultRequestHandler : CwsBaseHandler + public class DefaultRequestRequestHandler : WebApiBaseRequestHandler { /// /// Handles CONNECT method requests diff --git a/Pepperdash Core/Pepperdash Core/CrestronWebServer/CwsBaseHandler.cs b/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/WebApiBaseRequestHandler.cs similarity index 92% rename from Pepperdash Core/Pepperdash Core/CrestronWebServer/CwsBaseHandler.cs rename to Pepperdash Core/Pepperdash Core/Web/RequestHandlers/WebApiBaseRequestHandler.cs index f9e25bf..6d4b41c 100644 --- a/Pepperdash Core/Pepperdash Core/CrestronWebServer/CwsBaseHandler.cs +++ b/Pepperdash Core/Pepperdash Core/Web/RequestHandlers/WebApiBaseRequestHandler.cs @@ -1,21 +1,20 @@ using System; using System.Collections.Generic; using Crestron.SimplSharp.WebScripting; -using Newtonsoft.Json; -namespace PepperDash.Core +namespace PepperDash.Core.Web.RequestHandlers { /// /// CWS Base Handler, implements IHttpCwsHandler /// - public abstract class CwsBaseHandler : IHttpCwsHandler + public abstract class WebApiBaseRequestHandler : IHttpCwsHandler { private readonly Dictionary> _handlers; /// /// Constructor /// - protected CwsBaseHandler() + protected WebApiBaseRequestHandler() { _handlers = new Dictionary> { diff --git a/Pepperdash Core/Pepperdash Core/CrestronWebServer/GenericCwsBase.cs b/Pepperdash Core/Pepperdash Core/Web/WebApiServer.cs similarity index 86% rename from Pepperdash Core/Pepperdash Core/CrestronWebServer/GenericCwsBase.cs rename to Pepperdash Core/Pepperdash Core/Web/WebApiServer.cs index 0bfbb63..6843e25 100644 --- a/Pepperdash Core/Pepperdash Core/CrestronWebServer/GenericCwsBase.cs +++ b/Pepperdash Core/Pepperdash Core/Web/WebApiServer.cs @@ -1,12 +1,14 @@ using System; using Crestron.SimplSharp; using Crestron.SimplSharp.WebScripting; +using PepperDash.Core.Web.RequestHandlers; -namespace PepperDash.Core +namespace PepperDash.Core.Web { - public class GenericCwsBase : Device + public class WebApiServer : IKeyName { - private const string SplusKey = "Uninitialized CWS Server"; + private const string SplusKey = "Uninitialized Web API Server"; + private const string DefaultName = "Web API Server"; private const string DefaultBasePath = "/api"; private const uint DebugTrace = 0; @@ -16,6 +18,9 @@ namespace PepperDash.Core private HttpCwsServer _server; private readonly CCriticalSection _serverLock = new CCriticalSection(); + public string Key { get; private set; } + public string Name { get; private set; } + /// /// CWS base path, will default to "/api" if not set via initialize method /// @@ -29,11 +34,9 @@ namespace PepperDash.Core /// /// Constructor for S+. Make sure to set necessary properties using init method /// - public GenericCwsBase() - : base(SplusKey) - { - CrestronEnvironment.ProgramStatusEventHandler += CrestronEnvironment_ProgramStatusEventHandler; - CrestronEnvironment.EthernetEventHandler += CrestronEnvironment_EthernetEventHandler; + public WebApiServer() + : this(SplusKey, DefaultName, null) + { } /// @@ -41,10 +44,9 @@ namespace PepperDash.Core /// /// /// - public GenericCwsBase(string key, string basePath) - : base(key) + public WebApiServer(string key, string basePath) + : this(key, DefaultName, basePath) { - BasePath = string.IsNullOrEmpty(basePath) ? DefaultBasePath : basePath; } /// @@ -53,10 +55,14 @@ namespace PepperDash.Core /// /// /// - public GenericCwsBase(string key, string name, string basePath) - : base(key, name) + public WebApiServer(string key, string name, string basePath) { + Key = key; + Name = string.IsNullOrEmpty(name) ? DefaultName : name; BasePath = string.IsNullOrEmpty(basePath) ? DefaultBasePath : basePath; + + CrestronEnvironment.ProgramStatusEventHandler += CrestronEnvironment_ProgramStatusEventHandler; + CrestronEnvironment.EthernetEventHandler += CrestronEnvironment_EthernetEventHandler; } /// @@ -148,7 +154,7 @@ namespace PepperDash.Core _server = new HttpCwsServer(BasePath) { - HttpRequestHandler = new CwsDefaultRequestHandler() + HttpRequestHandler = new DefaultRequestRequestHandler() }; IsRegistered = _server.Register();