ln.provider/Program.cs

90 lines
3.3 KiB
C#

using System;
using ln.types.odb.ng;
using ln.provider.data.phone;
using ln.provider.data;
using ln.logging;
using ln.provider.netwatch.entities;
using ln.manage;
using System.Threading;
using ln.types.threads;
using ln.types.net;
using ln.http;
using ln.http.router;
using ln.manage.http;
namespace ln.provider
{
class MainClass
{
public static HttpResponse LogRequest(HttpRequest request)
{
Logging.Log(LogLevel.INFO, "Request: {0}",request);
foreach (String pName in request.ParameterNames)
{
Logging.Log(LogLevel.INFO, "Request Parameter: {0} = {1}", pName, request.GetParameter(pName));
}
return new HttpResponse(request);
}
public static void Main(string[] args)
{
//StaticRouter staticRouter = new StaticRouter("www");
StaticRouter staticRouter = new StaticRouter("../../www");
StaticRouter manageRouter = new StaticRouter("../../../ln.manage/www");
StaticRouter vueRouter = new StaticRouter("/home/haraldwolff/src/www/ln.vue");
SimpleRouter simpleHttpRouter = new SimpleRouter();
simpleHttpRouter.AddSimpleRoute("/*", staticRouter);
simpleHttpRouter.AddSimpleRoute("/*", vueRouter, 10);
simpleHttpRouter.AddSimpleRoute("/*", manageRouter, 9);
simpleHttpRouter.AddSimpleRoute("/*", new RouterTarget((request) =>
{
return staticRouter.Route("/", request);
//HttpResponse response = new HttpResponse(request);
//response.StatusCode = 404;
//response.SetHeader("content-type", "text/plain");
//response.ContentWriter.WriteLine("404 Not Found");
//response.ContentWriter.Flush();
//return response;
}), -1);
HTTPServer hTTPServer = new HTTPServer(new Endpoint(IPv6.ANY,8888),new LoggingRouter(simpleHttpRouter));
hTTPServer.Start();
//new ProviderApplication().Start(args);
ManagedRoot managedRoot = new ManagedRoot();
ManagedConsole managedConsole = new ManagedConsole(managedRoot);
ManagedNativeContainer<Layer2Segment> layer2segments = new ManagedNativeContainer<Layer2Segment>(managedRoot);
ManagedNativeContainer<NetworkDevice> networkDevices = new ManagedNativeContainer<NetworkDevice>(managedRoot);
ContainerRouter restRouter = new ContainerRouter(managedRoot);
simpleHttpRouter.AddSimpleRoute("/api/v1/*", restRouter);
IManagedObject nd0 = networkDevices.CreateManagedObject();
nd0.Enabled = true;
IManagedObject nd1 = networkDevices.CreateManagedObject();
nd1.SetValue("IPAddresses", new IPv6[] { IPv6.Parse("10.118.254.1"), IPv6.Parse("10.118.2.1") });
nd1.Enabled = true;
IManagedObject nd2 = networkDevices.CreateManagedObject();
nd2.Enabled = true;
Thread.Sleep(5000);
nd1.Enabled = false;
Thread.Sleep(5000);
Console.WriteLine(managedConsole.Export());
Thread.Sleep(5000);
nd0.Enabled = false;
nd1.Enabled = false;
nd2.Enabled = false;
}
}
}