Добавлены дополнительные комментарии, проведена пересборка проекта
This commit is contained in:
parent
04e600fc9f
commit
c673616c05
@ -8,19 +8,23 @@ using System.Text;
|
|||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
|
|
||||||
|
//MVC-контроллеры для обработки запросов от WEB-приложения "Парус 8 - Панели мониторинга" (и прочих клиентов)
|
||||||
namespace P8PanelsParusOnlineExt.Controllers
|
namespace P8PanelsParusOnlineExt.Controllers
|
||||||
{
|
{
|
||||||
|
//Корневой контроллер
|
||||||
public class P8PanelsController : Controller
|
public class P8PanelsController : Controller
|
||||||
{
|
{
|
||||||
private readonly IContextualParusDatabaseFactoryProvider _databaseProvider;
|
private readonly IContextualParusDatabaseFactoryProvider _databaseProvider;
|
||||||
private readonly static string _STATUS_ERR = "ERR";
|
private readonly static string _STATUS_ERR = "ERR";
|
||||||
private readonly static string _STATUS_OK = "OK";
|
private readonly static string _STATUS_OK = "OK";
|
||||||
|
|
||||||
|
//Конструктор
|
||||||
public P8PanelsController(IContextualParusDatabaseFactoryProvider databaseProvider)
|
public P8PanelsController(IContextualParusDatabaseFactoryProvider databaseProvider)
|
||||||
{
|
{
|
||||||
_databaseProvider = databaseProvider;
|
_databaseProvider = databaseProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Преобразование данных запроса в строку
|
||||||
private string GetRequestContentAsString()
|
private string GetRequestContentAsString()
|
||||||
{
|
{
|
||||||
using (var receiveStream = Request.InputStream)
|
using (var receiveStream = Request.InputStream)
|
||||||
@ -103,6 +107,7 @@ namespace P8PanelsParusOnlineExt.Controllers
|
|||||||
return MakeRespond(status: _STATUS_OK, payload: payload);
|
return MakeRespond(status: _STATUS_OK, payload: payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Обработка POST-запросов на P8Panels/Process
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public ActionResult Process()
|
public ActionResult Process()
|
||||||
{
|
{
|
||||||
@ -129,6 +134,7 @@ namespace P8PanelsParusOnlineExt.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Обработка POST-запросов на P8Panels/GetConfig
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public ActionResult GetConfig()
|
public ActionResult GetConfig()
|
||||||
{
|
{
|
||||||
|
21
Module.cs
21
Module.cs
@ -10,9 +10,11 @@ using System.Xml;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using CommonActivities.Activities;
|
using CommonActivities.Activities;
|
||||||
|
|
||||||
|
//"Панели" - расширение для "ПАРУС 8 Онлайн" (библиотека для сервера приложений)
|
||||||
namespace P8PanelsParusOnlineExt
|
namespace P8PanelsParusOnlineExt
|
||||||
{
|
{
|
||||||
|
|
||||||
|
//Настройки расширения
|
||||||
public class P8PanelConfig
|
public class P8PanelConfig
|
||||||
{
|
{
|
||||||
private List<P8PanelMenuApp> _menuApps = new List<P8PanelMenuApp>();
|
private List<P8PanelMenuApp> _menuApps = new List<P8PanelMenuApp>();
|
||||||
@ -23,13 +25,17 @@ namespace P8PanelsParusOnlineExt
|
|||||||
|
|
||||||
private string _panelsUrlBase;
|
private string _panelsUrlBase;
|
||||||
|
|
||||||
|
//Конструктор
|
||||||
public P8PanelConfig(string confiFileName)
|
public P8PanelConfig(string confiFileName)
|
||||||
{
|
{
|
||||||
|
//Читаем указанный файл конфигурации как XML
|
||||||
XmlDocument doc = new XmlDocument();
|
XmlDocument doc = new XmlDocument();
|
||||||
doc.Load(confiFileName);
|
doc.Load(confiFileName);
|
||||||
XmlNode section = doc.DocumentElement.SelectSingleNode("/CITK.P8Panels");
|
XmlNode section = doc.DocumentElement.SelectSingleNode("/CITK.P8Panels");
|
||||||
|
//Обходим десериализованный XML
|
||||||
foreach (XmlNode sectionNode in section.ChildNodes)
|
foreach (XmlNode sectionNode in section.ChildNodes)
|
||||||
{
|
{
|
||||||
|
//Настройки пунктов меню приложений
|
||||||
if (sectionNode.Name == "MenuItems")
|
if (sectionNode.Name == "MenuItems")
|
||||||
{
|
{
|
||||||
foreach (XmlNode menuAppNode in sectionNode.ChildNodes)
|
foreach (XmlNode menuAppNode in sectionNode.ChildNodes)
|
||||||
@ -50,6 +56,7 @@ namespace P8PanelsParusOnlineExt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Настройки панелей
|
||||||
if (sectionNode.Name == "Panels")
|
if (sectionNode.Name == "Panels")
|
||||||
{
|
{
|
||||||
_panelsUrlBase = sectionNode.Attributes["urlBase"].Value;
|
_panelsUrlBase = sectionNode.Attributes["urlBase"].Value;
|
||||||
@ -69,25 +76,32 @@ namespace P8PanelsParusOnlineExt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Поиск панели в настройке по наименованию
|
||||||
public P8Panel FindPanelByName(string name)
|
public P8Panel FindPanelByName(string name)
|
||||||
{
|
{
|
||||||
return _panels.Find(panel => panel.name == name);
|
return _panels.Find(panel => panel.name == name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Список приложений для подключения панелей
|
||||||
public List<P8PanelMenuApp> menuApps { get => _menuApps; }
|
public List<P8PanelMenuApp> menuApps { get => _menuApps; }
|
||||||
|
|
||||||
|
//Список подключаемых к приложениям пунктов меню панелей
|
||||||
public List<P8PanelMenuItem> menuItems { get => _menuItems; }
|
public List<P8PanelMenuItem> menuItems { get => _menuItems; }
|
||||||
|
|
||||||
|
//Настройки панелей
|
||||||
public List<P8Panel> panels { get => _panels; }
|
public List<P8Panel> panels { get => _panels; }
|
||||||
|
|
||||||
|
//Базовый URL к WEB-приложению "Парус 8 - Панели мониторинга"
|
||||||
public string panelsUrlBase { get => _panelsUrlBase; }
|
public string panelsUrlBase { get => _panelsUrlBase; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Приложение панели
|
||||||
public class P8PanelMenuApp
|
public class P8PanelMenuApp
|
||||||
{
|
{
|
||||||
public string name { get; set; }
|
public string name { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Элемент меню панели
|
||||||
public class P8PanelMenuItem
|
public class P8PanelMenuItem
|
||||||
{
|
{
|
||||||
public string app { get; set; }
|
public string app { get; set; }
|
||||||
@ -99,6 +113,7 @@ namespace P8PanelsParusOnlineExt
|
|||||||
public string panelName { get; set; }
|
public string panelName { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Параметры панели
|
||||||
public class P8Panel
|
public class P8Panel
|
||||||
{
|
{
|
||||||
public string name { get; set; }
|
public string name { get; set; }
|
||||||
@ -109,6 +124,7 @@ namespace P8PanelsParusOnlineExt
|
|||||||
public bool showInPanelsList { get; set; }
|
public bool showInPanelsList { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Точка входа в модуль расширения
|
||||||
public class Module : ExtensionModuleBase
|
public class Module : ExtensionModuleBase
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -124,9 +140,12 @@ namespace P8PanelsParusOnlineExt
|
|||||||
|
|
||||||
public override bool HasViews => false;
|
public override bool HasViews => false;
|
||||||
|
|
||||||
|
//Конструктор
|
||||||
public Module()
|
public Module()
|
||||||
{
|
{
|
||||||
|
//Читаем и десериализуем настройки
|
||||||
P8PanelConfig pconf = new P8PanelConfig(_configFile);
|
P8PanelConfig pconf = new P8PanelConfig(_configFile);
|
||||||
|
//Вешаем хуки на создание элементов меню для всех упомянутых в настройках приложений
|
||||||
pconf.menuApps.ForEach(menuApp => {
|
pconf.menuApps.ForEach(menuApp => {
|
||||||
_hooks.Add(MainMenuProcessorHook.Make(menuApp.name, mainMenu => {
|
_hooks.Add(MainMenuProcessorHook.Make(menuApp.name, mainMenu => {
|
||||||
pconf.menuItems.ForEach(menuItem => {
|
pconf.menuItems.ForEach(menuItem => {
|
||||||
@ -139,6 +158,7 @@ namespace P8PanelsParusOnlineExt
|
|||||||
return mainMenu;
|
return mainMenu;
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
//Вешаем хуки на нажатие всех сформированных элементов меню
|
||||||
Dictionary<string, Func<Sequence>> menuItemsActions = new Dictionary<string, Func<Sequence>>();
|
Dictionary<string, Func<Sequence>> menuItemsActions = new Dictionary<string, Func<Sequence>>();
|
||||||
pconf.menuItems.ForEach(menuItem => {
|
pconf.menuItems.ForEach(menuItem => {
|
||||||
if (!menuItem.separator)
|
if (!menuItem.separator)
|
||||||
@ -162,6 +182,7 @@ namespace P8PanelsParusOnlineExt
|
|||||||
_hooks.Add(MainMenuItemBuilderHook.Make(menuItemsActions));
|
_hooks.Add(MainMenuItemBuilderHook.Make(menuItemsActions));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Путь к файлу конфигурации расширения
|
||||||
public static string configFile { get => _configFile; }
|
public static string configFile { get => _configFile; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user