Beispiel #1
0
        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);
        }
Beispiel #2
0
        private void ParaEkle(object sender, EventArgs e)
        {
            var buton = (sender as SimpleButton);

            txtOdenen.Value += ConverterTool.StringToDecimal(buton.Tag.ToString(), ".");
            Toplamlar();
        }
Beispiel #3
0
    /// <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);
 }
Beispiel #5
0
    /// <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);
    }
Beispiel #7
0
    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);
    }
Beispiel #8
0
    /// <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);
    }
Beispiel #9
0
    /// <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);
    }
Beispiel #10
0
    /// <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);
    }
Beispiel #13
0
    /// <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);
    }
Beispiel #16
0
 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;
     }
 }
Beispiel #17
0
        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();
        }
Beispiel #18
0
    /// <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);
        }
    }
Beispiel #21
0
        /// <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");
            }
        }
Beispiel #22
0
        /// <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");
            }
        }