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")); } }
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")); } }