Пример #1
0
        public async Task <bool> AskAddMoney(ulong pid, uint money)
        {
            if (!await CheckValid(pid))
            {
                return(false);
            }

            using (var accesser = await Program.CacheService.GetPlayerInfoAccesser(pid))
            {
                var infoItem = await accesser.LoadItemAtPlayerInfoAsync();

                Console.WriteLine("LogicServiceImpl.AskAddMoney load InfoItem complete pid={0}", pid);

                if (infoItem == null)
                {
                    Console.WriteLine("LogicServiceImpl.AskAddMoney InfoItem is null pid={0}", pid);
                    infoItem = new PlayerInfoItem()
                    {
                        ItemList = new List <uint>()
                    };
                }

                infoItem.Money += money;

                accesser.UpdateItemAtPlayerInfo(infoItem);

                await accesser.SubmitChanges();

                Program.Logic2CliService.Forward(sessionId).ServerMessageOk();

                return(true);
            }
        }
Пример #2
0
            public void UpdateItemAtPlayerInfo(PlayerInfoItem item)
            {
                var ctx = adaptor.Update(dataId);

                ctx
                .WriteField("Item", item)
                ;
                updateQueue.Add(ctx);
            }
Пример #3
0
            public void UpdateItemAtPlayerInfo(PlayerInfoItem item)
            {
                const string dataId = "UPDATE `mem_player` SET `Item`=?2 WHERE `Pid`=?1";
                var          ctx    = adaptor.Update(dataId);

                ctx
                .WriteField("Pid", (UInt64)key)
                .WriteField("Item", item)
                ;
                updateQueue.Add(ctx);
            }
Пример #4
0
            public async Task <PlayerInfoItem> LoadItemAtPlayerInfoAsync()
            {
                var val    = new PlayerInfoItem();
                var reader = await adaptor.Query(dataId, "Item");

                if (reader == null)
                {
                    return(null);
                }
                val = reader.ReadField <PlayerInfoItem>("Item");
                return(val);
            }
Пример #5
0
            public async Task <PlayerInfoItem> LoadItemAtPlayerInfoAsync()
            {
                const string sql    = "SELECT `Item` FROM `mem_player` WHERE `Pid` = ?1";
                var          val    = new PlayerInfoItem();
                var          reader = await adaptor.Query(sql, (UInt64)key);

                if (reader == null)
                {
                    return(null);
                }
                val = reader.ReadField <PlayerInfoItem>("Item");
                reader.Dispose();
                return(val);
            }