add 2E Varazslatok and rename Character to Karakter

This commit is contained in:
2024-07-18 13:45:51 +02:00
parent 1eb35d091e
commit e060c83ef8
15 changed files with 938 additions and 30 deletions
@@ -7,14 +7,14 @@ namespace Kemkas.Web.Services.FirstEdition.Character;
public interface ICharacter1EDtoToDbModelService
{
public V1Karakter Convert(Character1eDto dto);
public V1Karakter Convert(Karakter1eDto dto);
public void Update(V1Karakter original, Character1eDto dto);
public void Update(V1Karakter original, Karakter1eDto dto);
}
public class Character1EDtoToDbModelService : ICharacter1EDtoToDbModelService
{
public V1Karakter Convert(Character1eDto dto)
public V1Karakter Convert(Karakter1eDto dto)
{
var karakter = new V1Karakter
{
@@ -47,7 +47,7 @@ public class Character1EDtoToDbModelService : ICharacter1EDtoToDbModelService
return karakter;
}
public void Update(V1Karakter original, Character1eDto dto)
public void Update(V1Karakter original, Karakter1eDto dto)
{
original.Nev = dto.Name;
original.Nem = dto.Nem;
@@ -76,7 +76,7 @@ public class Character1EDtoToDbModelService : ICharacter1EDtoToDbModelService
}
// TODO: this is unnecessary duplication of business logic!!
private static List<V1Szintlepes> ConvertSzintLepes(Character1eDto dto, V1Karakter karakter)
private static List<V1Szintlepes> ConvertSzintLepes(Karakter1eDto dto, V1Karakter karakter)
{
if (dto.HpRolls.Count < dto.Szint - 2)
{
@@ -131,7 +131,7 @@ public class Character1EDtoToDbModelService : ICharacter1EDtoToDbModelService
}).Prepend(level1).ToList();
}
private static List<V1KarakterKepzettseg> ConvertKepzettsegek(Character1eDto dto, V1Karakter karakter)
private static List<V1KarakterKepzettseg> ConvertKepzettsegek(Karakter1eDto dto, V1Karakter karakter)
{
var kepzettsegek = dto.Kepzettsegek.Select(x => new V1KarakterKepzettseg
{
@@ -6,14 +6,14 @@ namespace Kemkas.Web.Services.FirstEdition.Character;
public interface ICharacterDbModelToDto1EService
{
public Character1eDto Convert(V1Karakter entity);
public Karakter1eDto Convert(V1Karakter entity);
}
public class CharacterDbModelToDto1EService : ICharacterDbModelToDto1EService
{
public Character1eDto Convert(V1Karakter entity)
public Karakter1eDto Convert(V1Karakter entity)
{
return new Character1eDto
return new Karakter1eDto
{
Name = entity.Nev,
Nem = entity.Nem,
@@ -4,12 +4,12 @@ namespace Kemkas.Web.Services.FirstEdition.Character;
public interface ICharacterValidationService
{
public string? Validate(Character1eDto dto);
public string? Validate(Karakter1eDto dto);
}
public class CharacterValidationService : ICharacterValidationService
{
public string? Validate(Character1eDto dto)
public string? Validate(Karakter1eDto dto)
{
// TODO: add validation!!
return null;
@@ -6,14 +6,14 @@ namespace Kemkas.Web.Services.SecondEdition.Character;
public interface ICharacter2EDtoToDbModelService
{
public V2Karakter Convert(Character2eDto dto);
public V2Karakter Convert(Karakter2eDto dto);
public void Update(V2Karakter original, Character2eDto dto);
public void Update(V2Karakter original, Karakter2eDto dto);
}
public class Character2EDtoToDbModelService : ICharacter2EDtoToDbModelService
{
public V2Karakter Convert(Character2eDto dto)
public V2Karakter Convert(Karakter2eDto dto)
{
var karakter = new V2Karakter
{
@@ -78,11 +78,18 @@ public class Character2EDtoToDbModelService : ICharacter2EDtoToDbModelService
TulajdonsagNoveles = x.TulajdonsagNoveles == null ? null : TulajdonsagExtensions.Convert(x.TulajdonsagNoveles),
TolvajExtraKepzettseg = x.TolvajExtraKepzettseg == null ? null : KepzettsegExtensions.Convert2E(x.TolvajExtraKepzettseg),
}).ToList();
karakter.Varazslatok = dto.Varazslatok?.Select(v => new V2KarakterVarazslat
{
Karakter = karakter,
Bekeszitve = v.Bekeszitve,
VarazslatId = v.VarazslatId,
}).ToHashSet() ?? [];
return karakter;
}
public void Update(V2Karakter original, Character2eDto dto)
public void Update(V2Karakter original, Karakter2eDto dto)
{
original.Nev = dto.Nev;
original.Nem = dto.Nem;
@@ -143,9 +150,38 @@ public class Character2EDtoToDbModelService : ICharacter2EDtoToDbModelService
TulajdonsagNoveles = x.TulajdonsagNoveles == null ? null : TulajdonsagExtensions.Convert(x.TulajdonsagNoveles),
TolvajExtraKepzettseg = x.TolvajExtraKepzettseg == null ? null : KepzettsegExtensions.Convert2E(x.TolvajExtraKepzettseg),
}).ToList();
if (dto.Varazslatok == null)
{
original.Varazslatok = new HashSet<V2KarakterVarazslat>();
}
else
{
var dtoVarazslatok = dto.Varazslatok.ToList();
var toAdd = dtoVarazslatok.Where(v => original.Varazslatok.Any(x => x.VarazslatId == v.VarazslatId))
.Select(v => new V2KarakterVarazslat
{
VarazslatId = v.VarazslatId,
Bekeszitve = v.Bekeszitve,
}).ToList();
var toUpdate = original.Varazslatok
.Select(x =>
{
var dtoVarazslat = dtoVarazslatok.FirstOrDefault(v => v.VarazslatId == x.VarazslatId);
return (dbVarazslat: x, dtoVarazslat);
})
.Where(x => x.dtoVarazslat != null)
.Select(x =>
{
x.dbVarazslat.Bekeszitve = x.dtoVarazslat!.Bekeszitve;
return x.dbVarazslat;
})
.ToList();
original.Varazslatok = toAdd.Concat(toUpdate).ToHashSet();
}
}
private static List<V2KarakterKepzettseg> ConvertKarakterKepzettsegek(Character2eDto dto, V2Karakter karakter)
private static List<V2KarakterKepzettseg> ConvertKarakterKepzettsegek(Karakter2eDto dto, V2Karakter karakter)
{
var kepzettsegek = dto.Kepzettsegek.Select(x => new V2KarakterKepzettseg
{
@@ -6,14 +6,14 @@ namespace Kemkas.Web.Services.SecondEdition.Character;
public interface ICharacterDbModelToDto2EService
{
public Character2eDto Convert(V2Karakter entity);
public Karakter2eDto Convert(V2Karakter entity);
}
public class CharacterDbModelToDto2EService : ICharacterDbModelToDto2EService
{
public Character2eDto Convert(V2Karakter entity)
public Karakter2eDto Convert(V2Karakter entity)
{
return new Character2eDto
return new Karakter2eDto
{
Nev = entity.Nev,
Nem = entity.Nem,
@@ -54,7 +54,12 @@ public class CharacterDbModelToDto2EService : ICharacterDbModelToDto2EService
TulajdonsagNoveles = sz.TulajdonsagNoveles?.Convert(),
HProll = sz.HpRoll,
TolvajExtraKepzettseg = sz.TolvajExtraKepzettseg?.Convert()
}).ToList()
}).ToList(),
Varazslatok = entity.Varazslatok.Select(v => new KarakterVarazslat2eDto
{
Bekeszitve = v.Bekeszitve,
VarazslatId = v.VarazslatId,
}).ToList(),
};
}
}