コード例 #1
0
        public void Login(string username, string password, string token)
        {
            try
            {
                var req          = $"SELECT * FROM users WHERE username = '******' AND password = '******' AND token = '{token}'";
                var responseCode = DatabaseProvider.CreateRequest(ConnectionProv.DbaseProvider, req);
                FormsManaging.TextGenerator(responseCode.Length.ToString());
                using (var ms = new MemoryStream(responseCode))
                {
                    using (var reader = new BinaryReader(ms))
                    {
                        var first = reader.ReadByte();
                        switch (first)
                        {
                        case 0:
                            FormsManaging.TextGenerator("There are some troubles so user can't login");
                            break;

                        case 1:
                            FormsManaging.TextGenerator($"{username} logged in!");
                            ConnectionProv.Players.Add(new Player(new PlayerAccountInfo(username, token), new PlayerMultiplayerInfo()));
                            break;
                        }
                    }
                }
            }
            catch (NullReferenceException ex)
            {
                FormsManaging.TextGenerator(ex.ToString());
            }
        }
コード例 #2
0
ファイル: INSERT.cs プロジェクト: Vyveron/Elysium-Server
        public static string InsertRequest(string TableName, string columns, string data)
        {
            string command = null;

            try
            {
                string[] ColumnsData = new string[columns.Split(' ').Count() - 1];
                string[] dbData      = new string[data.Split(' ').Count() - 1];
                dbData      = data.Split(' ');
                ColumnsData = columns.Split(',');
                string temp     = null;
                string tempData = null;

                foreach (string name in ColumnsData)
                {
                    temp += $"{name},";
                }
                foreach (string name in dbData)
                {
                    tempData += $"'{name}',";
                }

                var clearColumns = temp.Remove(temp.LastIndexOf(','), 1);
                var clearData    = tempData.Remove(tempData.LastIndexOf(','), 1);
                FormsManaging.TextGenerator(clearData);
                command = $"INSERT INTO {TableName} ({clearColumns}) VALUES ({clearData})";
            }
            catch (Exception ex)
            {
                FormsManaging.TextGenerator(ex.ToString());
            }
            return(command);
        }
コード例 #3
0
ファイル: Login.cs プロジェクト: VladPiliev/ElysiumServer
 public static void Auth(string data)
 {
     try
     {
         var req = SELECT.SelectLoginRequest("*", "users", Items.GetLoginList(), Items.SetLoginList(data));
         RequestToDB.CreateRequest(req, "LoginRequest");
     }
     catch (Exception ex)
     {
         FormsManaging.TextGenerator(ex.ToString());
     }
 }
コード例 #4
0
ファイル: Register.cs プロジェクト: VladPiliev/ElysiumServer
        public static void RegisterProfile(string data)
        {
            try
            {
                var req = INSERT.InsertRequest("users", Items.GetRegisterList(), Items.SetRegisterList(data));
                RequestToDB.CreateRequest(req, "RegistrationRequest");
            }

            catch (Exception ex)
            {
                FormsManaging.TextGenerator(ex.ToString());
            }
        }
コード例 #5
0
        public static async void ServerStart()
        {
            FormsManaging.TextGenerator("Server started.");
            IPAddress localAdd = IPAddress.Parse(SERVER_IP);

            listener = new TcpListener(localAdd, PORT_NO);
            FormsManaging.TextGenerator("Listening...");
            //RequestToDB.CreateRequest("ALTER TABLE users ADD regTime TIMESTAMP DEFAULT NOW()");

            while (true)
            {
                await SyncTask();
            }
        }
コード例 #6
0
        private void SynchronizationUser(Guid giud, TcpClient tcpClient)
        {
            FormsManaging.TextGenerator("New client available!");
            var nwStream = tcpClient.GetStream();

            FormsManaging.TextGenerator("GetStream");
            var buffer = new byte[tcpClient.ReceiveBufferSize];

            FormsManaging.TextGenerator(buffer.Length.ToString());
            FormsManaging.TextGenerator("Receive buffer size");
            nwStream.Read(buffer, 0, buffer.Length);
            FormsManaging.TextGenerator("Read");
            CreateAction(buffer, 0);
            FormsManaging.TextGenerator("Action created");
        }
コード例 #7
0
        public void CreateAccount(string username, string email, string password)
        {
            try
            {
                var req =
                    $"INSERT INTO users (username, password, email, regTime, token) VALUES ({username}, {password}, {email}" +
                    $", {DateTime.Now.ToString("s")}, {Guid.NewGuid().ToString()})";//INSERT.InsertRequest("users", Items.GetRegisterList(), Items.SetRegisterList(data));
                DatabaseProvider.CreateRequest(ConnectionProv.DbaseProvider, req);
            }

            catch (Exception ex)
            {
                FormsManaging.TextGenerator(ex.ToString());
            }
        }
コード例 #8
0
        public static byte[] CreateRequest(DatabaseProvider databaseProvider, string requestMessage)
        {
            using (var memoryStream = new MemoryStream())
            {
                FormsManaging.TextGenerator($"Created a new request with data :> {requestMessage}");
                using (var writer = new BinaryWriter(memoryStream))
                {
                    try
                    {
                        var sqlCommand = databaseProvider.SqlConnection.CreateCommand();
                        sqlCommand.CommandText = requestMessage;
                        databaseProvider.SqlConnection.Open();
                        var reader = sqlCommand.ExecuteReader();
                        reader.Read();

                        if (reader.HasRows)
                        {
                            writer.Write((byte)1);
                        }
                        else if (!reader.HasRows)
                        {
                            writer.Write((byte)0);
                        }
                        //writer.Write((byte)6);

                        /*var dataAffected = reader.RecordsAffected;
                         * if (dataAffected > 0)
                         * {
                         *  writer.Write((byte)0);
                         *  FormsManaging.TextGenerator("Registered");
                         * }
                         * else if (dataAffected == 0)
                         * {
                         *  writer.Write((byte)1);
                         *  FormsManaging.TextGenerator("failed");
                         * }*/
                    }
                    catch (MySqlException exception)
                    {
                        FormsManaging.TextGenerator(exception.ToString());
                    }
                }
                databaseProvider.SqlConnection.Close();
                //FormsManaging.TextGenerator(memoryStream.Length.ToString());
                return(memoryStream.ToArray());
            }
        }
コード例 #9
0
        public static string GetResponce(MySqlDataReader Reader, string Tag)
        {
            string Return = null;
            string data   = Tag;

            Reader.Read();
            switch (data)
            {
            case "RegistrationRequest":
                break;

            case "LoginRequest":
                if (Reader.HasRows)
                {
                    FormsManaging.TextGenerator("user logged in!");
                }
                else if (!Reader.HasRows)
                {
                    FormsManaging.TextGenerator("failed to login");
                }
                break;

            case "GetLeaderboardsRequest":
                Return = $"{Reader["username"].ToString()},{Reader["score"].ToString()}|";
                while (Reader.Read())
                {
                    Return += $"{Reader["username"].ToString()},{Reader["score"].ToString()}|";
                    FormsManaging.TextGenerator(Return);
                }

                var clear = Return.Remove(Return.LastIndexOf('|'));
                FormsManaging.TextGenerator(Return);
                break;

            case "GetScoreRequest":
                break;

            case "SetScoreRequest":
                break;
            }
            return(Return);
        }
コード例 #10
0
        public void HandleServerData(byte[] receivedData, ConnectionProvider connectionProvider, int id)
        {
            using (var reader = new BinaryReader(new MemoryStream(receivedData)))
            {
                try
                {
                    var first = reader.ReadByte();
                    FormsManaging.TextGenerator(first.ToString());
                    switch (first)
                    {
                    case 1:
                        var firstCaseByte = reader.ReadByte();
                        switch (firstCaseByte)
                        {
                        case 1:
                            connectionProvider.AuthProv.Login(reader.ReadString(), reader.ReadString(), reader.ReadString());
                            break;

                        case 2:
                            connectionProvider.AuthProv.CreateAccount(reader.ReadString(), reader.ReadString(), reader.ReadString());
                            break;

                        case 3:
                            connectionProvider.AuthProv.LogOut(reader.ReadString());
                            break;

                        default:
                            FormsManaging.TextGenerator("Unknown byte!");
                            break;
                        }
                        break;

                    default:
                        throw new Exception($"Unknown byte {first}");
                    }
                }
                catch (Exception ex)
                {
                    FormsManaging.TextGenerator(ex.ToString());
                }
            }
        }
コード例 #11
0
        public static string GetException(MySqlException exception)
        {
            //JsonSerializer serializer = new JsonSerializer();
            //serializer.Serialize()

            int    exceptionNumber = exception.Number;
            string Responce        = null;

            switch (exceptionNumber)
            {
            case 1062:
                Responce = "Username or email already used.";
                break;

            default:
                Responce = "There aren't any exceptions!";
                break;
            }
            FormsManaging.TextGenerator(Responce);
            return(Responce);
        }
コード例 #12
0
        public string GetException(MySqlException exception)
        {
            //JsonSerializer serializer = new JsonSerializer();
            //serializer.Serialize()

            var exceptionNumber = exception.Number;
            var response        = string.Empty;

            switch (exceptionNumber)
            {
            case 1062:
                response = "Username or email already used.";
                break;

            default:
                response = "Registered!";
                break;
            }
            FormsManaging.TextGenerator(response);
            return(response);
        }
コード例 #13
0
        public static string CreateRequest(string requestMessage, string tag) //this func sending request to database.
        {
            string Responce = null;

            DatabaseConnector.ConnectToDB();
            try
            {
                MySqlCommand    sqlCommand = DatabaseConnector.sqlConnection.CreateCommand();
                MySqlDataReader Reader;
                sqlCommand.CommandText = requestMessage;
                DatabaseConnector.sqlConnection.Open();
                Reader   = sqlCommand.ExecuteReader();
                Responce = ResponceFromDB.GetResponce(Reader, tag);
                DatabaseConnector.sqlConnection.Close();
            }
            catch (MySqlException exception)
            {
                ExecuteResponce(exception);
                FormsManaging.TextGenerator(exception.ToString());
            }

            return(Responce);
        }
コード例 #14
0
 public void Connect()
 {
     _sqlConnection = new MySqlConnection("Server=localhost;Database=database;Uid=root;Pwd=12345678;");
     FormsManaging.TextGenerator("Connected to the Database.");
 }