using Liber_Incantamentum.Application.DTOs.Mage; using Liber_Incantamentum.Application.DTOs.Spell; using Liber_Incantamentum.Application.Interfaces.Mappings; using Liber_Incantamentum.Domain.Entities; using Liber_Incantamentum.Domain.Filter; namespace Liber_Incantamentum.Application.Services.Mappings { public class Mapper : IMapper { public Mage MapMageDtoCreateToMageEntity(MageDtoCreate value) { return new Mage() { Name = value.Name, Rank = value.Rank, Specialisation = value.Specialisation }; } public MageFilter MapMageDtoFilterToMageFilter(MageDtoFilter value) { return new MageFilter() { Id = value.Id, Name = value.Name, Rank = value.Rank, Specialisation = value.Specialisation }; } public Mage MapMageDtoUpdateToMageEntity(MageDtoUpdate value) { return new Mage() { Name = value.Name, Rank = value.Rank, Specialisation = value.Specialisation }; } public ICollection? MapMageEntityCollectionToMageDtoCollection(ICollection? value) { var mageDtoCollection = new List(); foreach (var entity in value) { MageDto dto = new MageDto() { Id = entity.Id, Name = entity.Name, Rank = entity.Rank, Specialisation = entity.Specialisation }; mageDtoCollection.Add(dto); } return mageDtoCollection; } public MageDto mapMageEntityToMageDto(Mage mage) { return new MageDto() { Id = mage.Id, Name = mage.Name, Rank = mage.Rank, Specialisation = mage.Specialisation }; } public Spell MapSpellDtoCreateToSpellEntity(SpellDtoCreate value) { return new Spell() { Name = value.Name, Description = value.Description, Type = value.Type, CreationDate = value.CreationDate, MageId = value.MageId }; } public SpellFilter MapSpellDtoFilterToSpellFilter(SpellDtoFilter value) { return new SpellFilter() { Id = value.Id, Name = value.Name, Description = value.Description, Type = value.Type, CreationDate = value.CreationDate, MageId = value.MageId }; } public Spell MapSpellDtoUpdateToSpellEntity(SpellDtoUpdate value) { return new Spell() { Name = value.Name, Description = value.Description, Type = value.Type, CreationDate = value.CreationDate, MageId = value.MageId }; } public ICollection? MapSpellEntityCollectionToSpellDtoCollection(ICollection? value) { var spellDtoCollection = new List(); foreach (var x in value) { var dto = new SpellDto() { Id = x.Id, Name = x.Name, Description = x.Description, Type = x.Type, CreationDate = x.CreationDate, MageId = x.MageId }; spellDtoCollection.Add(dto); } return spellDtoCollection; } public SpellDto mapSpellEntityToSpellDto(Spell spell) { return new SpellDto() { Id = spell.Id, Name = spell.Name, Description = spell.Description, Type = spell.Type, CreationDate = spell.CreationDate, MageId = spell.MageId }; } } }