Files
API/TOOHUCardAPI/DTO/RankData/RankEntryDTO.cs

40 lines
1.3 KiB
C#

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<string, string> 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)
};
}
}
}