Ejemplo n.º 1
0
        public PolarisEf()
            : base(
                string.Format("server={0};database={1};username={2};password={3}", PolarisApp.Config.DatabaseAddress,
                              PolarisApp.Config.DatabaseName, PolarisApp.Config.DatabaseUsername,
                              PolarisApp.Config.DatabasePassword))
        {
            try
            {
                foreach (
                    var f in
                    Directory.EnumerateFiles(Directory.GetCurrentDirectory() + "/Resources/sql/scripts/", "*.sql"))
                {
                    Logger.WriteInternal("[DB ] Executing database script {0}", f);
                    Database.ExecuteSqlCommand(File.ReadAllText(f));
                }
                var revision = ServerInfos.Find("Revision");
                if (revision == null)
                {
                    revision = new ServerInfo {
                        Info = "Revision", Setting = "0"
                    };
                    ServerInfos.Add(revision);

                    //TODO Possibly move this somewhere else?
                    Database.ExecuteSqlCommand("ALTER TABLE Players AUTO_INCREMENT=10000000");
                }
                SaveChanges();

                Logger.WriteInternal("[DB ] Loaded database with dataset revision {0}", revision.Setting);
            }
            catch (Exception ex)
            {
                Logger.WriteException("A database exception has occured", ex);
            }
        }
Ejemplo n.º 2
0
        public void SetupDB()
        {
            try
            {
                foreach (
                    var f in
                    Directory.EnumerateFiles(Directory.GetCurrentDirectory() + "/Resources/sql/scripts/", "*.sql"))
                {
                    Logger.WriteInternal("[DB ] Executing database script {0}", f);
                    Database.ExecuteSqlCommand(File.ReadAllText(f));
                }
                var revision = ServerInfos.Find("Revision");
                if (revision == null)
                {
                    revision = new ServerInfo {
                        Info = "Revision", Setting = "0"
                    };
                    ServerInfos.Add(revision);

                    //TODO Possibly move this somewhere else?
                    Database.ExecuteSqlCommand("ALTER TABLE Players AUTO_INCREMENT=10000000");
                }
                SaveChanges();

                Logger.WriteInternal("[DB ] Loaded database with dataset revision {0}", revision.Setting);
            }
            catch (Exception ex)
            {
                Logger.WriteException("A database exception has occured", ex);
            }
        }
Ejemplo n.º 3
0
 public DevClient(ServerInfos infos)
 {
     Server      = infos;
     m_random    = new Random();
     m_infClient = new GameClient[HostCount];
     Servers     = new List <ServerInfo>();
     HostEnabled = true;
 }
Ejemplo n.º 4
0
        private async void OnAddInfo(object args)
        {
            if (AddInfoName == null ||
                string.IsNullOrWhiteSpace(AddInfoName))
            {
                Errors.Add(new Error {
                    Message = "Specify the name of the channel you want to create.", Verbose = "Specify the name of the channel you want to create."
                });
                return;
            }

            try
            {
                var info = ServerInfos.FirstOrDefault(i => i.Name.Equals(AddInfoName));
                if (info == null)
                {
                    var channelInfo = new ChannelInfo {
                        Name = AddInfoName
                    };
                    info = InfoFactory.GetInfo(channelInfo);
                    ServerInfos.Add(info);
                }

                UserInfos.Add(info);

                SelectedInfo = (InfoDecorator)info;

                if (info is Channel)
                {
                    var clientMessage = new Message {
                        SenderConnectionId = User.Name, Data = AddInfoName, MessageType = MessageType.SubscribeToChannel
                    };

                    await dipSocketClient.SendMessageAsync(clientMessage);
                }
            }
            catch (Exception ex)
            {
                Errors.Add(new Error {
                    Message = ex.Message, Verbose = ex.ToString()
                });
            }
            finally
            {
                AddInfoName = string.Empty;
            }
        }
Ejemplo n.º 5
0
        private void OnServerInfo(Message message)
        {
            dispatcher.Invoke(
                () =>
            {
                lock (serverInfosLock)
                {
                    var serverInfo     = JsonConvert.DeserializeObject <ServerInfo>(message.Data);
                    var allServerInfos = serverInfo.Channels.Cast <IInfo>()
                                         .Union(serverInfo.Connections.Where(c => !c.Name.Equals(User.Name)).Cast <IInfo>())
                                         .OrderBy(c => c.Name).ToList();

                    var removals = ServerInfos.Where(c => !allServerInfos.Any(nc => nc.Name.Equals(c.Name))).ToList();
                    foreach (var removal in removals)
                    {
                        ServerInfos.Remove(removal);
                        var removeUserInfo = UserInfos.FirstOrDefault(i => i.Name.Equals(removal.Name));
                        if (removeUserInfo != null)
                        {
                            UserInfos.Remove(removeUserInfo);
                        }
                    }

                    var updates = (from c in ServerInfos.OfType <Channel>()
                                   join ci in allServerInfos.OfType <ChannelInfo>()
                                   on c.Name equals ci.Name
                                   select c.UpdateConnections(ci)).ToList();

                    var additions = allServerInfos.Where(a => !ServerInfos.Any(c => c.Name.Equals(a.Name))).ToList();
                    if (additions.Any())
                    {
                        foreach (var addition in additions)
                        {
                            dispatcher.Invoke(
                                () =>
                            {
                                var info = InfoFactory.GetInfo(addition);
                                ServerInfos.Add(info);
                            });
                        }
                    }
                }
            });
        }
Ejemplo n.º 6
0
        private string ResolvePath(string gamePath, ServerInfos aionServer)
        {
            var pathBuilder = new StringBuilder();

            if (gamePath.Equals(Default))
            {
                var directoryName = GetGamePath();
                pathBuilder.Append(directoryName);
            }
            else
            {
                pathBuilder.Append(gamePath);
            }

            if (!gamePath.EndsWith("/"))
            {
                pathBuilder.Append("/");
            }

            pathBuilder.Append(aionServer.Path);
            return(pathBuilder.ToString());
        }