public async Task <PlayerCharacterGetResponse> GetAsync(string discordId) { var user = await _userRepository.GetByDiscordIdAsync(discordId); if (user.ActiveCharacter != null) { var pc = await _playerCharacterRepository.GetAsync(user.ActiveCharacter.Value); var pcSummary = new PlayerCharacterGetResponse { Name = pc.Name, Race = pc.Race.Name, Class = pc.Class.Name, CurrentHP = pc.CurrentHP, CurrentLevel = pc.CurrentLevel, CurrentXP = pc.CurrentXP, Gold = pc.Gold, MaxHP = pc.MaxHP, ProfileImageUrl = pc.ProfileImageUrl, ClassImageUrl = pc.Class.ImageUrl, TotalFastMod = pc.Race.FastMod + pc.Class.FastMod, TotalSmartMod = pc.Race.SmartMod + pc.Class.SmartMod, TotalStrongMod = pc.Race.StrongMod + pc.Class.StrongMod, TotalToughMod = pc.Race.ToughMod + pc.Class.ToughMod }; return(pcSummary); } else { throw new Exception("User does not have an active character!"); } }
public async Task <PlayerCharacterGetResponse> SetActiveCharacterByOrderedName(string discordId, int orderId) { var user = await _userRepository.GetByDiscordIdAsync(discordId); if (user != null) { if (user.Characters != null && user.Characters.Count() > 0) { var charactersOrdered = user.Characters.OrderBy(c => c.Name).ToArray(); if (charactersOrdered.ElementAtOrDefault(orderId - 1) != null) { var pc = charactersOrdered[orderId - 1]; await _userRepository.SetActiveCharacterAsync(user.Id, pc.Id); var pcSummary = new PlayerCharacterGetResponse { Name = pc.Name, Race = pc.Race.Name, Class = pc.Class.Name, CurrentHP = pc.CurrentHP, CurrentLevel = pc.CurrentLevel, CurrentXP = pc.CurrentXP, Gold = pc.Gold, MaxHP = pc.MaxHP, ProfileImageUrl = pc.ProfileImageUrl, ClassImageUrl = pc.Class.ImageUrl, TotalFastMod = pc.Race.FastMod + pc.Class.FastMod, TotalSmartMod = pc.Race.SmartMod + pc.Class.SmartMod, TotalStrongMod = pc.Race.StrongMod + pc.Class.StrongMod, TotalToughMod = pc.Race.ToughMod + pc.Class.ToughMod }; return(pcSummary); } else { throw new Exception("The number you chose for your active character does not exist!"); } } else { throw new Exception("No characters found for this Discord ID!"); } } else { throw new Exception("No user found with the given Discord ID!"); } }
public async Task <IEnumerable <PlayerCharacterGetResponse> > GetAsync(IEnumerable <long> ids) { var pcs = await _playerCharacterRepository.GetAsync(ids); var foundCharacters = new List <PlayerCharacterGetResponse>(); if (pcs != null) { foreach (var pc in pcs) { var pcSummary = new PlayerCharacterGetResponse { Name = pc.Name, Race = pc.Race.Name, Class = pc.Class.Name, CurrentHP = pc.CurrentHP, CurrentLevel = pc.CurrentLevel, CurrentXP = pc.CurrentXP, Gold = pc.Gold, MaxHP = pc.MaxHP, ProfileImageUrl = pc.ProfileImageUrl, ClassImageUrl = pc.Class.ImageUrl, TotalFastMod = pc.Race.FastMod + pc.Class.FastMod, TotalSmartMod = pc.Race.SmartMod + pc.Class.SmartMod, TotalStrongMod = pc.Race.StrongMod + pc.Class.StrongMod, TotalToughMod = pc.Race.ToughMod + pc.Class.ToughMod }; foundCharacters.Add(pcSummary); } return(foundCharacters); } else { throw new Exception("No characters found!"); } }
public async Task <IEnumerable <PlayerCharacterGetResponse> > GetAllByDiscordId(string discordId) { List <PlayerCharacterGetResponse> returnedPcs = new List <PlayerCharacterGetResponse>(); var pcs = await _userRepository.GetPlayerCharactersByDiscordIdAsync(discordId); if (pcs != null) { foreach (var pc in pcs) { var pcSummary = new PlayerCharacterGetResponse { Name = pc.Name, Race = pc.Race.Name, Class = pc.Class.Name, CurrentHP = pc.CurrentHP, CurrentLevel = pc.CurrentLevel, CurrentXP = pc.CurrentXP, Gold = pc.Gold, MaxHP = pc.MaxHP, ProfileImageUrl = pc.ProfileImageUrl, ClassImageUrl = pc.Class.ImageUrl, TotalFastMod = pc.Race.FastMod + pc.Class.FastMod, TotalSmartMod = pc.Race.SmartMod + pc.Class.SmartMod, TotalStrongMod = pc.Race.StrongMod + pc.Class.StrongMod, TotalToughMod = pc.Race.ToughMod + pc.Class.ToughMod }; returnedPcs.Add(pcSummary); } return(returnedPcs); } else { throw new Exception("No characters found for this Discord ID!"); } }