more rank stuff, might be ready for use

This commit is contained in:
2021-11-07 00:24:33 -04:00
parent d87377c25c
commit 6f591af5ae
13 changed files with 1350 additions and 5 deletions

View File

@@ -25,8 +25,7 @@ namespace TOOHUCardAPI.Data.JsonConverters
JsonSerializer serializer)
{
JObject jo = JObject.Load(reader);
RankEntryDTO dto = new RankEntryDTO();
serializer.Populate(reader, dto);
RankEntryDTO dto = jo.ToObject<RankEntryDTO>();
dto.Cards = jo.Properties().Where(prop => prop.Name.Contains("card"))
.Select(i => KeyValuePair.Create(i.Name, i.Value))
.ToDictionary(kv => kv.Key, kv => kv.Value.ToObject<string>());

View File

@@ -13,6 +13,7 @@ namespace TOOHUCardAPI.Data.Models
public RankType RankType { get; set; }
public string Username { get; set; }
public User User { get; set; }
public long AccountId { get; set; }
public string Version { get; set; }
public int Wave { get; set; }
public long Damage { get; set; }

View File

@@ -22,7 +22,7 @@ namespace TOOHUCardAPI.Data.Repositories
private IQueryable<RankEntry> AllIncluded()
{
return _appDbContext.RankEntries.Include(i => i.TowersUsed);
return _appDbContext.RankEntries.Include(i => i.TowersUsed).Include(i => i.User);
}
public async Task<IEnumerable<RankEntry>> GetRankEntries(RankType rankType)
@@ -33,6 +33,7 @@ namespace TOOHUCardAPI.Data.Repositories
public async Task InsertRankEntry(RankEntry entry)
{
await _appDbContext.RankEntries.AddAsync(entry);
await _appDbContext.SaveChangesAsync();
}
}
}

View File

@@ -25,6 +25,7 @@ namespace TOOHUCardAPI.Data.Services
public async Task<List<RankEntryDTO>> GetRankEntries(RankType rankType)
{
var rankEntries = await _rankRepository.GetRankEntries(rankType);
_logger.LogInformation("Got rank entries for {RankType}", rankType.ToString());
return rankEntries.Select(entry => entry.ToRankEntryDTO()).ToList();
}
@@ -40,12 +41,14 @@ namespace TOOHUCardAPI.Data.Services
RankType = RankTypeExtensions.ParseRankType(entry.RankType),
Username = entry.Username,
User = await _userRepository.GetUser(entry.SteamId),
AccountId = entry.UserId,
Version = entry.Version,
Wave = entry.Wave,
Damage = entry.Damage,
TowersUsed = towersUsed
};
await _rankRepository.InsertRankEntry(toUpload);
_logger.LogInformation("Uploaded a rank entry for {SteamId}", entry.SteamId);
}
}
}