aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Web/Tango.MachineService.Gateway/TangoController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService.Gateway/TangoController.cs')
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService.Gateway/TangoController.cs125
1 files changed, 0 insertions, 125 deletions
diff --git a/Software/Visual_Studio/Web/Tango.MachineService.Gateway/TangoController.cs b/Software/Visual_Studio/Web/Tango.MachineService.Gateway/TangoController.cs
deleted file mode 100644
index d44a14950..000000000
--- a/Software/Visual_Studio/Web/Tango.MachineService.Gateway/TangoController.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Security.Authentication;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Web;
-using System.Web.Http;
-using System.Web.Http.Controllers;
-using Tango.Logging;
-using Tango.Web.Security;
-
-namespace Tango.Web.Controllers
-{
- public class TangoController : ApiController
- {
- protected LogManager LogManager { get; private set; }
-
- public TangoController()
- {
- LogManager = LogManager.Default;
- }
-
- public override async Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext context, CancellationToken cancellationToken)
- {
- string controllerName = String.Empty;
- string actionName = String.Empty;
-
- try
- {
- var routeData = HttpContext.Current.Request.RequestContext.RouteData;
- actionName = routeData.Values["action"].ToString();
- controllerName = routeData.Values["controller"].ToString();
- }
- catch { }
-
- try
- {
- String request = String.Empty;
-
- try
- {
- request = context.Request.Content.ReadAsStringAsync().Result;
- }
- catch { }
-
- LogManager.Log($"Request Received on {controllerName + "/" + actionName}: \n{request}");
-
- OnRequestArrived(context.Request);
-
- var result = await base.ExecuteAsync(context, cancellationToken);
- return result;
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, $"An error occurred while processing the request message on {controllerName + "/" + actionName}.");
-
- HttpStatusCode code = HttpStatusCode.InternalServerError;
-
- if (ex is ArgumentException || ex is InvalidDataException)
- {
- code = HttpStatusCode.BadRequest;
- }
- else if (ex is AuthenticationException)
- {
- code = HttpStatusCode.Unauthorized;
- }
-
- var httpException = new HttpResponseException(Request.CreateErrorResponse(code, ex.FlattenMessage(), ex));
-
-#if DEBUG
- throw httpException;
-#else
- //Remove Stack trace
- var expandedException = httpException.Response.Content as System.Net.Http.ObjectContent<System.Web.Http.HttpError>;
-
- if (expandedException != null)
- {
- var expandedExceptionValues = expandedException.Value as HttpError;
-
- if (expandedExceptionValues != null)
- {
- expandedExceptionValues["StackTrace"] = "StackTrace not provided.";
- }
- }
-#endif
-
-
- throw httpException;
- }
- }
-
- protected virtual void OnRequestArrived(HttpRequestMessage request)
- {
- //Do nothing.
- }
- }
-
- public class TangoController<T> : TangoController where T : class
- {
- public WebToken<T> RequestToken { get; set; }
-
- protected override void OnRequestArrived(HttpRequestMessage request)
- {
- base.OnRequestArrived(request);
-
- var authorizationHeader = request.Headers.Authorization;
-
- if (authorizationHeader != null)
- {
- try
- {
- RequestToken = WebToken<T>.FromToken(authorizationHeader.Parameter != null ? authorizationHeader.Parameter : authorizationHeader.ToString());
- }
- catch (Exception ex)
- {
- throw new HttpParseException("Could not parse the provided token embedded object.", ex);
- }
- }
- }
- }
-} \ No newline at end of file