Lots of additions and changes

This commit is contained in:
2021-10-30 11:20:36 -04:00
parent 3051b63e44
commit 9cf11e982f
29 changed files with 557 additions and 46 deletions

View File

@@ -0,0 +1,8 @@
namespace TOOHUCardAPI.DTO.PlayerData
{
public class PlayerDataBuyMagicKeyRequest : AbstractPlayerTargetedRequest
{
public string UserId { get; set; }
public int Count { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using Newtonsoft.Json;
namespace TOOHUCardAPI.DTO.PlayerData
{
public class PlayerDataBuyMagicKeyResponse : AbstractResponse
{
[JsonProperty("cost_point")]
public int TotalCost { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace TOOHUCardAPI.DTO.PlayerData
{
public class PlayerDataFirstWinRequest : AbstractPlayerTargetedRequest
{
}
}

View File

@@ -0,0 +1,10 @@
using Newtonsoft.Json;
namespace TOOHUCardAPI.DTO.PlayerData
{
public class PlayerDataFirstWinResponse : AbstractResponse
{
[JsonProperty("bonus_point")]
public int BonusPoints { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace TOOHUCardAPI.DTO.PlayerData
{
public class PlayerDataGetRequestObject : AbstractRequest
{
public Dictionary<string, string> Ids;
}
}

View File

@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using AutoMapper;
using Newtonsoft.Json;
using TOOHUCardAPI.Data.Models;
namespace TOOHUCardAPI.DTO.PlayerData
{
public class PlayerDataGetResponseObject: AbstractResponse
{
// Instead of using a defined object, use a dictionary so we can add the necessary cardgroup items. I dont want to make 20 of them in the class
[JsonProperty("bo")]
public Dictionary<string, Dictionary<string, object>> Players { get; set; }
}
/**
* Fields pulled from the game code
* Looking up Gamerules.Playerdata
*/
public class PlayerDataGetResponseObjectPlayer: AbstractResponse
{
[JsonProperty("steamid")]
public string SteamId { get; set; }
[JsonProperty("max_wave")] public int MaxWave { get; set; } = 0;
[JsonProperty("max_team_wave")] public int MaxTeamWave { get; set; } = 0;
[JsonProperty("pet_level")] public int PetLevel { get; set; } = 1;
[JsonProperty("end_time")] public string EndTime { get; set; } = string.Empty;
[JsonProperty("key_total")] public int KeyTotal { get; set; } = 100;
[JsonProperty("key_save_date")] public string KeySaveDate { get; set; } = string.Empty;
[JsonProperty("vip")] public int Vip { get; set; } = 1;
[JsonProperty("point")] public int Point { get; set; } = 10000;
[JsonProperty("level_list")] public string LevelList { get; set; } = string.Empty;
[JsonProperty("is_first_win")]public int IsFirstWin { get; set; }
[JsonProperty("key_use_count")] public int KeyUseCount { get; set; }
public Dictionary<string, object> ToDynamicProperties()
{
return GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)
.ToDictionary(prop => prop.Name, prop => prop.GetValue(this));
}
}
public static class PlayerDataGetResponseExtensions
{
public static PlayerDataGetResponseObjectPlayer ToGetResponse(this User user, IMapper mapper)
{
PlayerDataGetResponseObjectPlayer responseObject = mapper.Map<PlayerDataGetResponseObjectPlayer>(user);
responseObject.IsFirstWin = user.LastFirstWin.AddDays(1) < DateTime.Now ? 1 : 0;
return responseObject;
}
}
}

View File

@@ -0,0 +1,13 @@
using Newtonsoft.Json;
namespace TOOHUCardAPI.DTO.PlayerData
{
public class PlayerDataSaveCardGroupRequest: AbstractPlayerTargetedRequest
{
public string UserId { get; set; }
[JsonProperty("group_key")]
public string GroupKey { get; set; }
[JsonProperty("group_data")]
public string GroupData { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace TOOHUCardAPI.DTO.PlayerData
{
public class PlayerDataSaveCardGroupResponseObject : AbstractResponse
{
}
}

View File

@@ -0,0 +1,11 @@
using Newtonsoft.Json;
namespace TOOHUCardAPI.DTO.PlayerData
{
public class PlayerDataSaveKeyCountRequest: AbstractPlayerTargetedRequest
{
public string UserId { get; set; }
[JsonProperty("key_total")]public int KeyTotal { get; set; }
[JsonProperty("key_use_count")]public int KeyUseCount { get; set; }
}
}