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:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user