@using Edge.Core.Processor; @using System.Reflection; @using Edge.Core.Processor.Dispatcher.Attributes; @model IEnumerable<Tuple<ProcessorDescriptor, MetaPartsDescriptor>>; @{ ViewData["Title"] = "LiteFccCore Portal"; } <div class="text-center"> <h2 class="display-4">LiteFccCore Web Portal</h2> </div> <div> <p>Total active processors count: @Model.Count()</p> @foreach (var processorCompoundInfo in Model.OrderByDescending(p => p.Item1.ProcessorType).ThenBy(p => p.Item1.Processor.MetaConfigName)) { var processorDescriptor = processorCompoundInfo.Item1; <ul> <li> @if (processorDescriptor.ProcessorType == ProcessorType.Application) { <p>Application Processor Name: <b>@processorDescriptor.Processor.MetaConfigName</b> <i>of type: @processorDescriptor.Processor.GetType().FullName</i></p> <p>tags: @(processorCompoundInfo.Item2?.Tags?.Aggregate((acc,n)=>acc+", "+n)??"")</p> @if (processorDescriptor.UniversalApiInfos != null && processorDescriptor.UniversalApiInfos.Any()) { <label>Universal Api Service:</label> <ul> @foreach (var apiInfo in processorDescriptor.UniversalApiInfos.Where(a => a.ServiceApiInfo != null)) { <li>@(apiInfo?.ServiceApiInfo?.Name ?? "")</li> } </ul> <label>Universal Api Property:</label> <ul> @foreach (var apiInfo in processorDescriptor.UniversalApiInfos.Where(a => a.PropertyApiInfo != null)) { <li>@(apiInfo?.PropertyApiInfo?.Name ?? "")</li> } </ul> <label>Universal Api Event:</label> <ul> @foreach (var apiInfo in processorDescriptor.UniversalApiInfos.Where(a => a.EventApiInfo != null)) { <li>@(apiInfo.EventApiInfo.EventName ?? "")</li> } </ul> } } else { <p>Device Processor Name: <b>@processorDescriptor.Processor.MetaConfigName</b> <i>of type: @processorDescriptor.Processor.GetType().FullName</i></p> <p>tags: @(processorCompoundInfo.Item2?.Tags?.Aggregate((acc,n)=>acc+", "+n)??"")</p> <ul> <li>Handler <i>of type: @processorDescriptor.DeviceHandlerOrApp.GetType().FullName</i></li> @if (processorDescriptor.UniversalApiInfos != null && processorDescriptor.UniversalApiInfos.Any()) { <label>Universal Api Service:</label> <ul> @foreach (var apiInfo in processorDescriptor.UniversalApiInfos.Where(a => a.ServiceApiInfo != null)) { <li>@(apiInfo?.ServiceApiInfo?.Name ?? "")</li> } </ul> <label>Universal Api Property:</label> <ul> @foreach (var apiInfo in processorDescriptor.UniversalApiInfos.Where(a => a.PropertyApiInfo != null)) { <li>@(apiInfo?.PropertyApiInfo?.Name ?? "")</li> } </ul> <label>Universal Api Event:</label> <ul> @foreach (var apiInfo in processorDescriptor.UniversalApiInfos.Where(a => a.EventApiInfo != null)) { <li>@(apiInfo.EventApiInfo.EventName ?? "")</li> } </ul> } <li>Communicator <i>of type:@(processorDescriptor.DeviceProcessorCommunicator?.GetType().FullName ?? "")</i></li> </ul> } </li> </ul> } </div>