/// <summary> /// Reads the <see cref="AllianceStreamEventMessage"/> from the specified <see cref="MessageReader"/>. /// </summary> /// <param name="reader"> /// <see cref="MessageReader"/> that will be used to read the <see cref="AllianceStreamEventMessage"/>. /// </param> /// <exception cref="ArgumentNullException"><paramref name="reader"/> is null.</exception> public override void ReadMessage(MessageReader reader) { ThrowIfReaderNull(reader); var id = reader.ReadInt32(); var entry = StreamEntryFactory.CreateAllianceStreamEntry(id); entry?.ReadStreamEntry(reader); }
public override object ReadJson(JsonReader Reader, Type ObjectType, object ExistingValue, JsonSerializer Serializer) { JObject Json = JObject.Load(Reader); if (JsonHelper.GetJsonNumber(Json, "type", out int Type)) { StreamEntry Entry = StreamEntryFactory.CreateStreamEntryByType(Type); Entry.Load(Json); return(Entry); } return(null); }
private static void FromMySqlDataReader(ClanSave save, DbDataReader reader) { save.ClanId = (long)reader["clan_id"]; //save.DateCreated = (DateTime)reader["create_date"]; //save.DateLastSave = (DateTime)reader["last_save_date"]; save.Name = (string)reader["name"]; save.Description = (string)reader["description"]; save.ExpLevels = (int)reader["exp_levels"]; save.Badge = (int)reader["badge"]; save.InviteType = (int)reader["invite_type"]; save.TotalTrophies = (int)reader["total_trophies"]; save.RequiredTrophies = (int)reader["required_trophies"]; save.WarsWon = (int)reader["wars_won"]; save.WarsLost = (int)reader["wars_lost"]; save.WarsTried = (int)reader["wars_tried"]; save.Location = (int)reader["location"]; save.PerkPoints = (int)reader["perk_points"]; save.WinStreak = (int)reader["win_streak"]; save.WarLogsPublic = (bool)reader["war_logs_public"]; var entries = (byte[])reader["entries"]; var stream = new MemoryStream(entries); using (var r = new MessageReader(stream)) { var count = r.ReadInt32(); var list = new List <AllianceStreamEntry>(count); for (int i = 0; i < count; i++) { var id = r.ReadInt32(); var entry = StreamEntryFactory.CreateAllianceStreamEntry(id); Debug.Assert(entry != null); if (entry == null) { break; } entry.ReadStreamEntry(r); list.Add(entry); } save.Entries = list; } }
/// <summary> /// Reads the <see cref="AvatarStreamMessage"/> from the specified <see cref="MessageReader"/>. /// </summary> /// <param name="reader"> /// <see cref="MessageReader"/> that will be used to read the <see cref="AvatarStreamMessage"/>. /// </param> /// <exception cref="ArgumentNullException"><paramref name="reader"/> is null.</exception> public override void ReadMessage(MessageReader reader) { ThrowIfReaderNull(reader); var count = reader.ReadInt32(); Entries = new AvatarStreamEntry[count]; for (int i = 0; i < count; i++) { var id = reader.ReadInt32(); var entry = StreamEntryFactory.CreateAvatarStreamEntry(id); if (entry == null) { return; } entry.ReadStreamEntry(reader); Entries[i] = entry; } }
protected sealed override void Load(LogicJSONObject jsonObject) { LogicJSONArray ownerIdArray = jsonObject.GetJSONArray(StreamDocument.JSON_ATTRIBUTE_OWNER_ID); this.OwnerId = new LogicLong(ownerIdArray.GetJSONNumber(0).GetIntValue(), ownerIdArray.GetJSONNumber(1).GetIntValue()); this.CreateTime = DateTime.Parse(jsonObject.GetJSONString(StreamDocument.JSON_ATTRIBUTE_CREATE_TIME).GetStringValue()); this.Type = (StreamType)jsonObject.GetJSONNumber(StreamDocument.JSON_ATTRIBUTE_TYPE).GetIntValue(); switch (this.Type) { case StreamType.ALLIANCE: { StreamEntry entry = StreamEntryFactory.CreateStreamEntryByType((StreamEntryType)jsonObject.GetJSONNumber(StreamDocument.JSON_ATTRIBUTE_ENTRY_TYPE).GetIntValue()); entry.Load(jsonObject.GetJSONObject(StreamDocument.JSON_ATTRIBUTE_ENTRY)); entry.SetId(this.Id); this.Entry = entry; break; } case StreamType.AVATAR: { AvatarStreamEntry entry = AvatarStreamEntryFactory.CreateStreamEntryByType((AvatarStreamEntryType)jsonObject.GetJSONNumber(StreamDocument.JSON_ATTRIBUTE_ENTRY_TYPE).GetIntValue()); entry.Load(jsonObject.GetJSONObject(StreamDocument.JSON_ATTRIBUTE_ENTRY)); entry.SetId(this.Id); this.Entry = entry; break; } case StreamType.REPLAY: { ReplayStreamEntry entry = new ReplayStreamEntry(); entry.Load(jsonObject.GetJSONObject(StreamDocument.JSON_ATTRIBUTE_ENTRY)); this.Entry = entry; break; } } }