//******************************************************************************************************
// WebPageController.cs - Gbtc
//
// Copyright © 2016, Grid Protection Alliance. All Rights Reserved.
//
// Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
// the NOTICE file distributed with this work for additional information regarding copyright ownership.
// The GPA licenses this file to you under the MIT License (MIT), the "License"; you may not use this
// file except in compliance with the License. You may obtain a copy of the License at:
//
// http://opensource.org/licenses/MIT
//
// Unless agreed to in writing, the subject software distributed under the License is distributed on an
// "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
// License for the specific language governing permissions and limitations.
//
// Code Modification History:
// ----------------------------------------------------------------------------------------------------
// 01/12/2016 - J. Ritchie Carroll
// Generated original version of source code.
//
//******************************************************************************************************
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Dependencies;
using GSF.Data;
using GSF.Web.Model;
using GSF.Web.Security;
namespace GSF.Web.Hosting
{
///
/// Defines a mini-web server with Razor support using the self-hosted API controller.
///
public class WebPageController : ApiController
{
#region [ Members ]
// Nested Types
// Web page controller dependency resolver
private sealed class WebPageControllerResolver : IDependencyResolver
{
private readonly WebServer m_webServer;
private readonly string m_defaultWebPage;
private readonly object m_model;
private readonly Type m_modelType;
private readonly AdoDataConnection m_database;
public WebPageControllerResolver(WebServer webServer, string defaultWebPage, object model, Type modelType, AdoDataConnection database)
{
m_webServer = webServer;
m_defaultWebPage = defaultWebPage;
m_model = model;
m_modelType = modelType;
m_database = database;
}
void IDisposable.Dispose()
{
}
public object GetService(Type serviceType)
{
if (serviceType == typeof(WebPageController))
return new WebPageController(m_webServer)
{
DefaultWebPage = m_defaultWebPage,
Model = m_model,
ModelType = m_modelType,
Database = m_database
};
return null;
}
public IEnumerable