public Entity Add() { Entity entity = new Entity(); ServerComponent server = new ServerComponent() { Name = Environment.MachineName, Address = "127.0.0.1" }; entity.Add(server); ServerOptionsComponent options = new ServerOptionsComponent(); entity.Add(options); ServerStatusComponent status = new ServerStatusComponent(); entity.Add(status); MachineComponent machine = new RouterMachineComponent(); entity.Add(machine); ServerListComponent servers = new ServerListComponent(); entity.Add(servers); EntityMapComponent entities = new EntityMapComponent(); entity.Add(entities); SessionMapComponent sessions = new SessionMapComponent(); entity.Add(sessions); GroupListMapComponent groups = new GroupListMapComponent(); entity.Add(groups); ClientMapComponent clients = new ClientMapComponent(); entity.Add(clients); TransferMapComponent transfers = new TransferMapComponent(); entity.Add(transfers); #if DEBUG LogComponent log = new LogComponent(LogController); entity.Add(log); #endif Add(entity); return(entity); }
public override void Select(Entity entity) { if (entity != null) { ServerListComponent servers = entity.Get <ServerListComponent>(); List = servers.List; } else { List = EmptyList; } View.ItemsSource = List.Collection; Update(); }
private void ReadServers(XmlReader reader, ref ServerListComponent servers) { if (reader.IsEmptyElement) { return; } bool loop = true; string name = null; while (loop && reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: { name = reader.Name; switch (name) { case XmlTag.Server: { ReadServer(reader, ref servers); break; } } break; } case XmlNodeType.EndElement: { if (XmlTag.Servers.Equals(reader.Name)) { loop = false; } break; } } } }
private void WriteServers(XmlWriter writer, Entity router) { ServerListComponent servers = router.Get <ServerListComponent>(); if (servers.Empty) { return; } servers.Sort(delegate(Entity entity1, Entity entity2) { ServerComponent server1 = entity1.Get <ServerComponent>(); ServerComponent server2 = entity2.Get <ServerComponent>(); return(server1.Name.CompareTo(server2.Name)); }); writer.WriteStartElement(XmlTag.Servers); lock (servers) { foreach (Entity entity in servers) { writer.WriteStartElement(XmlTag.Server); ServerComponent server = entity.Get <ServerComponent>(); writer.WriteAttributeString(XmlTag.Enabled, server.Enabled.ToString()); writer.WriteElementString(XmlTag.Id, entity.Id); writer.WriteElementString(XmlTag.Name, server.Name); writer.WriteElementString(XmlTag.Passphrase, server.Passphrase); writer.WriteElementString(XmlTag.Address, server.Address.ToString()); writer.WriteElementString(XmlTag.Port, server.Port.ToString()); writer.WriteEndElement(); } } writer.WriteEndElement(); }
private void ReadServer(XmlReader reader, ref ServerListComponent servers) { if (reader.IsEmptyElement) { return; } bool loop = true; string name = null; // Components Entity entity = new Entity(); ServerComponent server = new ServerComponent(); server.Enabled = bool.Parse(reader.GetAttribute(XmlTag.Enabled)); while (loop && reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: { name = reader.Name; break; } case XmlNodeType.Text: { switch (name) { case XmlTag.Id: { entity.Id = reader.Value; break; } case XmlTag.Name: { server.Name = reader.Value; break; } case XmlTag.Passphrase: { server.Passphrase = reader.Value; break; } case XmlTag.Address: { server.Address = reader.Value; break; } case XmlTag.Port: { server.Port = int.Parse(reader.Value); break; } } break; } case XmlNodeType.EndElement: { if (XmlTag.Server.Equals(reader.Name)) { loop = false; } break; } } } // Components entity.Add(server); MachineComponent machine = new ServerMachineComponent(); entity.Add(machine); SessionComponent session = new SessionComponent(); entity.Add(session); #if DEBUG LogComponent log = new LogComponent(LogController); entity.Add(log); #endif servers.Add(entity); }
private void ReadRouter(XmlReader reader) { if (reader.IsEmptyElement) { return; } bool loop = true; string name = null; // Router Entity entity = new Entity(); ServerComponent server = new ServerComponent(); ServerOptionsComponent options = new ServerOptionsComponent(); ServerListComponent servers = new ServerListComponent(); server.Enabled = bool.Parse(reader.GetAttribute(XmlTag.Enabled)); while (loop && reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: { name = reader.Name; switch (name) { case XmlTag.Servers: { ReadServers(reader, ref servers); break; } case XmlTag.Options: { ReadOptions(reader, ref options); break; } } break; } case XmlNodeType.Text: { switch (name) { case XmlTag.Id: { entity.Id = reader.Value; break; } case XmlTag.Name: { server.Name = reader.Value; break; } case XmlTag.Passphrase: { server.Passphrase = reader.Value; break; } case XmlTag.Address: { server.Address = reader.Value; break; } case XmlTag.Port: { server.Port = int.Parse(reader.Value); break; } } break; } case XmlNodeType.EndElement: { if (XmlTag.Router.Equals(reader.Name)) { loop = false; } break; } } } // Router entity.Add(server); entity.Add(options); entity.Add(servers); ServerStatusComponent status = new ServerStatusComponent(); entity.Add(status); MachineComponent machine = new RouterMachineComponent(); entity.Add(machine); EntityMapComponent entities = new EntityMapComponent(); entity.Add(entities); SessionMapComponent sessions = new SessionMapComponent(); entity.Add(sessions); GroupListMapComponent groups = new GroupListMapComponent(); entity.Add(groups); ClientMapComponent clients = new ClientMapComponent(); entity.Add(clients); TransferMapComponent transfers = new TransferMapComponent(); entity.Add(transfers); #if DEBUG LogComponent log = new LogComponent(LogController); entity.Add(log); #endif RouterController.Add(entity); }