I'm an idiot, they store encoded data for towers, we dont need a separate object unless we want to

This commit is contained in:
2021-11-06 22:18:12 -04:00
parent 7ef9c0d498
commit f23d108fe7
9 changed files with 135 additions and 50 deletions

View File

@@ -1,10 +1,51 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using TOOHUCardAPI.Data.Enums;
using TOOHUCardAPI.Data.Models;
using TOOHUCardAPI.Data.Repositories;
using TOOHUCardAPI.DTO.RankData;
namespace TOOHUCardAPI.Data.Services
{
public class RankService
{
private readonly ILogger<RankService> _logger;
private readonly RankRepository _rankRepository;
private readonly UserRepository _userRepository;
public RankService(ILogger<RankService> logger, RankRepository rankRepository, UserRepository userRepository)
{
_logger = logger;
_rankRepository = rankRepository;
_userRepository = userRepository;
}
public async Task<List<RankEntryDTO>> GetRankEntries(RankType rankType)
{
var rankEntries = await _rankRepository.GetRankEntries(rankType);
return rankEntries.Select(entry => entry.ToRankEntryDTO()).ToList();
}
public async Task UploadRankEntry(RankEntryDTO entry)
{
List<RankTowerEntry> towersUsed = entry.Cards.Select(kv => new RankTowerEntry
{
TowerKey = kv.Key,
EncodedData = kv.Value
}).ToList();
RankEntry toUpload = new RankEntry
{
RankType = RankTypeExtensions.ParseRankType(entry.RankType),
Username = entry.Username,
User = await _userRepository.GetUser(entry.SteamId),
Version = entry.Version,
Wave = entry.Wave,
Damage = entry.Damage,
TowersUsed = towersUsed
};
await _rankRepository.InsertRankEntry(toUpload);
}
}
}