public void LuccaDevisesFile_Constructor() { List <string> workingLines = new List <string>(); workingLines.Add("EUR;550;JPY"); workingLines.Add("6"); workingLines.Add("AUD;CHF;0.9661"); workingLines.Add("JPY;KRW;13.1151"); workingLines.Add("EUR;CHF;1.2053"); workingLines.Add("AUD;JPY;86.0305"); workingLines.Add("EUR;USD;1.2989"); workingLines.Add("JPY;INR;0.6571"); var ldf = new LuccaDevisesFile(workingLines); Assert.True(ldf.DevisesChangeRateTuples.Count == 6); Assert.True(ldf.NumberOfDevises == 6); Assert.True(ldf.DeviseToConvert.DeviseCible == "JPY"); Assert.True(ldf.DeviseToConvert.DeviseSource == "EUR"); Assert.True(ldf.DeviseToConvert.ValueToConvert == 550); var ct = new ConverterTool(ldf); int res = ct.ProcessChangeRate(); Assert.Equal(res, 59033); }
private void ParaEkle(object sender, EventArgs e) { var buton = (sender as SimpleButton); txtOdenen.Value += ConverterTool.StringToDecimal(buton.Tag.ToString(), "."); Toplamlar(); }
/// <summary> /// 发送中途停止游戏 /// </summary> public override void SendRequest() { string data = "null"; Request quitInBattleRequest = new Request((int)requestType, (int)actionType, data); byte[] dataBytes = ConverterTool.SerialRequestObj(quitInBattleRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); }
/// <summary> /// 发送消息到服务器 /// </summary> /// <param name="msg"></param> public void SendMsgToServer(byte[] msg) { //消息体结构:消息体长度+消息体 byte[] data = new byte[4 + msg.Length]; ConverterTool.IntToBytes(msg.Length).CopyTo(data, 0); msg.CopyTo(data, 4); client.GetStream().Write(data, 0, data.Length); }
/// <summary> /// 发送同步箭请求 /// </summary> /// <param name="roleType">发射这个箭的角色类型</param> /// <param name="positon">箭的位置</param> /// <param name="rotation">箭的方向</param> public void SendRequest(RoleColor roleColor, Vector3 positon, Vector3 rotation) { string data = (int)roleColor + "*" + positon.x + "#" + positon.y + "#" + positon.z + "*" + rotation.x + "#" + rotation.y + "#" + rotation.z; Request syncArrowRequest = new Request((int)requestType, (int)actionType, data); byte[] dataBytes = ConverterTool.SerialRequestObj(syncArrowRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); //GameFacade.Instance.ClientManager.SendRequestToServer(requestCode, actionCode, data); }
/// <summary> /// 发送同步动作请求 /// </summary> public override void SendRequest() { string data = "null"; Request syncAnimationRequest = new Request((int)requestType, (int)actionType, data); byte[] dataBytes = ConverterTool.SerialRequestObj(syncAnimationRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); // GameFacade.Instance.ClientManager.SendRequestToServer(requestCode,actionCode,data); }
public override void SendRequest() { string data = "null";//为避免空字符串,还是发一个无意义的数据 Request listRoomRequest = new Request((int)requestType, (int)actionType, data); byte[] dataBytes = ConverterTool.SerialRequestObj(listRoomRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); //GameFacade.Instance.ClientManager.SendRequestToServer(requestCode, actionCode, data); }
/// <summary> /// 发送执行伤害请求 /// </summary> /// <param name="damageVal">伤害值</param> public void SendRequest(int damageVal) { string data = damageVal.ToString(); Request takeDamageRequest = new Request((int)requestType, (int)actionType, data); byte[] dataBytes = ConverterTool.SerialRequestObj(takeDamageRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); //GameFacade.Instance.ClientManager.SendRequestToServer(requestCode, actionCode, data); }
/// <summary> /// 发送 获得邮箱验证码 请求 /// </summary> /// <param name="email"></param> public void SendRequest(string email) { GetSecurityCodeRequestProto getSecurityCodeRequestProto = new GetSecurityCodeRequestProto(email); string jsonData = GetSecurityCodeRequestProto.packJsonData(getSecurityCodeRequestProto); Request getSecurityCodeRequest = new Request((int)requestType, (int)actionType, jsonData); byte[] dataBytes = ConverterTool.SerialRequestObj(getSecurityCodeRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); }
/// <summary> /// 发送同步位置-动画请求 /// </summary> /// <param name="position">位置</param> /// <param name="eulerAngles">旋转</param> /// <param name="forward">动画状态机parametersForward</param> private void SendRequest(Vector3 position, Vector3 eulerAngles, float forward) { //对这些数据进行拼接【注意不要用.因为有小数】包含了控制移动动画状态机的参数 string posData = position.x + "#" + position.y + "#" + position.z + "*" + eulerAngles.x + "#" + eulerAngles.y + "#" + eulerAngles.z + "*" + forward; Request syncMoveMentRequest = new Request((int)requestType, (int)actionType, posData); byte[] dataBytes = ConverterTool.SerialRequestObj(syncMoveMentRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); }
/// <summary> /// 发送退出房间请求 /// </summary> public override void SendRequest() { string data = "null"; //构造退出房间请求对象 Request quitRoomRequest = new Request((int)RequestType.Room, (int)ActionType.QuitRoom, data); //编码为二进制流 byte[] dataBytes = ConverterTool.SerialRequestObj(quitRoomRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); //GameFacade.Instance.ClientManager.SendRequestToServer(requestCode, actionCode, data); }
/// <summary> /// 发送加入房间请求 /// </summary> /// <param name="roomId">房间id</param> public void SendRequest(int roomId) { string roomIdStr = roomId.ToString(); //构建加入房间请求对象 Request joinRoomRequest = new Request((int)requestType, (int)actionType, roomIdStr); //编码为二进制流 byte[] dataBytes = ConverterTool.SerialRequestObj(joinRoomRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); //GameFacade.Instance.ClientManager.SendRequestToServer(requestCode,actionCode,roomIdStr); }
/// <summary> /// 发送注册请求 /// </summary> /// <param name="username"></param> /// <param name="password"></param> public void SendRequest(string username, string password) { //组拼数据 string data = username + "#" + password; //发送请求至服务 Request registerRequest = new Request((int)RequestType.User, (int)ActionType.Resgiter, data); byte[] dataBytes = ConverterTool.SerialRequestObj(registerRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); //GameFacade.Instance.ClientManager.SendRequestToServer(requestCode, actionCode, data); }
public void TestSlightlyHarderConversion() { List <string> workingLines = new List <string>(); workingLines.Add("EUR;1000;JPY"); workingLines.Add("2"); workingLines.Add("EUR;CHF;0.5000"); workingLines.Add("CHF;JPY;2.0000"); var ldf = new LuccaDevisesFile(workingLines); var ct = new ConverterTool(ldf); int res = ct.ProcessChangeRate(); }
/// <summary> /// 发送登录请求 /// </summary> /// <param name="username">用户名</param> /// <param name="password">密码</param> public void SendRequest(string username, string password) { //包装数据【非封包】 string data = username + "#" + password;//用#做分割,服务器按#分割即可 //封装为Request对象 Request loginRequest = new Request((int)requestType, (int)actionType, data); //发送请求.【但只能发送二进制流】 //先转换为二进制流 byte[] loginRequestBytes = ConverterTool.SerialRequestObj(loginRequest); GameFacade.Instance.ClientManager.SendMsgToServer(loginRequestBytes); }
static int Main(string [] args) { try { var tool = new ConverterTool(); return tool.Execute(args.ToSeparatorList(" ")); } catch(Exception ex) { Console.WriteLine("error: " + ex.Message); return 2; } }
static void Main(string[] args) { if (args.Count() != 1 || !File.Exists(args[0])) { throw new Exception("argument incorrect"); } var parser = new FileParser(args[0]); var file = parser.ParseFile(); var converter = new ConverterTool(file); int conversion = converter.ProcessChangeRate(); Console.WriteLine(conversion); Console.ReadLine(); }
/// <summary> /// 发送开始游戏请求 /// </summary> public void SendRequest(string p2Name) { string data; if (p2Name != null && p2Name != "") { data = p2Name; } else { data = "EMPTY"; } Request startGameRequest = new Request((int)requestType, (int)actionType, data); byte[] dataBytes = ConverterTool.SerialRequestObj(startGameRequest); GameFacade.Instance.ClientManager.SendMsgToServer(dataBytes); }
public void TestSecondEasyConversion() { List <string> workingLines = new List <string>(); workingLines.Add("EUR;550;JPY"); workingLines.Add("6"); workingLines.Add("AUD;CHF;0.9661"); workingLines.Add("JPY;KRW;13.1151"); workingLines.Add("EUR;CHF;1.2053"); workingLines.Add("AUD;JPY;86.0305"); workingLines.Add("EUR;USD;1.2989"); workingLines.Add("JPY;INR;0.6571"); workingLines.Add("JPY;EUR;2.0000"); var ldf = new LuccaDevisesFile(workingLines); var ct = new ConverterTool(ldf); int res = ct.ProcessChangeRate(); Assert.True(res == 275); }
/// <summary> /// 接收来自服务器的消息 /// </summary> public void ReceiveMsgFromClient() { NetworkStream stream = client.GetStream(); if (!stream.CanRead) { return; } //读取消息体的长度 if (isHead) { if (client.Available < 4) { return; } byte[] lenByte = new byte[4]; stream.Read(lenByte, 0, 4); len = ConverterTool.BytesToInt(lenByte, 0); isHead = false; } //读取消息体内容 if (!isHead) { if (client.Available < len) { return; } byte[] msgByte = new byte[len]; stream.Read(msgByte, 0, len); isHead = true; len = 0; //生成Response对象,根据这个对象再看具体的执行 //解析得到具体消息对象 reponseObj,然后执行具体的操作,利用反射机制 Response responseObj = ConverterTool.DeSerialToResponseObj(msgByte); GameFacade.Instance.RequestManager.HandleRespone((ActionType)responseObj.actionType, responseObj.jsonData); } }
/// <summary> /// FSL_PREPARE_STATUS表 /// </summary> /// <returns></returns> public void GetAndInsertFPSData() { Log.LoadInfo("GetAndInsertFPSData Function Start"); string updateCmd = @"update FSL_PREPARE_STATUS set send_status = '1' , RECEIVETIME = sysdate where send_status = '0'"; string selectCmd = @"select * from FSL_PREPARE_STATUS where SEND_STATUS = '0'"; StringBuilder insertCmd = new StringBuilder(@"insert into D_MDM_PREPARE_STATUS values ("); try { PVConn = new OracleConnection(PVServiceConn); PVConn.Open(); Log.LoadInfo("Open PVServiceConn success"); PVtrans = PVConn.BeginTransaction(); OracleCommand cmd = new OracleCommand(selectCmd, PVConn); OracleDataReader reader = cmd.ExecuteReader(); List <FSL_PREPARE_STATUS> fpsList = new List <FSL_PREPARE_STATUS>(); //将取出的数据加到list中 while (reader.Read()) { FSL_PREPARE_STATUS fps = new FSL_PREPARE_STATUS(); #region FSL_PREPARE_STATUS结构 fps.PREPARE_CODE = string.IsNullOrEmpty(reader["PREPARE_CODE"].ToString()) ? "" : reader["PREPARE_CODE"].ToString(); fps.FACTPREPARE_TIME = string.IsNullOrEmpty(reader["FACTPREPARE_TIME"].ToString()) ? "" : reader["FACTPREPARE_TIME"].ToString(); fps.SEND_STATUS = string.IsNullOrEmpty(reader["SEND_STATUS"].ToString()) ? "" : reader["SEND_STATUS"].ToString(); fps.FACTOUT_TIME = string.IsNullOrEmpty(reader["FACTOUT_TIME"].ToString()) ? "" : reader["FACTOUT_TIME"].ToString(); #endregion fpsList.Add(fps); } Log.LoadInfo("Get FSL_PREPARE_STATUS data over, try to update data"); //将数据更新 cmd = new OracleCommand(updateCmd, PVConn); int deleteCount = cmd.ExecuteNonQuery(); if (deleteCount != fpsList.Count) { Log.LoadInfo("Rollback"); PVtrans.Rollback(); } else { Log.LoadInfo("Update FSL_PREPARE_STATUS data over, try to copy data"); int count = 0; SVCConn = new OracleConnection(ScvConn); //将list中的数据插入本地数据库中 SVCConn.Open(); Log.LoadInfo("Open SVCConn success"); SCVtrans = SVCConn.BeginTransaction(); if (fpsList.Count > 0) { foreach (var fps in fpsList) { insertCmd.Append("'").Append(fps.PREPARE_CODE).Append("',").Append(ConverterTool.DateConverter(fps.FACTPREPARE_TIME)).Append(",").Append(ConverterTool.DateConverter(fps.FACTOUT_TIME)).Append(",'").Append("0").Append("')"); cmd = new OracleCommand(insertCmd.ToString(), SVCConn); int insertCount = cmd.ExecuteNonQuery(); count = count + insertCount; insertCmd.Clear(); insertCmd.Append(@"insert into D_MDM_PREPARE_STATUS values ("); } } if (count != fpsList.Count || count == 0) { PVtrans.Rollback(); SCVtrans.Rollback(); if (count != 0) { Log.LoadInfo("Rollback"); } } else { SCVtrans.Commit(); PVtrans.Commit(); Log.LoadInfo("Commit"); foreach (var item in fpsList) { Log.LoadInfo("Item FACTOUT_TIME:" + item.FACTOUT_TIME + " FACTPREPARE_TIME:" + item.FACTPREPARE_TIME + " PREPARE_CODE:" + item.PREPARE_CODE + " excuted"); } } } } catch (Exception ex) { if (PVtrans != null) { PVtrans.Rollback(); } if (SCVtrans != null) { SCVtrans.Rollback(); } Log.LoadInfo("Expection! Rollback"); Log.LoadInfo("GetAndInsertFPSData Error, " + ex); Console.WriteLine("GetAndInsertFPSData Error, " + ex.Message); } finally { if (PVConn != null) { PVConn.Dispose(); } if (SVCConn != null) { SVCConn.Dispose(); } Log.LoadInfo("GetAndInsertFPSData Function End"); } }
/// <summary> /// FSL_INDENT_PREPARE表 /// </summary> /// <returns></returns> public void GetAndInsertFIPData() { Log.LoadInfo("GetAndInsertFIPData Function Start"); string updateCmd = @"update FSL_INDENT_PREPARE set send_status = '1' , RECEIVETIME = sysdate where send_status = '0'"; string selectCmd = @"select * from FSL_INDENT_PREPARE where SEND_STATUS = '0'"; StringBuilder insertCmd = new StringBuilder(@"insert into D_MDM_INDENT_PREPARE values ("); try { PVConn = new OracleConnection(PVServiceConn); Log.LoadInfo("Open PVServiceConn success"); PVConn.Open(); PVtrans = PVConn.BeginTransaction(); OracleCommand cmd = new OracleCommand(selectCmd, PVConn); OracleDataReader reader = cmd.ExecuteReader(); List <FSL_INDENT_PREPARE> fipList = new List <FSL_INDENT_PREPARE>(); //将取出的数据加到list中 while (reader.Read()) { FSL_INDENT_PREPARE fip = new FSL_INDENT_PREPARE(); #region FSL_INDENT_PREPARE结构 fip.INDENT_CODE = string.IsNullOrEmpty(reader["INDENT_CODE"].ToString()) ? "" : reader["INDENT_CODE"].ToString(); fip.PREPARE_CODE = string.IsNullOrEmpty(reader["PREPARE_CODE"].ToString()) ? "" : reader["PREPARE_CODE"].ToString(); fip.NET_CODE = string.IsNullOrEmpty(reader["NET_CODE"].ToString()) ? "" : reader["NET_CODE"].ToString(); fip.SEND_STATUS = string.IsNullOrEmpty(reader["SEND_STATUS"].ToString()) ? "" : reader["SEND_STATUS"].ToString(); fip.PARTS_CODE = string.IsNullOrEmpty(reader["PARTS_CODE"].ToString()) ? "" : reader["PARTS_CODE"].ToString(); fip.PART_NUM = string.IsNullOrEmpty(reader["PART_NUM"].ToString()) ? "" : reader["PART_NUM"].ToString(); fip.PREPARE_CODE = string.IsNullOrEmpty(reader["PREPARE_CODE"].ToString()) ? "" : reader["PREPARE_CODE"].ToString(); fip.PARTS_NAME = string.IsNullOrEmpty(reader["PARTS_NAME"].ToString()) ? "" : reader["PARTS_NAME"].ToString(); fip.INDENT_TYPE = string.IsNullOrEmpty(reader["INDENT_TYPE"].ToString()) ? "" : reader["INDENT_TYPE"].ToString(); fip.PVAUDITING_TIME = string.IsNullOrEmpty(reader["PVAUDITING_TIME"].ToString()) ? "" : reader["PVAUDITING_TIME"].ToString(); fip.PREPARE_TIME = string.IsNullOrEmpty(reader["PREPARE_TIME"].ToString()) ? "" : reader["PREPARE_TIME"].ToString(); fip.YS_FS = string.IsNullOrEmpty(reader["YS_FS"].ToString()) ? "" : reader["YS_FS"].ToString(); fip.STORAGE_PLACE = string.IsNullOrEmpty(reader["STORAGE_PLACE"].ToString()) ? "" : reader["STORAGE_PLACE"].ToString(); fip.OUT_CKCODE = string.IsNullOrEmpty(reader["OUT_CKCODE"].ToString()) ? "" : reader["OUT_CKCODE"].ToString(); fip.END_CODE = string.IsNullOrEmpty(reader["END_CODE"].ToString()) ? "" : reader["END_CODE"].ToString(); #endregion fipList.Add(fip); } Log.LoadInfo("Get FSL_INDENT_PREPARE data over, try to update data"); //将数据更新 cmd = new OracleCommand(updateCmd, PVConn); int deleteCount = cmd.ExecuteNonQuery(); if (deleteCount != fipList.Count) { Log.LoadInfo("Rollback"); PVtrans.Rollback(); } else { Log.LoadInfo("Update FSL_INDENT_PREPARE data over, try to copy data"); int count = 0; //将list中的数据插入本地数据库中 SVCConn = new OracleConnection(ScvConn); SVCConn.Open(); Log.LoadInfo("Open SVCConn success"); SCVtrans = SVCConn.BeginTransaction(); if (fipList.Count > 0) { foreach (var fip in fipList) { insertCmd.Append("'").Append(fip.INDENT_CODE).Append("','").Append(fip.PREPARE_CODE).Append("','").Append(fip.NET_CODE).Append("','").Append(fip.PARTS_CODE).Append("','").Append(fip.PARTS_NAME).Append("','").Append(fip.PART_NUM).Append("','").Append(fip.INDENT_TYPE).Append("',").Append(ConverterTool.DateConverter(fip.PVAUDITING_TIME)).Append(",").Append(ConverterTool.DateConverter(fip.PREPARE_TIME)).Append(",'").Append(fip.YS_FS).Append("','").Append(fip.STORAGE_PLACE).Append("','").Append(fip.OUT_CKCODE).Append("','").Append(fip.END_CODE).Append("','").Append("0").Append("')"); cmd = new OracleCommand(insertCmd.ToString(), SVCConn); int insertCount = cmd.ExecuteNonQuery(); count = count + insertCount; insertCmd.Clear(); insertCmd.Append(@"insert into D_MDM_INDENT_PREPARE values ("); } } if (count != fipList.Count || count == 0) { PVtrans.Rollback(); SCVtrans.Rollback(); if (count != 0) { Log.LoadInfo("Rollback"); } } else { SCVtrans.Commit(); PVtrans.Commit(); Log.LoadInfo("Commit"); foreach (var item in fipList) { Log.LoadInfo("Item END_CODE:" + item.END_CODE + " INDENT_CODE:" + item.INDENT_CODE + " INDENT_TYPE:" + item.INDENT_TYPE + " NET_CODE:" + item.NET_CODE + " PART_NUM:" + item.PART_NUM + " PREPARE_CODE:" + item.PREPARE_CODE + " OUT_CKCODE:" + item.OUT_CKCODE + " PARTS_CODE:" + item.PARTS_CODE + " PARTS_NAME:" + item.PARTS_NAME + " PREPARE_TIME:" + item.PREPARE_TIME + " PVAUDITING_TIME:" + item.PVAUDITING_TIME + " STORAGE_PLACE:" + item.STORAGE_PLACE + " YS_FS:" + item.YS_FS + " excuted"); } } } } catch (Exception ex) { if (PVtrans != null) { PVtrans.Rollback(); } if (SCVtrans != null) { SCVtrans.Rollback(); } Log.LoadInfo("Expection! Rollback"); Log.LoadInfo("GetAndInsertFIPData Error, " + ex); Console.WriteLine("GetAndInsertFIPData Error, " + ex.Message); } finally { if (PVConn != null) { PVConn.Dispose(); } if (SVCConn != null) { SVCConn.Dispose(); } Log.LoadInfo("GetAndInsertFIPData Function End"); } }