using System.Collections.Generic; using System.Linq; using Newtonsoft.Json; using TOOHUCardAPI.Data.Models; namespace TOOHUCardAPI.DTO.RankData { public class RankEntryDTO { [JsonProperty("rank_type")] public string RankType { get; set; } public long SteamId { get; set; } public long UserId { get; set; } public string Username { get; set; } public string Version { get; set; } public int Wave { get; set; } public long Damage { get; set; } [JsonIgnore] public Dictionary Cards { get; set; } } public static class RankEntryDTOExtensions { public static RankEntryDTO ToRankEntryDTO(this RankEntry rankEntry) { return new RankEntryDTO { RankType = ((char) rankEntry.RankType).ToString(), SteamId = rankEntry.User.SteamId, UserId = rankEntry.AccountId, Username = rankEntry.Username, Version = rankEntry.Version, Wave = rankEntry.Wave, Damage = rankEntry.Damage, Cards = rankEntry.TowersUsed.Select(tower => KeyValuePair.Create(tower.TowerKey, tower.EncodedData)) .ToDictionary(kv => kv.Key, kv => kv.Value) }; } } }