Merge pull request 'SES-155 Endpoint that retuns basic infor for template character' (#70) from SES-155 into dev

Reviewed-on: #70
This commit is contained in:
Łukasz Góreczny 2021-01-13 09:25:52 +01:00
commit f56b4ce009
6 changed files with 1075 additions and 6 deletions

View File

@ -0,0 +1,985 @@
[
{
"id": 1,
"userId": -1,
"statistics": {
"ExperiencePoints": 0,
"Level": 1,
"Speed": 4,
"Initiative": 2,
"HealthPoints": 8,
"CurrentHealthPoints": 8,
"ArmorClass": 5,
"Proficiency": 2
},
"biography": {
"Name": "Ulora",
"ClassId": 2,
"RaceId": 3,
"AlignmentId": "LawfulGood",
"BackgroundId": 2,
"Sex": "Female",
"Languages": "Common",
"background": {
"Origin": "No origin",
"History": "Nothing much"
}
},
"characterWeapons": [
{
"WeaponId": 11,
"InUse": true,
"HoldInRightHand": true,
"HoldInLeftHand": false
},
{
"WeaponId": 12,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
}
],
"characterSpells": [
{
"SpellId": 44
},
{
"SpellId": 57
}
],
"charisma": {
"Value": 5,
"Modification": -2,
"SavingThrows": 0,
"CanSavingThrows": false,
"Deception": 0,
"CanDeception": false,
"Intimidation": 0,
"CanIntimidation": false,
"Performance": 0,
"CanPerformance": false,
"Persuasion": 0,
"CanPersuasion": false
},
"constitution": {
"Value": 12,
"Modification": 2,
"SavingThrows": 2,
"CanSaveThrows": true
},
"dexterity": {
"Value": 15,
"Modification": 2,
"SavingThrows": 3,
"CanSaveThrows": true,
"Acrobatics": 3,
"CanAcrobatics": true,
"SleightOfHand": 2,
"CanSleightOfHand": true,
"Stealth": 3,
"canStealth": true
},
"intelligence": {
"Value": 14,
"Modification": 4,
"SavingThrows": 2,
"CanSaveThrows": true,
"arcana": 2,
"canArcana": true,
"History": 4,
"CanHistory": true,
"Investigation": 3,
"CanInvestigation": true,
"Nature": 1,
"CanNature": true,
"Religion": 0,
"canReligion": false
},
"strength": {
"Value": 8,
"Modification": -1,
"SavingThrows": 0,
"CanSaveThrows": false,
"Athletics": 0,
"canAthletics": false
},
"wisdom": {
"Value": 10,
"Modification": 0,
"SavingThrows": 0,
"CanSaveThrows": false,
"AnimalHandling": 1,
"CanAnimalHandling": true,
"Insight": 0,
"canInsight": false,
"medicine": 0,
"CanMedicine": false,
"Perception": 2,
"CanPerception": true,
"Survival": 0,
"CanSurvival": false
}
},
{
"id": 2,
"userId": -1,
"statistics": {
"ExperiencePoints": 0,
"Level": 1,
"Speed": 3,
"Initiative": 5,
"HealthPoints": 12,
"CurrentHealthPoints": 11,
"ArmorClass": 4,
"Proficiency": 1
},
"biography": {
"Name": "Nucate",
"ClassId": 1,
"RaceId": 1,
"AlignmentId": "LawfulGood",
"BackgroundId": 1,
"Sex": "Male",
"Languages": "Common",
"background": {
"Origin": "No origin",
"History": "Nothing much"
}
},
"characterWeapons": [
{
"WeaponId": 30,
"InUse": true,
"HoldInRightHand": true,
"HoldInLeftHand": false
},
{
"WeaponId": 25,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
}
],
"characterSpells": [
{
"SpellId": 2
},
{
"SpellId": 42
}
],
"charisma": {
"Value": 10,
"Modification": 3,
"SavingThrows": 0,
"CanSavingThrows": false,
"Deception": 0,
"CanDeception": false,
"Intimidation": 1,
"CanIntimidation": true,
"Performance": 2,
"CanPerformance": true,
"Persuasion": 0,
"CanPersuasion": false
},
"constitution": {
"Value": 11,
"Modification": 4,
"SavingThrows": 2,
"CanSaveThrows": true
},
"dexterity": {
"Value": 10,
"Modification": 1,
"SavingThrows": 4,
"CanSaveThrows": true,
"Acrobatics": 3,
"CanAcrobatics": true,
"SleightOfHand": 1,
"CanSleightOfHand": true,
"Stealth": 2,
"canStealth": true
},
"intelligence": {
"Value": 6,
"Modification": -2,
"SavingThrows": 1,
"CanSaveThrows": true,
"arcana": 1,
"canArcana": true,
"History": 4,
"CanHistory": true,
"Investigation": 0,
"CanInvestigation": false,
"Nature": 1,
"CanNature": true,
"Religion": 3,
"canReligion": true
},
"strength": {
"Value": 10,
"Modification": 1,
"SavingThrows": 0,
"CanSaveThrows": false,
"Athletics": 2,
"canAthletics": true
},
"wisdom": {
"Value": 11,
"Modification": 3,
"SavingThrows": 1,
"CanSaveThrows": true,
"AnimalHandling": 2,
"canAnimalHandling": true,
"Insight": 1,
"canInsight": true,
"medicine": 0,
"CanMedicine": false,
"Perception": 5,
"CanPerception": true,
"Survival": 2,
"CanSurvival": true
}
},
{
"id": 3,
"userId": -1,
"statistics": {
"ExperiencePoints": 0,
"Level": 1,
"Speed": 4,
"Initiative": 2,
"HealthPoints": 17,
"CurrentHealthPoints": 16,
"ArmorClass": 6,
"Proficiency": 3
},
"biography": {
"Name": "Muraraj",
"ClassId": 2,
"RaceId": 2,
"AlignmentId": "LawfulGood",
"BackgroundId": 1,
"Sex": "Male",
"Languages": "Common",
"background": {
"Origin": "No origin",
"History": "Nothing much"
}
},
"characterWeapons": [
{
"WeaponId": 1,
"InUse": true,
"HoldInRightHand": true,
"HoldInLeftHand": false
},
{
"WeaponId": 2,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
},
{
"WeaponId": 10,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
}
],
"characterSpells": [
{
"SpellId": 42
}
],
"charisma": {
"Value": 15,
"Modification": 2,
"SavingThrows": 2,
"CanSaveThrows": true,
"Deception": 1,
"CanDeception": true,
"Intimidation": 4,
"CanIntimidation": true,
"Performance": 2,
"CanPerformance": true,
"Persuasion": 2,
"CanPersuasion": true
},
"constitution": {
"Value": 15,
"Modification": 4,
"SavingThrows": 2,
"CanSaveThrows": true
},
"dexterity": {
"Value": 8,
"Modification": -1,
"SavingThrows": 0,
"CanSaveThrows": false,
"Acrobatics": 0,
"CanAcrobatics": false,
"SleightOfHand": 0,
"CanSleightOfHand": false,
"Stealth": 0,
"canStealth": false
},
"intelligence": {
"Value": 8,
"Modification": -1,
"SavingThrows": 0,
"CanSaveThrows": false,
"arcana": 0,
"canArcana": false,
"History": 0,
"CanHistory": false,
"Investigation": 0,
"CanInvestigation": false,
"Nature": 0,
"CanNature": false,
"Religion": 0,
"canReligion": false
},
"strength": {
"Value": 18,
"Modification": 4,
"SavingThrows": 3,
"CanSaveThrows": true,
"Athletics": 5,
"canAthletics": true
},
"wisdom": {
"Value": 6,
"Modification": -3,
"SavingThrows": 0,
"CanSaveThrows": false,
"AnimalHandling": 0,
"CanAnimalHandling": false,
"Insight": 0,
"canInsight": false,
"medicine": 0,
"CanMedicine": false,
"Perception": 0,
"CanPerception": false,
"Survival": 0,
"CanSurvival": false
}
},
{
"id": 5,
"userId": -1,
"statistics": {
"ExperiencePoints": 0,
"Level": 1,
"Speed": 8,
"Initiative": 7,
"HealthPoints": 7,
"CurrentHealthPoints": 7,
"ArmorClass": 2,
"Proficiency": 3
},
"biography": {
"Name": "Amarena",
"ClassId": 2,
"RaceId": 1,
"AlignmentId": "LawfulGood",
"BackgroundId": 2,
"Sex": "Female",
"Languages": "Common",
"background": {
"Origin": "No origin",
"History": "Nothing much"
}
},
"characterWeapons": [
{
"WeaponId": 2,
"InUse": true,
"HoldInRightHand": true,
"HoldInLeftHand": false
},
{
"WeaponId": 14,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
},
{
"WeaponId": 4,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
}
],
"characterSpells": [
{
"SpellId": 2
}
],
"charisma": {
"Value": 7,
"Modification": -2,
"SavingThrows": 0,
"CanSavingThrows": false,
"Deception": 0,
"CanDeception": false,
"Intimidation": 0,
"CanIntimidation": false,
"Performance": 0,
"CanPerformance": false,
"Persuasion": 0,
"CanPersuasion": false
},
"constitution": {
"Value": 11,
"Modification": 1,
"SavingThrows": 1,
"CanSaveThrows": true
},
"dexterity": {
"Value": 17,
"Modification": 4,
"SavingThrows": 3,
"CanSaveThrows": true,
"Acrobatics": 4,
"CanAcrobatics": true,
"SleightOfHand": 2,
"CanSleightOfHand": true,
"Stealth": 5,
"canStealth": true
},
"intelligence": {
"Value": 10,
"Modification": 0,
"SavingThrows": 0,
"CanSaveThrows": false,
"arcana": 0,
"canArcana": false,
"History": 0,
"CanHistory": false,
"Investigation": 0,
"CanInvestigation": false,
"Nature": 0,
"CanNature": false,
"Religion": 0,
"canReligion": false
},
"strength": {
"Value": 14,
"Modification": 2,
"SavingThrows": 1,
"CanSaveThrows": true,
"Athletics": 3,
"canAthletics": true
},
"wisdom": {
"Value": 7,
"Modification": 0,
"SavingThrows": 0,
"CanSaveThrows": false,
"AnimalHandling": 0,
"canAnimalHandling": false,
"Insight": 0,
"canInsight": false,
"medicine": 0,
"CanMedicine": false,
"Perception": 0,
"CanPerception": false,
"Survival": 0,
"CanSurvival": false
}
},
{
"id": 6,
"userId": -1,
"statistics": {
"ExperiencePoints": 0,
"Level": 1,
"Speed": 2,
"Initiative": 3,
"HealthPoints": 17,
"CurrentHealthPoints": 17,
"ArmorClass": 5,
"Proficiency": 1
},
"biography": {
"Name": "Yaz' uw Emul",
"ClassId": 1,
"RaceId": 3,
"AlignmentId": "LawfulGood",
"BackgroundId": 3,
"Sex": "Male",
"Languages": "Common",
"background": {
"Origin": "No origin",
"History": "Nothing much"
}
},
"characterWeapons": [
{
"WeaponId": 16,
"InUse": true,
"HoldInRightHand": true,
"HoldInLeftHand": false
},
{
"WeaponId": 14,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
}
],
"characterSpells": [
{
"SpellId": 2
},
{
"SpellId": 65
},
{
"SpellId": 44
}
],
"charisma": {
"Value": 10,
"Modification": 0,
"SavingThrows": 0,
"CanSavingThrows": false,
"Deception": 1,
"CanDeception": true,
"Intimidation": 2,
"CanIntimidation": true,
"Performance": 0,
"CanPerformance": false,
"Persuasion": 0,
"CanPersuasion": false
},
"constitution": {
"Value": 14,
"Modification": 4,
"SavingThrows": 1,
"CanSaveThrows": true
},
"dexterity": {
"Value": 6,
"Modification": -3,
"SavingThrows": 0,
"CanSaveThrows": false,
"Acrobatics": 0,
"CanAcrobatics": false,
"SleightOfHand": 0,
"CanSleightOfHand": false,
"Stealth": 0,
"canStealth": false
},
"intelligence": {
"Value": 11,
"Modification": 1,
"SavingThrows": 1,
"CanSaveThrows": true,
"arcana": 0,
"canArcana": false,
"History": 2,
"CanHistory": true,
"Investigation": 1,
"CanInvestigation": true,
"Nature": 0,
"CanNature": false,
"Religion": 4,
"canReligion": true
},
"strength": {
"Value": 18,
"Modification": 4,
"SavingThrows": 2,
"CanSaveThrows": true,
"Athletics": 4,
"canAthletics": true
},
"wisdom": {
"Value": 9,
"Modification": -1,
"SavingThrows": 0,
"CanSaveThrows": false,
"AnimalHandling": 0,
"canAnimalHandling": false,
"Insight": 0,
"canInsight": false,
"medicine": 0,
"CanMedicine": false,
"Perception": 0,
"CanPerception": false,
"Survival": 0,
"CanSurvival": false
}
},
{
"id": 7,
"userId": -1,
"statistics": {
"ExperiencePoints": 0,
"Level": 1,
"Speed": 5,
"Initiative": 4,
"HealthPoints": 13,
"CurrentHealthPoints": 13,
"ArmorClass": 2,
"Proficiency": 1
},
"biography": {
"Name": "Kamul",
"ClassId": 2,
"RaceId": 1,
"AlignmentId": "LawfulGood",
"BackgroundId": 1,
"Sex": "Female",
"Languages": "Common",
"background": {
"Origin": "No origin",
"History": "Nothing much"
}
},
"characterWeapons": [
{
"WeaponId": 18,
"InUse": true,
"HoldInRightHand": true,
"HoldInLeftHand": false
},
{
"WeaponId": 1,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
}
],
"characterSpells": [
{
"SpellId": 3
},
{
"SpellId": 85
},
{
"SpellId": 94
}
],
"charisma": {
"Value": 10,
"Modification": 0,
"SavingThrows": 0,
"CanSavingThrows": false,
"Deception": 2,
"CanDeception": true,
"Intimidation": 0,
"CanIntimidation": false,
"Performance": 1,
"CanPerformance": true,
"Persuasion": 2,
"CanPersuasion": true
},
"constitution": {
"Value": 8,
"Modification": -2,
"SavingThrows": 0,
"CanSaveThrows": false
},
"dexterity": {
"Value": 12,
"Modification": 1,
"SavingThrows": 1,
"CanSaveThrows": true,
"Acrobatics": 2,
"CanAcrobatics": true,
"SleightOfHand": 1,
"CanSleightOfHand": true,
"Stealth": 0,
"canStealth": false
},
"intelligence": {
"Value": 15,
"Modification": 4,
"SavingThrows": 2,
"CanSaveThrows": true,
"arcana": 4,
"canArcana": true,
"History": 1,
"CanHistory": true,
"Investigation": 1,
"CanInvestigation": true,
"Nature": 6,
"CanNature": true,
"Religion": 0,
"canReligion": false
},
"strength": {
"Value": 13,
"Modification": 1,
"SavingThrows": 1,
"CanSaveThrows": true,
"Athletics": 2,
"canAthletics": true
},
"wisdom": {
"Value": 13,
"Modification": 2,
"SavingThrows": 2,
"CanSaveThrows": true,
"AnimalHandling": 1,
"canAnimalHandling": true,
"Insight": 4,
"canInsight": true,
"medicine": 2,
"CanMedicine": true,
"Perception": 5,
"CanPerception": true,
"Survival": 2,
"CanSurvival": true
}
},
{
"id": 8,
"userId": -1,
"statistics": {
"ExperiencePoints": 0,
"Level": 1,
"Speed": 9,
"Initiative": 6,
"HealthPoints": 7,
"CurrentHealthPoints": 7,
"ArmorClass": 4,
"Proficiency": 1
},
"biography": {
"Name": "Mu",
"ClassId": 1,
"RaceId": 3,
"AlignmentId": "LawfulGood",
"BackgroundId": 2,
"Sex": "Male",
"Languages": "Common",
"background": {
"Origin": "No origin",
"History": "Nothing much"
}
},
"characterWeapons": [
{
"WeaponId": 1,
"InUse": true,
"HoldInRightHand": true,
"HoldInLeftHand": false
},
{
"WeaponId": 17,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
},
{
"WeaponId": 27,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
}
],
"characterSpells": [
{
"SpellId": 3
}
],
"charisma": {
"Value": 11,
"Modification": 1,
"SavingThrows": 1,
"CanSavingThrows": true,
"Deception": 1,
"CanDeception": true,
"Intimidation": 0,
"CanIntimidation": false,
"Performance": 0,
"CanPerformance": false,
"Persuasion": 0,
"CanPersuasion": false
},
"constitution": {
"Value": 13,
"Modification": 2,
"SavingThrows": 1,
"CanSaveThrows": true
},
"dexterity": {
"Value": 17,
"Modification": 4,
"SavingThrows": 3,
"CanSaveThrows": true,
"Acrobatics": 3,
"CanAcrobatics": true,
"SleightOfHand": 4,
"CanSleightOfHand": true,
"Stealth": 1,
"canStealth": true
},
"intelligence": {
"Value": 8,
"Modification": -2,
"SavingThrows": 0,
"CanSaveThrows": false,
"arcana": 0,
"canArcana": false,
"History": 0,
"CanHistory": false,
"Investigation": 0,
"CanInvestigation": false,
"Nature": 0,
"CanNature": false,
"Religion": 0,
"canReligion": false
},
"strength": {
"Value": 18,
"Modification": 4,
"SavingThrows": 3,
"CanSaveThrows": true,
"Athletics": 5,
"canAthletics": true
},
"wisdom": {
"Value": 8,
"Modification": -2,
"SavingThrows": 0,
"CanSaveThrows": false,
"AnimalHandling": 0,
"canAnimalHandling": false,
"Insight": 0,
"canInsight": false,
"medicine": 0,
"CanMedicine": false,
"Perception": 0,
"CanPerception": false,
"Survival": 0,
"CanSurvival": false
}
},
{
"id": 9,
"userId": -1,
"statistics": {
"ExperiencePoints": 0,
"Level": 1,
"Speed": 4,
"Initiative": 3,
"HealthPoints": 12,
"CurrentHealthPoints": 12,
"ArmorClass": 3,
"Proficiency": 1
},
"biography": {
"Name": "Aarak",
"ClassId": 2,
"RaceId": 3,
"AlignmentId": "LawfulGood",
"BackgroundId": 2,
"Sex": "Female",
"Languages": "Common",
"background": {
"Origin": "No origin",
"History": "Nothing much"
}
},
"characterWeapons": [
{
"WeaponId": 4,
"InUse": true,
"HoldInRightHand": true,
"HoldInLeftHand": false
},
{
"WeaponId": 7,
"InUse": false,
"HoldInRightHand": false,
"HoldInLeftHand": false
}
],
"characterSpells": [
{
"SpellId": 1
},
{
"SpellId": 55
}
],
"charisma": {
"Value": 12,
"Modification": 2,
"SavingThrows": 1,
"CanSavingThrows": true,
"Deception": 0,
"CanDeception": false,
"Intimidation": 0,
"CanIntimidation": false,
"Performance": 0,
"CanPerformance": false,
"Persuasion": 3,
"CanPersuasion": true
},
"constitution": {
"Value": 11,
"Modification": 1,
"SavingThrows": 1,
"CanSaveThrows": true
},
"dexterity": {
"Value": 15,
"Modification": 3,
"SavingThrows": 2,
"CanSaveThrows": true,
"Acrobatics": 2,
"CanAcrobatics": true,
"SleightOfHand": 1,
"CanSleightOfHand": true,
"Stealth": 4,
"canStealth": true
},
"intelligence": {
"Value": 12,
"Modification": 1,
"SavingThrows": 1,
"CanSaveThrows": true,
"arcana": 0,
"canArcana": false,
"History": 0,
"CanHistory": false,
"Investigation": 0,
"CanInvestigation": false,
"Nature": 2,
"CanNature": true,
"Religion": 0,
"canReligion": false
},
"strength": {
"Value": 15,
"Modification": 4,
"SavingThrows": 3,
"CanSaveThrows": true,
"Athletics": 2,
"canAthletics": true
},
"wisdom": {
"Value": 6,
"Modification": -4,
"SavingThrows": 0,
"CanSaveThrows": false,
"AnimalHandling": 0,
"canAnimalHandling": false,
"Insight": 0,
"canInsight": false,
"medicine": 0,
"CanMedicine": false,
"Perception": 0,
"CanPerception": false,
"Survival": 0,
"CanSurvival": false
}
}
]

View File

@ -21,8 +21,4 @@
<ProjectReference Include="..\SessionCompanion.ViewModels\SessionCompanion.ViewModels.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="JsonData\" />
</ItemGroup>
</Project>

View File

@ -1,6 +1,8 @@
using SessionCompanion.Database.Tables;
using SessionCompanion.Services.Base;
using SessionCompanion.ViewModels.CharacterViewModels;
using SessionCompanion.ViewModels.ClassViewModels;
using SessionCompanion.ViewModels.RaceViewModels;
using SessionCompanion.ViewModels.UniversalModels;
using System;
using System.Collections.Generic;
@ -15,5 +17,6 @@ namespace SessionCompanion.Services.Interfaces
Task<IEnumerable<CharacterForLoginViewModel>> GetUserLoginCharacters(int userId);
Task<List<UniversalStatisticViewModel>> GetCharacterStatistics(int characterId);
Task<CharacterBasicInfoViewModel> GetBasicCharacterbasicInfo(int characterId);
Task<IEnumerable<CharacterFromTemplatesSimpleViewModel>> GetCharactersFromTemplate(List<RaceViewModel> raceViewModels, List<ClassViewModel> classViewModels);
}
}

View File

@ -16,12 +16,14 @@ using System.IO;
using Newtonsoft.Json.Linq;
using SessionCompanion.ViewModels.UniversalModels;
using SessionCompanion.Services.Helpers;
using SessionCompanion.ViewModels.RaceViewModels;
using SessionCompanion.ViewModels.ClassViewModels;
namespace SessionCompanion.Services.Services
{
public class CharacterService : ServiceBase<CharacterViewModel, Character>, ICharacterService
{
public CharacterService(IMapper mapper, IRepository<Character> repository) : base(mapper, repository)
public CharacterService(IMapper mapper, IRepository<Character> repository, IRepository<Class> classRepository) : base(mapper, repository)
{ }
/// <summary>
@ -111,5 +113,31 @@ namespace SessionCompanion.Services.Services
var result = Mapper.Map<CharacterBasicInfoViewModel>(character);
return result;
}
/// <summary>
/// Function returns basic stats from Characters in templates
/// </summary>
/// <returns></returns>
public async Task<IEnumerable<CharacterFromTemplatesSimpleViewModel>> GetCharactersFromTemplate(List<RaceViewModel> raceViewModels, List<ClassViewModel> classViewModels)
{
const string file = "../SessionCompanion.Database/JsonData/characters_templates.json";
List<CharacterFromTemplatesSimpleViewModel> basicStats = new List<CharacterFromTemplatesSimpleViewModel>();
using (StreamReader reader = new StreamReader(file))
{
var json = await reader.ReadToEndAsync();
foreach (var item in JArray.Parse(json))
{
CharacterFromTemplatesSimpleViewModel characterFromTemplatesSimpleViewModel = new CharacterFromTemplatesSimpleViewModel()
{
Id = (int)item["id"],
Class = classViewModels.Where(c => c.Id.Equals((int)item["biography"]["ClassId"])).Select(c => c.Name).Single(),
Race = raceViewModels.Where(r => r.Id.Equals((int)item["biography"]["RaceId"])).Select(r => r.Name).Single(),
Name = (string)item["biography"]["Name"]
};
basicStats.Add(characterFromTemplatesSimpleViewModel);
}
}
return basicStats;
}
}
}

View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SessionCompanion.ViewModels.CharacterViewModels
{
public class CharacterFromTemplatesSimpleViewModel
{
/// <summary>
/// Id postaci
/// </summary>
public int Id { get; set; }
/// <summary>
/// Imie postaci
/// </summary>
public string Name { get; set; }
/// <summary>
/// Nazwa rasy postaci
/// </summary>
public string Race { get; set; }
/// <summary>
/// Nazwa Klasy postaci
/// </summary>
public string Class { get; set; }
}
}

View File

@ -9,6 +9,7 @@ namespace SessionCompanion.Controllers
{
using SessionCompanion.Hubs;
using SessionCompanion.ViewModels.UniversalModels;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
@ -19,11 +20,15 @@ namespace SessionCompanion.Controllers
{
private readonly ICharacterService _service;
private readonly SessionHubData _sessionHubData;
private readonly IRaceService _raceService;
private readonly IClassService _classService;
public CharacterController(ICharacterService service)
public CharacterController(ICharacterService service, IRaceService raceService, IClassService classService)
{
this._service = service;
this._sessionHubData = new SessionHubData();
this._raceService = raceService;
this._classService = classService;
}
/// <summary>
@ -105,5 +110,29 @@ namespace SessionCompanion.Controllers
};
return info;
}
/// <summary>
/// Metoda zwraca podstawowe informacje dla postaci z Templatek
/// </summary>
/// <returns>liste podstawowych informacji o postaciach z templatki</returns>
[HttpGet("getTemplateCharacters")]
public async Task<Either<ErrorResponse, List<CharacterFromTemplatesSimpleViewModel>>> GetTemplateCharacters()
{
var races = _raceService.Get().ToList();
var classes = _classService.Get().ToList();
try
{
var templateCharacters = await _service.GetCharactersFromTemplate(races, classes);
return templateCharacters.ToList();
}
catch (Exception e)
{
return new ErrorResponse()
{
StatusCode = 500,
Message = e.Message
};
}
}
}
}