private void UpdatePlayerStats(short id) { GamePlayer gp = Simulation.GetGamePlayer(id); if (null == gp) { return; } if (Settings.Default.DBAvail) { int winno = gp.HasWon && gp.HasEnded ? gp.WinNo + 1: gp.WinNo; int lossno = (gp.HasEnded && !gp.HasWon) || !gp.HasEnded ? gp.LossNo + 1 : gp.LossNo; if (YadDB.UpdatePlayerStats(gp.Login, winno, lossno)) { gp.WinNo = winno; gp.LossNo = lossno; } } lock (((ICollection)_playerCollection).SyncRoot) if (_playerCollection.ContainsKey(id)) { _playerCollection[id].SetData((PlayerData)gp.Clone()); } }
private void ServerProcess() { if (Settings.Default.DBAvail) { switch (YadDB.Init()) { case InitDBResult.Successful: InfoLog.WriteInfo("Database initialized successfully...", EPrefix.DatebaseInfo); _server = new Server(_ServerPortNo); _server.Start(); break; case InitDBResult.CreateMDBFileFailed: InfoLog.WriteInfo("Unable to create .mdb file...", EPrefix.DatebaseInfo); break; case InitDBResult.CreateDBFailed: InfoLog.WriteInfo("Unablie to create database...", EPrefix.DatebaseInfo); break; } } else { _server = new Server(_ServerPortNo); _server.Start(); } }
public bool Login(short id, string login, string password) { ushort winno = 0; ushort lossno = 0; if (YadDB.Login(login, password, ref winno, ref lossno)) { Player player = _server.GetPlayer(id); PlayerData pd = new PlayerData(); pd.Id = id; pd.Login = login; pd.LossNo = lossno; pd.WinNo = winno; player.SetData(pd); return(true); } return(false); }
private void ProcessRegister(RegisterMessage msg) { if (Settings.Default.DBAvail) { InfoLog.WriteInfo(string.Format(ProcessStringFormat, "Register", msg.SenderId), EPrefix.ServerProcessInfo); if (YadDB.Register(msg.Login, msg.Password, msg.Mail)) { InfoLog.WriteInfo("Player registered successfully", EPrefix.ServerProcessInfo); SendMessage(Utils.CreateResultMessage(ResponseType.Register, ResultType.Successful), msg.SenderId); } else { SendMessage(Utils.CreateResultMessage(ResponseType.Register, ResultType.Unsuccesful), msg.SenderId); } InfoLog.WriteInfo("Player registered unsucessfully", EPrefix.ServerProcessInfo); } else { SendMessage(Utils.CreateResultMessage(ResponseType.Register, ResultType.Successful), msg.SenderId); } }
private void ProcessRemindMessage(TextMessage textMessage) { InfoLog.WriteInfo("Processing remind message", EPrefix.ServerProcessInfo); string login = textMessage.Text; string email = null; string password = null; if (Settings.Default.DBAvail) { if (YadDB.Remind(login, out email, out password)) { YadMail.SendRemindMail(login, email, password); ResultMessage resMsg = Utils.CreateResultMessage(ResponseType.Remind, ResultType.Successful); SendMessage(resMsg, textMessage.SenderId); return; } else { SendMessage(Utils.CreateResultMessage(ResponseType.Remind, ResultType.Unsuccesful), textMessage.SenderId); } } SendMessage(Utils.CreateResultMessage(ResponseType.Remind, ResultType.Unsuccesful), textMessage.SenderId); }