You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.9 KiB
63 lines
1.9 KiB
using System;
|
|
using System.Web.Http;
|
|
using System.Web.Mvc;
|
|
using ICSSoft.WebAPI.Areas.HelpPage.ModelDescriptions;
|
|
using ICSSoft.WebAPI.Areas.HelpPage.Models;
|
|
|
|
namespace ICSSoft.WebAPI.Areas.HelpPage.Controllers
|
|
{
|
|
/// <summary>
|
|
/// The controller that will handle requests for the help page.
|
|
/// </summary>
|
|
public class HelpController : Controller
|
|
{
|
|
private const string ErrorViewName = "Error";
|
|
|
|
public HelpController()
|
|
: this(GlobalConfiguration.Configuration)
|
|
{
|
|
}
|
|
|
|
public HelpController(HttpConfiguration config)
|
|
{
|
|
Configuration = config;
|
|
}
|
|
|
|
public HttpConfiguration Configuration { get; private set; }
|
|
|
|
public ActionResult Index()
|
|
{
|
|
ViewBag.DocumentationProvider = Configuration.Services.GetDocumentationProvider();
|
|
return View(Configuration.Services.GetApiExplorer().ApiDescriptions);
|
|
}
|
|
|
|
public ActionResult Api(string apiId)
|
|
{
|
|
if (!String.IsNullOrEmpty(apiId))
|
|
{
|
|
HelpPageApiModel apiModel = Configuration.GetHelpPageApiModel(apiId);
|
|
if (apiModel != null)
|
|
{
|
|
return View(apiModel);
|
|
}
|
|
}
|
|
|
|
return View(ErrorViewName);
|
|
}
|
|
|
|
public ActionResult ResourceModel(string modelName)
|
|
{
|
|
if (!String.IsNullOrEmpty(modelName))
|
|
{
|
|
ModelDescriptionGenerator modelDescriptionGenerator = Configuration.GetModelDescriptionGenerator();
|
|
ModelDescription modelDescription;
|
|
if (modelDescriptionGenerator.GeneratedModels.TryGetValue(modelName, out modelDescription))
|
|
{
|
|
return View(modelDescription);
|
|
}
|
|
}
|
|
|
|
return View(ErrorViewName);
|
|
}
|
|
}
|
|
}
|