コード例 #1
0
        private async Task <string> OnHandleServerRoleBagQuery(JObject obj)
        {
            try
            {
                var role_uuid = obj["role"].ToString();

                var bag_type = obj["bagType"].ToString();

                role_uuid = await GetRoleUUID(role_uuid);

                if (!string.IsNullOrEmpty(role_uuid))
                {
                    var mapping      = new BagStoreDataMapping(bag_type, role_uuid, this);
                    var BagStoreData = await mapping.LoadDataAsync();

                    return(CustomResult(true, JsonConvert.SerializeObject(BagStoreData)));
                }
                else
                {
                    return(CustomResult(false, null, "role_name_not_exist"));
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
                return(CustomResult(false, null, "page_gmt_command_unknown_error"));
            }
        }
コード例 #2
0
        private async Task <string> OnHandleServerRoleBagModify(JObject obj)
        {
            try
            {
                var role_uuid = obj["role"].ToString();

                var bag_type = obj["bagType"].ToString();

                var action = obj["action"].ToString();

                var entry_key = obj.Value <int?>("entryKey") ?? -1;

                var val = obj.Value <uint?>("value") ?? 0;

                role_uuid = await GetRoleUUID(role_uuid);

                if (!string.IsNullOrEmpty(role_uuid))
                {
                    TLRoleSnap roleSnap = await this.queryRoleSnap.LoadDataAsync(role_uuid) as TLRoleSnap;

                    if (roleSnap.onlineState == RoleState.STATE_ONLINE)
                    {
                        return(CustomResult(false, null, "role_still_online"));
                    }
                }

                if (!string.IsNullOrEmpty(role_uuid))
                {
                    var mapping      = new BagStoreDataMapping(bag_type, role_uuid, this);
                    var BagStoreData = await mapping.LoadDataAsync();

                    if (BagStoreData != null && BagStoreData.Slots != null && BagStoreData.Slots.Count > 0)
                    {
                        if (BagStoreData.Slots.ContainsKey(entry_key))
                        {
                            if (action == "remove")
                            {
                                BagStoreData.Slots.Remove(entry_key);
                            }
                            else
                            {
                                BagStoreData.Slots[entry_key].Count = val;
                            }
                        }

                        await mapping.SaveDataAsync();

                        return(CustomResult(true, null));
                    }

                    return(CustomResult(false, null, "page_gmt_command_unknown_error"));
                }
                else
                {
                    return(CustomResult(false, null, "role_name_not_exist"));
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);
                return(CustomResult(false, null, "page_gmt_command_unknown_error"));
            }
        }