Пример #1
0
        public void WriteValue <T>(XObjectRW objectRW, T value)
        {
            assert(CanWrite, "set");

            if ((object)this is XStaticPropertyInfo <T> typedThis)
            {
                typedThis._set(value);
            }
            else
            {
                _set(XConvert <T, TValue> .Convert(value));
            }
        }
Пример #2
0
        public T ReadValue <T>(XObjectRW objectRW)
        {
            assert(CanRead, "get");

            if ((object)this is XStructPropertyInfo <TStruct, T> typedThis)
            {
                return(typedThis._get(ref Tools.Pointer.Box <TStruct>(objectRW.Address)));
            }
            else
            {
                return(XConvert <TValue, T> .Convert(_get(ref ((XObjectRW <TStruct>)objectRW).Reference)));
            }
        }
        public void WriteValue <T>(object obj, T value)
        {
            Assert(CanWrite, "set");

            if (typeof(T) == typeof(TValue))
            {
                _set(ref GetRef(obj), (TValue)(object)value);

                return;
            }

            _set(ref GetRef(obj), XConvert <TValue> .Convert(value));
        }
Пример #4
0
        public void WriteValue <T>(object obj, T value)
        {
            Assert(CanWrite, "set");

            if (_set is XStaticSetValueHandler <T> __set)
            {
                __set(value);

                return;
            }

            _set(XConvert <T, TValue> .Convert(value));
        }
Пример #5
0
        public void WriteValue <T>(object obj, T value)
        {
            Assert(CanWrite, "set");

            if (typeof(T) == typeof(TValue))
            {
                _set(Unsafe.As <T, TValue>(ref value));

                return;
            }

            _set(XConvert <TValue> .Convert(value));
        }
Пример #6
0
        public T ReadValue <T>(object obj)
        {
            Assert(CanRead, "get");

            var value = _get(ref GetRef(obj));

            if (typeof(T) == typeof(TValue))
            {
                return(Unsafe.As <TValue, T>(ref value));
            }

            return(XConvert <T> .Convert(value));
        }
Пример #7
0
        public T ReadValue <T>(XObjectRW objectRW)
        {
            assert(CanRead, "get");

            if ((object)this is XStaticPropertyInfo <T> typedThis)
            {
                return(typedThis._get());
            }
            else
            {
                return(XConvert <TValue, T> .Convert(_get()));
            }
        }
Пример #8
0
        public void WriteValue <T>(object obj, T value)
        {
            Assert(CanWrite, "set");

            if (_set is XStructSetValueHandler <TStruct, T> __set)
            {
                __set(ref GetRef(obj), value);

                return;
            }

            _set(ref GetRef(obj), XConvert <T, TValue> .Convert(value));
        }
Пример #9
0
        /// <summary>
        /// Ответ OE
        /// </summary>
        public void MakeAnswer()
        {
            StringBuilder sb  = new StringBuilder();
            StringBuilder sb1 = new StringBuilder();

            sb1.AppendFormat("\t<{0} code=\"{1}\">{2}</{0}>", "error", ErrCode, HttpUtility.HtmlEncode(ErrDesc));
            if (!string.IsNullOrEmpty(Outtid))
            {
                sb1.AppendFormat("\r\n\t<{0}>{1}</{0}>", "transaction", Outtid);
            }
            if (Acceptdate != DateTime.MinValue && (State == 6 || State == 10))
            {
                sb1.AppendFormat("\r\n\t<{0}>{1}</{0}>", "accept-date", XConvert.AsDate(Acceptdate).Replace('T', ' '));
            }
            if (!string.IsNullOrEmpty(Fio))
            {
                sb1.AppendFormat("\r\n\t<{0}>{1}</{0}>", "fio", Fio);
            }
            if (!string.IsNullOrEmpty(Opname))
            {
                sb1.AppendFormat("\r\n\t<{0}>{1}</{0}>", "opname", Opname);
            }
            if (!string.IsNullOrEmpty(Account))
            {
                sb1.AppendFormat("\r\n\t<{0}>{1}</{0}>", "account", Account);
            }
            if (!string.IsNullOrEmpty(AddInfo))
            {
                sb1.AppendFormat("\r\n\t<{0}>{1}</{0}>", "info", AddInfo.Length <= 250 ? HttpUtility.HtmlEncode(AddInfo) : HttpUtility.HtmlEncode(AddInfo.Substring(0, 250)));
            }

            if (Recpay != null)
            {
                sb1.AppendFormat("\r\n\t<{0}>{1}</{0}>", "recpay", XConvert.AsAmount(Recpay.Value));
            }
            if (Balance != null)
            {
                sb1.AppendFormat("\r\n\t<{0}>{1}</{0}>", "balance", XConvert.AsAmount(Balance.Value));
            }

            sb.AppendFormat("<{0}>\r\n{1}\r\n</{0}>\r\n", "response", sb1.ToString());

            stResponse = sb.ToString();

            if (tid > 0)
            {
                UpdateState(Tid, state: State, locked: 1);
            }

            // Log("Подготовлен ответ:\r\n{0}", stResponse);
        }
Пример #10
0
 public void SetProperty(Lucene.Net.Documents.Document doc)
 {
     if (doc != null)
     {
         this.SchoolId = XConvert.ToInt32(doc.Get("SchoolId"), -1);
         this.Type     = (SchoolType)XConvert.ToByte(doc.Get("Type"));
         this.Name     = doc.Get("Name");
         this.CnName   = doc.Get("CnName");
         this.Pinyin   = doc.Get("Pinyin");
         this.RegionId = XConvert.ToInt32(doc.Get("RegionId"), -1);
         this.StateId  = XConvert.ToInt32(doc.Get("StateId"), -1);
         this.CityId   = XConvert.ToInt32(doc.Get("CityId"), -1);
     }
 }
Пример #11
0
    // Update is called once per frame
    public void Update()
    {
        if (null != m_client)
        {
            if (bProxy)
            {
                if (!m_client.IsProxy)
                {
                    if (null != OnNetState)
                    {
                        OnNetState(m_client.ProxyState);
                    }
                    bProxy = !bProxy;
                }

                return;
            }

            if (bLockDelayMsg)
            {
                return;
            }


            NetComm.Packet msgPk = m_client.ReadData();

            if (null != msgPk)
            {
                if (null == msgPk.data)
                {
                    Debug.LogWarning("服务器的数据为空,断开连接");
                    OnGameNetMessage(0, null, msgPk.bClosed ? 1 : 0);
                }
                else
                {
                    int offset = 0;
                    NetMsg.MsgHeadDef header = XConvert.ToObject <MahjongLobby_SX_Changzhi.Network.Message.NetMsg.MsgHeadDef>(msgPk.data, ref offset);
                    // TODO 查看接收十六进制数据(底层发送十六进制消息)

                    if (MahjongLobby_SX_Changzhi.LobbyContants.isOpenDebugMessage_Onreceive)
                    {
                        //DEBUG.Error(header.MsgType.ToString());
                        MahjongCommonMethod.Instance.Printbuff(msgPk.data);
                    }

                    OnGameNetMessage(header.MsgType, msgPk.data, msgPk.data.Length);
                }
            }
        }
    }
Пример #12
0
        public void WriteValue <T>(object obj, T value)
        {
            Assert(CanWrite, "set");

            if (_set is XClassSetValueHandler <T> )
            {
                var __set = _set as XClassSetValueHandler <T>;
                __set(obj, value);

                return;
            }

            _set(obj, XConvert <T, TValue> .Convert(value));
        }
Пример #13
0
        public void WriteValue <T>(XObjectRW objectRW, T value)
        {
            assert(CanWrite, "set");

            if ((object)this is XStructPropertyInfo <TStruct, T> typedThis)
            {
                typedThis._set(ref ((XObjectRW <TStruct>)objectRW).Reference, value);
            }
            else
            {
                var tValue = XConvert <T, TValue> .Convert(value);

                _set(ref ((XObjectRW <TStruct>)objectRW).Reference, tValue);
            }
        }
Пример #14
0
        /// <summary>
        /// 原始发包功能,测试成功
        /// </summary>
        /// <param name="userid"></param>
        public void NoMsgLoginReqDef(int userid)
        {
            BaseMessage.LoginReqDef LoginReqDef = new BaseMessage.LoginReqDef();
            LoginReqDef.accountId = 10000;
            LoginReqDef.serviceId = 1;
            LoginReqDef.sourceId  = 1111;
            LoginReqDef.token     = "0123456789ABCDE";
            LoginReqDef.machine   = "ABCDEFGH";


            Info.UserId = userid;

            byte[] msg = XConvert.ConvertToByte(LoginReqDef);
            _gsProxy.notify(BaseMessage.LOGIN_REQ_MSG, msg);
        }
Пример #15
0
        /// <summary>
        /// Создание шаблона comparePacket
        /// </summary>
        void MakeTemplate()
        {
            string format;

            // Прочитаем шаблон
            using (StreamReader stream = new StreamReader(Settings.Templates + "comparepacket-" + ProvidersSettings.Mts.Ott + "-" + ProvidersSettings.Mts.Xsd + ".tpl"))
            {
                format = stream.ReadToEnd();
            }

            template = string.Format(format, ProvidersSettings.Mts.Timeout, ProvidersSettings.Mts.Contract,
                                     XConvert.AsDate(Datefrom), XConvert.AsDate(Dateto),
                                     totalPayments, Cur, XConvert.AsAmount(totalSum), XConvert.AsAmount(totalDebt),
                                     MakeBody());
        }
Пример #16
0
        public virtual void Run(Object state)
        {
            TaskState stateInfo = (TaskState)state;

            // ManualResetEvent[] manualEvents = new ManualResetEvent[64];

            Log(Properties.Resources.MsgRedoRunning);
            Console.WriteLine(Properties.Resources.MsgRedoRunning);

            // Читать отложенные платежи

            while (!Canceling)
            {
                try
                {
                    // Добавляем событие отмены в
                    // manualEvents[1] = new ManualResetEvent(false);
                    DoRedo();
                }
                catch (Exception ex)
                {
                    Log("Redo: {0}\r\n{1}", ex.Message, ex.StackTrace);
                }
                // Ожидать 60 сек.
                Thread.Sleep(60000);
            }

            // Завершение дочерних процессов
            if (processes > 0)
            {
                Log("Redo: Процесс {0}[{1}] завершается. Выполняется {2} процессов допроведения", Thread.CurrentThread.ManagedThreadId, Name, processes);
                Console.WriteLine("{3} Redo: Процесс {0}[{1}] завершается. Выполняется {2} процессов допроведения",
                                  Thread.CurrentThread.ManagedThreadId, Name, processes, XConvert.AsDate2(DateTime.Now));
            }

            // Ожидаем допроведения всех платежей
            while (processes > 0)
            {
                Console.WriteLine("{1} Работающих процессов: {0}", processes, XConvert.AsDate2(DateTime.Now));
                Log($"{XConvert.AsDate2(DateTime.Now)} Работающих процессов: {processes}");
                // Ждем 1 секунду
                Thread.Sleep(1000);
            }

            Console.WriteLine("Redo: Процесс {0} завершен", Name);
            Log("Redo: Процесс {0} завершен", Name);
            stateInfo.CancelEvent.Set();
        }
Пример #17
0
        //deprecated
        public void EnterGame()
        {
            Debug.Log("EnterGame=======================================");
            BaseMessage.SitDownReqDef sitDownReq = new BaseMessage.SitDownReqDef();
            sitDownReq.iBindUserID     = 0;
            sitDownReq.iTableNum       = 0;
            sitDownReq.usTableNumExtra = 0;
            var point = new BaseMessage.UserPointLimitDef();

            point.iMinPoint           = 0;
            point.iMaxPoint           = 0;
            sitDownReq.userPointLimit = point;

            byte[] msg = XConvert.ConvertToByte(sitDownReq);
            _gsProxy.notify(BaseMessage.SITDOWN_REQ_MSG, msg);
        }
Пример #18
0
        public TTask ReadValue(IValueReader valueReader)
        {
            var task = Run();

            if (task is TTask ret)
            {
                return(ret);
            }

            return(XConvert <TTask> .FromObject(task));

            async Task Run()
            {
                valueReader.DirectRead();
            }
        }
Пример #19
0
        public T ReadValue(IValueReader valueReader)
        {
            if (valueReader is IValueReader <T> )
            {
                return(((IValueReader <T>)valueReader).ReadValue());
            }

            var directValue = valueReader.DirectRead();

            if (directValue is T || directValue == null)
            {
                return((T)directValue);
            }

            return(XConvert.FromObject <T>(directValue));
        }
Пример #20
0
        public override void SetLackTileKind(TileDef.Kind k)
        {
            base.SetLackTileKind(k);
            Debug.Log("SetLackTileKind:" + k);
            GameMessage.DingQueDef data = new GameMessage.DingQueDef();
            data.cCard = (byte)k;

#if USE_MSGPACK3
            var    serializer = MsgPack.Serialization.MessagePackSerializer.Get <GameMessage.DingQueDef>();
            byte[] msg        = serializer.PackSingleObject(data);
            _gsProxy.notifyMP(GameMessage.c2s_DingQueDef, msg);
#else
            byte[] msg = XConvert.ConvertToByte(data);
            _gsProxy.notify(GameMessage.c2s_DingQueDef, msg);
#endif
        }
Пример #21
0
        // Limited support!
        // You can only reference methods or fields defined in the class (not in ancestors classes)
        // Fields and methods stubs are needed for compilation purposes only.
        // Reflexil will automaticaly map current type, fields or methods to original references.
// Happy_BuYu.Lobby.BY_LbMainCommand
        private void HandleReceiveGiftRes(byte[] pMsg)
        {
            Debug.Log("HandleReceiveGiftRes");
            GameUtil gutil = new GameUtil();

            if (gutil.EnterGame)
            {
                BY_LbMainMediator.Instance.m_pLbChooseScenePanel.ClickStartBtn();
            }
            ReceiveGiftResDef receiveGiftResDef = XConvert.ToObject <ReceiveGiftResDef>(pMsg);

            if (receiveGiftResDef.iResult == 0)
            {
                int num         = 0;
                int objectSize  = XConvert.GetObjectSize <ReceiveGiftResDef>();
                int objectSize2 = XConvert.GetObjectSize <PresentInfo>();
                int num2        = objectSize;
                num = num2;
                BY_LbPlayerNode bY_LbPlayerNode = GDUtil.myPlay as BY_LbPlayerNode;
                bY_LbPlayerNode.m_listPresentInfo.Clear();
                Debug.Log("msg.iGiftNum" + receiveGiftResDef.iGiftNum);
                int num3 = PlayerPrefs.GetInt("RECEIVE_GIFT_RECORD_ID" + Happy_BuYu.GlobalVO.BY_GlobalData.m_iUserId);
                for (int i = 0; i < receiveGiftResDef.iGiftNum; i++)
                {
                    num = num2;
                    PresentInfo presentInfo = XConvert.ToObject <PresentInfo>(pMsg, ref num);
                    bY_LbPlayerNode.m_listPresentInfo.Add(presentInfo);
                    num2 += objectSize2;
                    int iRecordID = presentInfo.iRecordID;
                    if (iRecordID > num3)
                    {
                        num3 = iRecordID;
                    }
                }
                PlayerPrefs.SetInt("RECEIVE_GIFT_RECORD_ID" + Happy_BuYu.GlobalVO.BY_GlobalData.m_iUserId, num3);
                PlayerPrefs.Save();
                if (!Happy_BuYu.GlobalVO.BY_GlobalData.g_bReturnFromGame)
                {
                    BY_LBGlobalParam.m_iUserInfoStep++;
                    if (BY_LBGlobalParam.m_iUserInfoStep == BY_LBGlobalParam.USER_INFO_STEPS)
                    {
                        BY_LbMainMediator.Instance.CallAuthenRes();
                    }
                }
                this.ShowPresent();
            }
        }
Пример #22
0
            /// <summary>
            /// Try to get the enum field that defines the given constant.
            /// </summary>
            public override bool TryGetEnumConstField(object value, out XFieldDefinition field)
            {
                field = null;
                if (!type.IsEnum || (value == null))
                {
                    return(false);
                }
                var valueType = value.GetType();
                var ilField   = type.Fields.FirstOrDefault(x => x.IsStatic && Equals(XConvert.ChangeType(x.Constant, valueType), value));

                if (ilField == null)
                {
                    return(false);
                }
                field = Fields.OfType <ILFieldDefinition>().FirstOrDefault(x => x.OriginalField == ilField);
                return(field != null);
            }
Пример #23
0
        public void ConvertTest()
        {
            const string str = "JXU3MkQ3JXU0RjFGJXU2NjJGJXU0RTE2JXU3NTRDJXU0RTBBJXU2NzAwJXU1RTA1JXU3Njg0JXU0RUJB";

            AreEqual(XConvert <string> .Convert(XConvert <byte[]> .Convert(str)), str);

            AreEqual(XConvert <int> .Convert(XConvert <BigInteger> .Convert(int.MinValue)), int.MinValue);

            AreEqual(XConvert <BigInteger> .Convert(XConvert <byte[]> .Convert((BigInteger)ulong.MaxValue)), (BigInteger)ulong.MaxValue);


            AreEqual(XConvert <string> .FromObject(XConvert.ToObject(str, typeof(byte[]))), str);

            AreEqual(XConvert <int> .FromObject(XConvert.Cast(int.MinValue, typeof(BigInteger))), int.MinValue);

            AreEqual(XConvert <BigInteger> .FromObject(XConvert <byte[]> .FromObject((BigInteger)ulong.MaxValue)), (BigInteger)ulong.MaxValue);
        }
Пример #24
0
        public DataTable ReadDataTable()
        {
            switch (state)
            {
            case ReadState.Table:

                var dt = new DataTable();

                for (int i = 0; i < dbDataReader.FieldCount; i++)
                {
                    dt.Columns.Add(dbDataReader.GetName(i), dbDataReader.GetFieldType(i));
                }

                while (dbDataReader.Read())
                {
                    var row = dt.NewRow();

                    for (int i = 0; i < dbDataReader.FieldCount; i++)
                    {
                        row[i] = dbDataReader[i];
                    }

                    dt.Rows.Add(row);
                }

                state = ReadState.Finish;

                return(dt);

            case ReadState.Row:
                throw new NotSupportedException();

            case ReadState.Value:
                return(XConvert <DataTable> .FromObject(DirectRead()));

            default:

                if (dbDataReader.NextResult())
                {
                    goto case ReadState.Table;
                }

                throw new ArgumentException("Finish");
            }
        }
Пример #25
0
 /// <summary>
 /// Сформировать запрос
 /// </summary>
 /// <param name="old_state"></param>
 /// <returns></returns>
 public new int MakeRequest(int old_state)
 {
     try
     {
         MD5    md5hash = MD5.Create();
         string sign    = string.Format("{0}:{1}:{2}:shpItem={3}", XConvert.AsAmount(Amount), Account, Password, "1");
         Hash = GetMd5Hash(md5hash, sign).ToUpper();
         Log("Signature: {0}", sign);
         stRequest = string.Format("OutSum={0}&InvId={1}&phone={2}&shpItem=1&SignatureValue={3}", XConvert.AsAmount(Amount), Account, Phone, Hash);
         return(0);
     }
     catch (Exception ex)
     {
         RootLog("{0}\r\n{1}", ex.Message, ex.StackTrace);
         errDesc = ex.Message;
         errCode = -1;
         return(-1);
     }
 }
Пример #26
0
        /// <summary>
        /// Локальная реализация MakeCheckRequest
        /// </summary>
        /// <returns></returns>
        public new int MakeRequest(int old_state)
        {
            // Сделаем запрос paycheck

            // Получаем дополнительную информацию о терминале
            // GetTerminalInfo(terminal);

            // Log("[CHECK/MakeCheckRequest], Tid={0}, Ph/Acc={1}, Amount={2}, AmountAll={3}, recid={4}, point={5}, type={6}",
            //     Tid, !String.IsNullOrEmpty(Phone) ? Phone : Account, XConvert.AsAmount(Amount), XConvert.AsAmount(AmountAll), Service, Terminal, TerminalType);
            StringBuilder sb = new StringBuilder();


            try
            {
                sb.AppendFormat(payCheck, Host, tid, XConvert.AsAmount(amount), service, terminal);
                if (!string.IsNullOrEmpty(phone))
                {
                    sb.AppendFormat("&{0}={1}", HttpUtility.UrlEncode("№ телефона").ToUpper(), phone);
                }
                if (!string.IsNullOrEmpty(account))
                {
                    sb.AppendFormat("&{0}={1}", HttpUtility.UrlEncode("№ договора").ToUpper(), account);
                }
                if (!string.IsNullOrEmpty(number))
                {
                    sb.AppendFormat("&{0}={1}", HttpUtility.UrlEncode("филиал").ToUpper(), number);
                }
                checkHost = sb.ToString();
            }
            catch (Exception ex)
            {
                Log("{0}\r\n{1}", ex.Message, ex.StackTrace);
                return(-1);
            }

            stRequest = "";

            Log("[CHECK/MakeCheckRequest] Шаблон запроса сформирован\r\n{0}", checkHost);

            errCode = 6;
            errDesc = "Реализация Check не завершена";
            return(1);
        }
Пример #27
0
        public T ReadValue(IValueReader valueReader)
        {
            if (valueReader is ValueCopyer copyer && copyer.InternalObject is T ret)
            {
                return(ret);
            }

            if (typeof(T).IsAssignableFrom(typeof(TValue[])))
            {
                return(TypeHelper.As <TValue[], T>(ValueInterface <TValue[]> .ReadValue(valueReader)));
            }
            else if (typeof(T).IsAssignableFrom(typeof(List <TValue>)))
            {
                return(TypeHelper.As <List <TValue>, T>(ValueInterface <List <TValue> > .ReadValue(valueReader)));
            }
            else
            {
                return(XConvert.Convert <TValue[], T>(ValueInterface <TValue[]> .ReadValue(valueReader)));
            }
        }
Пример #28
0
 /// <summary>
 /// Optimize expressions
 /// </summary>
 public static void Convert(AstNode ast)
 {
     foreach (var node in ast.GetExpressions())
     {
         if ((node.Code == AstCode.Conv_U8) && (node.Arguments[0].Code == AstCode.Ldc_I4))
         {
             var value = node.Arguments[0].Operand;
             node.Code = AstCode.Ldc_I8;
             node.Arguments.Clear();
             node.Operand = XConvert.ToLong(value) & 0xFFFFFFFFL;
         }
         else if ((node.Code == AstCode.Ldc_I4) || (node.Code == AstCode.Ldc_R4))
         {
             var type = node.GetResultType();
             if (type.IsWide())
             {
                 node.Code = (node.Code == AstCode.Ldc_I4) ? AstCode.Ldc_I8 : AstCode.Ldc_R8;
             }
         }
     }
 }
Пример #29
0
        public TimeSpan ReadValue(IValueReader valueReader)
        {
            if (valueReader is IValueReader <TimeSpan> timeSpanReader)
            {
                return(timeSpanReader.ReadValue());
            }

            object directValue = valueReader.DirectRead();

            if (directValue is TimeSpan)
            {
                return((TimeSpan)directValue);
            }

            if (directValue is string)
            {
                return(TimeSpan.Parse((string)directValue));
            }

            return(XConvert.FromObject <TimeSpan>(directValue));
        }
        public DateTimeOffset ReadValue(IValueReader valueReader)
        {
            if (valueReader is IValueReader <DateTimeOffset> dateTimeOffsetReader)
            {
                return(dateTimeOffsetReader.ReadValue());
            }

            object directValue = valueReader.DirectRead();

            if (directValue is DateTimeOffset)
            {
                return((DateTimeOffset)directValue);
            }

            if (directValue is string)
            {
                return(DateTimeOffset.Parse((string)directValue));
            }

            return(XConvert.FromObject <DateTimeOffset>(directValue));
        }