private byte[] GetMessageToByte(string message) { byte[] inData = CryptoVending.Encrypt(message); byte[] data = new byte[inData.Length + 4]; int size = inData.Length; data[0] = (byte)(size >> 24); data[1] = (byte)(size >> 16); data[2] = (byte)(size >> 8); data[3] = (byte)size; Array.Copy(inData, 0, data, 4, size); return(data); }
private void GetRound(AsyncTcpServer asyncTcpServer, byte[] array) { try { string sendMessage = string.Empty; byte[] data = null; string msg = CryptoVending.Decrypt(array); context.Post(new SendOrPostCallback(MessageCallBack), (object)(msg + "\n")); //AppendLog(msg + "\n"); Logbook.FileAppend("AccountID: " + AccountID.ToString() + " " + msg, EventType.Info); string[] message = msg.Split(';'); VendingCommands vendingCommands = (VendingCommands)Convert.ToInt16(message[0]); switch (vendingCommands) { case VendingCommands.GetBalance: R_Keeper_CodeCard = HexToDec(HexToDescSort(message[2])); R_Keeper_BalanceCard = getBalance(SocketHelper.R_Keeper_CodeCard); R_Keeper_BonusCard = RKeeper.RKeeper.AccountInfo.Bonus == 1; msg = string.Format("Code Card {0} -> Balance {1} Bonus Enable {2} ", R_Keeper_CodeCard, R_Keeper_BalanceCard, R_Keeper_BonusCard); context.Post(new SendOrPostCallback(MessageCallBack), (object)(msg + "\n")); sendMessage = string.Format("5;0;{0};", R_Keeper_BalanceCard); Logbook.FileAppend("AccountID: " + AccountID.ToString() + " " + sendMessage, EventType.Info); data = GetMessageToByte(sendMessage); if (asyncTcpServer.GetCouuntClient() > 0) { asyncTcpServer.SendMessage(asyncTcpServer.GetTcpClient(0), data); } break; case VendingCommands.BeginTran: ID = random.Next(1, 1000); sendMessage = string.Format("1;0;{0}", ID); Logbook.FileAppend("AccountID: " + AccountID.ToString() + " " + sendMessage, EventType.Info); data = GetMessageToByte(sendMessage); asyncTcpServer.SendMessage(asyncTcpServer.GetTcpClient(0), data); break; case VendingCommands.BuyWares: WaresPrice = Convert.ToInt32(message[4]); sendMessage = "2;0;"; Logbook.FileAppend("AccountID: " + AccountID.ToString() + " " + sendMessage, EventType.Info); data = GetMessageToByte(sendMessage); asyncTcpServer.SendMessage(asyncTcpServer.GetTcpClient(0), data); break; case VendingCommands.SuccsesBuy: if (AccountID > 0) { Logbook.FileAppend(string.Format("AccountID: {0} R_Keeper_CodeCard: {1} R_Keeper_BalanceCard: {2} WaresPrice: {3} WaresName: {4} ", AccountID, R_Keeper_CodeCard, R_Keeper_BalanceCard, WaresPrice, WaresName), EventType.Info); if (IsSaveDB) { PutWaresSale(R_Keeper_CodeCard, R_Keeper_BalanceCard, WaresPrice, WaresName); } if (RKeeperWaresSale(AccountID, WaresPrice)) { msg = string.Format("Code Card {0} -> Append Wares Sale {1} ", R_Keeper_CodeCard, WaresPrice); context.Post(new SendOrPostCallback(MessageCallBack), (object)(msg + "\n")); Logbook.FileAppend(string.Format("Success AccountID: {0} R_Keeper_CodeCard: {1} R_Keeper_BalanceCard: {2} WaresPrice: {3} WaresName: {4} ", AccountID, R_Keeper_CodeCard, R_Keeper_BalanceCard, WaresPrice, WaresName), EventType.Info); if (R_Keeper_BonusCard) { AppendBonus = 0; if (RKeeperAppnedBonus(AccountID, WaresPrice, R_Keeper_BonusTotal, ref AppendBonus)) { msg = string.Format("Code Card {0} -> Append Bonus {1} ", R_Keeper_CodeCard, AppendBonus); context.Post(new SendOrPostCallback(MessageCallBack), (object)(msg + "\n")); Logbook.FileAppend(string.Format("Success AccountID: {0} R_Keeper_CodeCard: {1} R_Keeper_BalanceCard: {2} Bonus: {3} ", AccountID, R_Keeper_CodeCard, R_Keeper_BalanceCard, AppendBonus), EventType.Info); } else { Logbook.FileAppend(string.Format("Unsuccess AccountID: {0} R_Keeper_CodeCard: {1} R_Keeper_BalanceCard: {2} Bonus: {3} ", AccountID, R_Keeper_CodeCard, R_Keeper_BalanceCard, AppendBonus), EventType.Info); } } } else { Logbook.FileAppend(string.Format("UnSuccessfull AccountID: {0} R_Keeper_CodeCard: {1} R_Keeper_BalanceCard: {2} WaresPrice: {3} WaresName: {4} ", AccountID, R_Keeper_CodeCard, R_Keeper_BalanceCard, WaresPrice, WaresName), EventType.Info); } } sendMessage = "3;0;"; Logbook.FileAppend("AccountID: " + AccountID.ToString() + " " + sendMessage, EventType.Info); data = GetMessageToByte(sendMessage); asyncTcpServer.SendMessage(asyncTcpServer.GetTcpClient(0), data); AccountID = 0; break; case VendingCommands.CancelBuy: sendMessage = string.Format("4;{0}", ID); Logbook.FileAppend(sendMessage, EventType.Info); data = GetMessageToByte(sendMessage); asyncTcpServer.SendMessage(asyncTcpServer.GetTcpClient(0), data); break; default: //asyncTcpServer.SendMessage(asyncTcpServer.GetTcpClient(0), message[0] + ";3"); break; } } catch (Exception e) { context.Post(new SendOrPostCallback(MessageCallBack), (object)(e.Message + "\n")); // MessageBox.Show(e.Message); } }