Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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;
                }
                }
            }
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }