From 5cd762fc3da6138ba7d6dd3def3150a85a2bf6e9 Mon Sep 17 00:00:00 2001 From: blyssco Date: Tue, 29 Jul 2025 21:00:45 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20code,=20j'en=20suis=20=C3=A0=20la?= =?UTF-8?q?=20partie=20application?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DTOs/Filter/MageDtoFilter.cs | 10 ++ .../DTOs/Filter/SpellDtoFilter.cs | 12 ++ .../DTOs/General/MageDto.cs | 10 ++ .../DTOs/General/SpellDto.cs | 12 ++ .../Exceptions/ConflictException.cs | 9 ++ .../Exceptions/NotFoundException.cs | 9 ++ .../Exceptions/ValidationException.cs | 9 ++ .../Interfaces/Generals/IMageService.cs | 13 +++ .../Interfaces/Generals/ISpellService.cs | 13 +++ .../Interfaces/Mappings/IMapper.cs | 16 +++ .../Interfaces/Validations/IValidator.cs | 14 +++ .../Liber_Incantamentum.Application.csproj | 4 +- .../Services/Generals/MageService.cs | 46 ++++++++ .../Services/Generals/SpellService.cs | 57 +++++++++ .../Services/Mappings/Mapper.cs | 108 ++++++++++++++++++ .../Services/Validations/Validator.cs | 34 ++++++ Liber_Incantamentum.Domain/Entities/Mage.cs | 10 ++ Liber_Incantamentum.Domain/Entities/Spell.cs | 12 ++ .../Filter/MageFilter.cs | 10 ++ .../Filter/SpellFilter.cs | 12 ++ .../Liber_Incantamentum.Domain.csproj | 14 ++- .../Repositories/IMageRepository.cs | 13 +++ .../Repositories/ISpellRepository.cs | 13 +++ .../Liber_Incantamentum.Infrastructure.csproj | 8 +- .../Liber_Incantamentum.Tests.csproj | 8 +- .../Liber_Incantamentum.API.csproj | 12 +- 26 files changed, 473 insertions(+), 15 deletions(-) create mode 100644 Liber_Incantamentum.Application/DTOs/Filter/MageDtoFilter.cs create mode 100644 Liber_Incantamentum.Application/DTOs/Filter/SpellDtoFilter.cs create mode 100644 Liber_Incantamentum.Application/DTOs/General/MageDto.cs create mode 100644 Liber_Incantamentum.Application/DTOs/General/SpellDto.cs create mode 100644 Liber_Incantamentum.Application/Exceptions/ConflictException.cs create mode 100644 Liber_Incantamentum.Application/Exceptions/NotFoundException.cs create mode 100644 Liber_Incantamentum.Application/Exceptions/ValidationException.cs create mode 100644 Liber_Incantamentum.Application/Interfaces/Generals/IMageService.cs create mode 100644 Liber_Incantamentum.Application/Interfaces/Generals/ISpellService.cs create mode 100644 Liber_Incantamentum.Application/Interfaces/Mappings/IMapper.cs create mode 100644 Liber_Incantamentum.Application/Interfaces/Validations/IValidator.cs create mode 100644 Liber_Incantamentum.Application/Services/Generals/MageService.cs create mode 100644 Liber_Incantamentum.Application/Services/Generals/SpellService.cs create mode 100644 Liber_Incantamentum.Application/Services/Mappings/Mapper.cs create mode 100644 Liber_Incantamentum.Application/Services/Validations/Validator.cs create mode 100644 Liber_Incantamentum.Domain/Entities/Mage.cs create mode 100644 Liber_Incantamentum.Domain/Entities/Spell.cs create mode 100644 Liber_Incantamentum.Domain/Filter/MageFilter.cs create mode 100644 Liber_Incantamentum.Domain/Filter/SpellFilter.cs create mode 100644 Liber_Incantamentum.Domain/Repositories/IMageRepository.cs create mode 100644 Liber_Incantamentum.Domain/Repositories/ISpellRepository.cs diff --git a/Liber_Incantamentum.Application/DTOs/Filter/MageDtoFilter.cs b/Liber_Incantamentum.Application/DTOs/Filter/MageDtoFilter.cs new file mode 100644 index 0000000..e19255d --- /dev/null +++ b/Liber_Incantamentum.Application/DTOs/Filter/MageDtoFilter.cs @@ -0,0 +1,10 @@ +namespace Liber_Incantamentum.Application.DTOs.Filter +{ + public class MageDtoFilter + { + public Guid? Id { get; set; } + public string? Name { get; set; } + public string? Rank { get; set; } + public string? Specialisation { get; set; } + } +} diff --git a/Liber_Incantamentum.Application/DTOs/Filter/SpellDtoFilter.cs b/Liber_Incantamentum.Application/DTOs/Filter/SpellDtoFilter.cs new file mode 100644 index 0000000..e5ef457 --- /dev/null +++ b/Liber_Incantamentum.Application/DTOs/Filter/SpellDtoFilter.cs @@ -0,0 +1,12 @@ +namespace Liber_Incantamentum.Application.DTOs.Filter +{ + public class SpellDtoFilter + { + public Guid? Id { get; set; } + public string? Name { get; set; } + public string? Description { get; set; } + public string? Type { get; set; } + public DateTime? CreationDate { get; set; } + public MageDtoFilter? Mage { get; set; } + } +} diff --git a/Liber_Incantamentum.Application/DTOs/General/MageDto.cs b/Liber_Incantamentum.Application/DTOs/General/MageDto.cs new file mode 100644 index 0000000..389807b --- /dev/null +++ b/Liber_Incantamentum.Application/DTOs/General/MageDto.cs @@ -0,0 +1,10 @@ +namespace Liber_Incantamentum.Application.DTOs.General +{ + public class MageDto + { + public Guid Id { get; set; } + public required string Name { get; set; } + public required string Rank { get; set; } + public required string Specialisation { get; set; } + } +} diff --git a/Liber_Incantamentum.Application/DTOs/General/SpellDto.cs b/Liber_Incantamentum.Application/DTOs/General/SpellDto.cs new file mode 100644 index 0000000..834f7cf --- /dev/null +++ b/Liber_Incantamentum.Application/DTOs/General/SpellDto.cs @@ -0,0 +1,12 @@ +namespace Liber_Incantamentum.Application.DTOs.General +{ + public class SpellDto + { + public Guid Id { get; set; } + public required string Name { get; set; } + public required string Description { get; set; } + public required string Type { get; set; } + public required DateTime CreationDate { get; set; } + public required MageDto Mage { get; set; } + } +} diff --git a/Liber_Incantamentum.Application/Exceptions/ConflictException.cs b/Liber_Incantamentum.Application/Exceptions/ConflictException.cs new file mode 100644 index 0000000..08af113 --- /dev/null +++ b/Liber_Incantamentum.Application/Exceptions/ConflictException.cs @@ -0,0 +1,9 @@ +namespace Liber_Incantamentum.Application.Exceptions +{ + public class ConflictException : Exception + { + public ConflictException() { } + public ConflictException(string message) : base(message) { } + public ConflictException(string? message, Exception? innerException) : base(message, innerException) { } + } +} diff --git a/Liber_Incantamentum.Application/Exceptions/NotFoundException.cs b/Liber_Incantamentum.Application/Exceptions/NotFoundException.cs new file mode 100644 index 0000000..998d741 --- /dev/null +++ b/Liber_Incantamentum.Application/Exceptions/NotFoundException.cs @@ -0,0 +1,9 @@ +namespace Liber_Incantamentum.Application.Exceptions +{ + public class NotFoundException : Exception + { + public NotFoundException() { } + public NotFoundException(string message) : base(message) { } + public NotFoundException(string? message, Exception? innerException) : base(message, innerException) { } + } +} diff --git a/Liber_Incantamentum.Application/Exceptions/ValidationException.cs b/Liber_Incantamentum.Application/Exceptions/ValidationException.cs new file mode 100644 index 0000000..6245c23 --- /dev/null +++ b/Liber_Incantamentum.Application/Exceptions/ValidationException.cs @@ -0,0 +1,9 @@ +namespace Liber_Incantamentum.Application.Exceptions +{ + public class ValidationException : Exception + { + public ValidationException() { } + public ValidationException(string message) : base(message) { } + public ValidationException(string? message, Exception? innerException) : base(message, innerException) { } + } +} diff --git a/Liber_Incantamentum.Application/Interfaces/Generals/IMageService.cs b/Liber_Incantamentum.Application/Interfaces/Generals/IMageService.cs new file mode 100644 index 0000000..b43ca92 --- /dev/null +++ b/Liber_Incantamentum.Application/Interfaces/Generals/IMageService.cs @@ -0,0 +1,13 @@ +using Liber_Incantamentum.Application.DTOs.Filter; +using Liber_Incantamentum.Application.DTOs.General; + +namespace Liber_Incantamentum.Application.Interfaces.Generals +{ + public interface IMageService + { + Task?> GetAllMageAsync(MageDtoFilter filter); + Task UpdateMageAsync(MageDtoFilter dto); + Task DeleteMageAsync(Guid id); + Task AddMageAsync(MageDto dto); + } +} diff --git a/Liber_Incantamentum.Application/Interfaces/Generals/ISpellService.cs b/Liber_Incantamentum.Application/Interfaces/Generals/ISpellService.cs new file mode 100644 index 0000000..2333f22 --- /dev/null +++ b/Liber_Incantamentum.Application/Interfaces/Generals/ISpellService.cs @@ -0,0 +1,13 @@ +using Liber_Incantamentum.Application.DTOs.Filter; +using Liber_Incantamentum.Application.DTOs.General; + +namespace Liber_Incantamentum.Application.Interfaces.Generals +{ + public interface ISpellService + { + Task?> GetAllSpellAsync(SpellDtoFilter filter); + Task UpdateSpellAsync(SpellDtoFilter dto); + Task DeleteSpellAsync(Guid id); + Task AddSpellAsync(SpellDto dto); + } +} diff --git a/Liber_Incantamentum.Application/Interfaces/Mappings/IMapper.cs b/Liber_Incantamentum.Application/Interfaces/Mappings/IMapper.cs new file mode 100644 index 0000000..e37f5ac --- /dev/null +++ b/Liber_Incantamentum.Application/Interfaces/Mappings/IMapper.cs @@ -0,0 +1,16 @@ +using Liber_Incantamentum.Application.DTOs.Filter; +using Liber_Incantamentum.Application.DTOs.General; +using Liber_Incantamentum.Domain.Entities; +using Liber_Incantamentum.Domain.Filter; + +namespace Liber_Incantamentum.Application.Interfaces.Mappings +{ + public interface IMapper + { + MageFilter MapMageDtoFilterToMageFilterEntity(MageDtoFilter filter); + Mage MapMageDtoToMageEntity(MageDto dto); + ICollection? MapMageEntityCollectionToMageDtoCollection(ICollection? task); + SpellFilter MapSpellDtoFilterToSpellFilterEntity(SpellDtoFilter dto); + Spell MapSpellDtoToSpellEntity(SpellDto dto); + } +} diff --git a/Liber_Incantamentum.Application/Interfaces/Validations/IValidator.cs b/Liber_Incantamentum.Application/Interfaces/Validations/IValidator.cs new file mode 100644 index 0000000..fdb4ad7 --- /dev/null +++ b/Liber_Incantamentum.Application/Interfaces/Validations/IValidator.cs @@ -0,0 +1,14 @@ +using Liber_Incantamentum.Application.DTOs.Filter; +using Liber_Incantamentum.Application.DTOs.General; + +namespace Liber_Incantamentum.Application.Interfaces.Validations +{ + public interface IValidator + { + void ValidateGuid(Guid id); + void ValidateMageDto(MageDto dto); + void ValidateMageDtoFilter(MageDtoFilter filter); + void ValidateSpellDto(SpellDto dto); + void ValidateSpellDtoFilter(SpellDtoFilter filter); + } +} diff --git a/Liber_Incantamentum.Application/Liber_Incantamentum.Application.csproj b/Liber_Incantamentum.Application/Liber_Incantamentum.Application.csproj index fefd871..6031e6c 100644 --- a/Liber_Incantamentum.Application/Liber_Incantamentum.Application.csproj +++ b/Liber_Incantamentum.Application/Liber_Incantamentum.Application.csproj @@ -7,9 +7,7 @@ - - - + diff --git a/Liber_Incantamentum.Application/Services/Generals/MageService.cs b/Liber_Incantamentum.Application/Services/Generals/MageService.cs new file mode 100644 index 0000000..7933a2f --- /dev/null +++ b/Liber_Incantamentum.Application/Services/Generals/MageService.cs @@ -0,0 +1,46 @@ +using Liber_Incantamentum.Application.DTOs.Filter; +using Liber_Incantamentum.Application.DTOs.General; +using Liber_Incantamentum.Application.Interfaces.Generals; +using Liber_Incantamentum.Application.Interfaces.Mappings; +using Liber_Incantamentum.Application.Interfaces.Validations; +using Liber_Incantamentum.Domain.Repositories; + +namespace Liber_Incantamentum.Application.Services.Generals +{ + public class MageService : IMageService + { + private IValidator _validator; + private IMageRepository _mageRepository; + private IMapper _mapper; + public MageService(IMapper mapper, IMageRepository mageRepository, IValidator validator) + { + _mapper = mapper; + _mageRepository = mageRepository; + _validator = validator; + } + public async Task AddMageAsync(MageDto dto) + { + _validator.ValidateMageDto(dto); + return await _mageRepository.AddMageAsync(_mapper.MapMageDtoToMageEntity(dto)); + } + + public async Task DeleteMageAsync(Guid id) + { + _validator.ValidateGuid(id); + return await _mageRepository.DeleteMageAsync(id); + } + + public async Task?> GetAllMageAsync(MageDtoFilter filter) + { + _validator.ValidateMageDtoFilter(filter); + return await _mapper.MapMageEntityCollectionToMageDtoCollection(_mageRepository.GetAllMageAsync(_mapper.MapMageDtoFilterToMageFilterEntity(filter))); + } + + public async Task UpdateMageAsync(MageDtoFilter dto) + { + _validator.ValidateMageDtoFilter(dto); + await _mageRepository.UpdateMageAsync(_mapper.MapMageDtoFilterToMageFilterEntity(dto)); + return false; + } + } +} diff --git a/Liber_Incantamentum.Application/Services/Generals/SpellService.cs b/Liber_Incantamentum.Application/Services/Generals/SpellService.cs new file mode 100644 index 0000000..4ba4063 --- /dev/null +++ b/Liber_Incantamentum.Application/Services/Generals/SpellService.cs @@ -0,0 +1,57 @@ +using Liber_Incantamentum.Application.DTOs.Filter; +using Liber_Incantamentum.Application.DTOs.General; +using Liber_Incantamentum.Application.Interfaces.Generals; +using Liber_Incantamentum.Application.Interfaces.Mappings; +using Liber_Incantamentum.Application.Interfaces.Validations; +using Liber_Incantamentum.Domain.Repositories; + +namespace Liber_Incantamentum.Application.Services.Generals +{ + public class SpellService : ISpellService + { + private IValidator _validator; + private ISpellRepository _spellRepository; + private IMapper _mapper; + public SpellService(IValidator validator, ISpellRepository spellRepository, IMapper mapper) + { + _mapper = mapper; + _validator = validator; + _spellRepository = spellRepository; + } + public async Task AddSpellAsync(SpellDto dto) + { + if (_validator.ValidateSpellDto(dto)) + { + await _spellRepository.AddSpellAsync(_mapper.MapSpellDtoToSpellEntity(dto)); + } + return false; + } + + public async Task DeleteSpellAsync(Guid id) + { + if (_validator.ValidateGuid(id)) + { + await _spellRepository.DeleteSpellAsync(id); + } + return false; + } + + public async Task?> GetAllSpellAsync(SpellDtoFilter filter) + { + if (_validator.ValidateSpellDtoFilter(filter)) + { + await _spellRepository.GetAllSpellAsync(_mapper.MapSpellDtoFilterToSpellFilterEntity(filter)); + } + return null; + } + + public async Task UpdateSpellAsync(SpellDtoFilter filter) + { + if (_validator.ValidateSpellDtoFilter(filter)) + { + await _spellRepository.UpdateSpellAsync(_mapper.MapSpellDtoFilterToSpellFilterEntity(filter)); + } + return false; + } + } +} diff --git a/Liber_Incantamentum.Application/Services/Mappings/Mapper.cs b/Liber_Incantamentum.Application/Services/Mappings/Mapper.cs new file mode 100644 index 0000000..2b32915 --- /dev/null +++ b/Liber_Incantamentum.Application/Services/Mappings/Mapper.cs @@ -0,0 +1,108 @@ +using Liber_Incantamentum.Application.DTOs.Filter; +using Liber_Incantamentum.Application.DTOs.General; +using Liber_Incantamentum.Application.Interfaces.Mappings; +using Liber_Incantamentum.Domain.Entities; +using Liber_Incantamentum.Domain.Filter; +using System.Collections; + +namespace Liber_Incantamentum.Application.Services.Mappings +{ + public class Mapper : IMapper + { + public MageFilter MapMageDtoFilterToMageFilterEntity(MageDtoFilter filter) + { + MageFilter entity = new MageFilter() + { + Id = filter.Id, + Name = filter.Name, + Rank = filter.Rank, + Specialisation = filter.Specialisation + }; + return entity; + } + + public Mage MapMageDtoToMageEntity(MageDto dto) + { + Mage entity = new Mage() + { + Name = dto.Name, + Rank = dto.Rank, + Specialisation = dto.Specialisation + }; + return entity; + } + public MageDto MapMageEntityToMageDto(Mage entity) + { + MageDto dto = new MageDto() + { + Name = entity.Name, + Rank = entity.Rank, + Specialisation = entity.Specialisation + }; + return dto; + } + + public ICollection? MapMageEntityCollectionToMageDtoCollection(ICollection collection) + { + ICollection MageDtoCollection = new List(); + foreach(var entity in collection) + { + MageDto dto = new MageDto() + { + Id = entity.Id, + Name = entity.Name, + Rank = entity.Rank, + Specialisation = entity.Specialisation + }; + MageDtoCollection.Add(dto); + } + return MageDtoCollection; + } + public ICollection? MapSpellEntityCollectionToSpellDtoCollection(ICollection collection) + { + ICollection SpellDtoCollection = new List(); + foreach (var entity in collection) + { + SpellDto dto = new SpellDto() + { + Id = entity.Id, + Name = entity.Name, + Description = entity.Description, + Type = entity.Type, + CreationDate = entity.CreationDate, + Mage = MapMageEntityToMageDto(entity.Mage) + }; + SpellDtoCollection.Add(dto); + } + return SpellDtoCollection; + } + + public SpellFilter MapSpellDtoFilterToSpellFilterEntity(SpellDtoFilter dto) + { + SpellFilter entity = new SpellFilter() + { + Id = dto.Id, + Name = dto.Name, + Description = dto.Description, + Type = dto.Type, + CreationDate = dto.CreationDate, + Mage = MapMageDtoFilterToMageFilterEntity(dto.Mage) + }; + return entity; + } + + public Spell MapSpellDtoToSpellEntity(SpellDto dto) + { + Spell entity = new Spell() + { + Id = dto.Id, + Name = dto.Name, + Description = dto.Description, + Type = dto.Type, + CreationDate = dto.CreationDate, + Mage = MapMageDtoToMageEntity(dto.Mage) + }; + return entity; + } + } +} diff --git a/Liber_Incantamentum.Application/Services/Validations/Validator.cs b/Liber_Incantamentum.Application/Services/Validations/Validator.cs new file mode 100644 index 0000000..4d9fbd5 --- /dev/null +++ b/Liber_Incantamentum.Application/Services/Validations/Validator.cs @@ -0,0 +1,34 @@ +using Liber_Incantamentum.Application.DTOs.Filter; +using Liber_Incantamentum.Application.DTOs.General; +using Liber_Incantamentum.Application.Interfaces.Validations; + +namespace Liber_Incantamentum.Application.Services.Validations +{ + public class Validator : IValidator + { + public void ValidateGuid(Guid id) + { + if (id == Guid.Empty) throw new ArgumentNullException("The id received is null"); + } + + public void ValidateMageDto(MageDto dto) + { + + } + + public void ValidateMageDtoFilter(MageDtoFilter filter) + { + throw new NotImplementedException(); + } + + public void ValidateSpellDto(SpellDto dto) + { + throw new NotImplementedException(); + } + + public void ValidateSpellDtoFilter(SpellDtoFilter filter) + { + throw new NotImplementedException(); + } + } +} diff --git a/Liber_Incantamentum.Domain/Entities/Mage.cs b/Liber_Incantamentum.Domain/Entities/Mage.cs new file mode 100644 index 0000000..c48859d --- /dev/null +++ b/Liber_Incantamentum.Domain/Entities/Mage.cs @@ -0,0 +1,10 @@ +namespace Liber_Incantamentum.Domain.Entities +{ + public class Mage + { + public Guid Id { get; private set; } + public required string Name { get; set; } + public required string Rank { get; set; } + public required string Specialisation { get; set; } + } +} diff --git a/Liber_Incantamentum.Domain/Entities/Spell.cs b/Liber_Incantamentum.Domain/Entities/Spell.cs new file mode 100644 index 0000000..cbb443b --- /dev/null +++ b/Liber_Incantamentum.Domain/Entities/Spell.cs @@ -0,0 +1,12 @@ +namespace Liber_Incantamentum.Domain.Entities +{ + public class Spell + { + public Guid Id { get; set; } + public required string Name { get; set; } + public required string Description { get; set; } + public required string Type { get; set; } + public required DateTime CreationDate { get; set; } + public required Mage Mage { get; set; } + } +} diff --git a/Liber_Incantamentum.Domain/Filter/MageFilter.cs b/Liber_Incantamentum.Domain/Filter/MageFilter.cs new file mode 100644 index 0000000..39354be --- /dev/null +++ b/Liber_Incantamentum.Domain/Filter/MageFilter.cs @@ -0,0 +1,10 @@ +namespace Liber_Incantamentum.Domain.Filter +{ + public class MageFilter + { + public Guid? Id { get; set; } + public string? Name { get; set; } + public string? Rank { get; set; } + public string? Specialisation { get; set; } + } +} diff --git a/Liber_Incantamentum.Domain/Filter/SpellFilter.cs b/Liber_Incantamentum.Domain/Filter/SpellFilter.cs new file mode 100644 index 0000000..d1c19c8 --- /dev/null +++ b/Liber_Incantamentum.Domain/Filter/SpellFilter.cs @@ -0,0 +1,12 @@ +namespace Liber_Incantamentum.Domain.Filter +{ + public class SpellFilter + { + public Guid? Id { get; set; } + public string? Name { get; set; } + public string? Description { get; set; } + public string? Type { get; set; } + public DateTime? CreationDate { get; set; } + public MageFilter? Mage { get; set; } + } +} diff --git a/Liber_Incantamentum.Domain/Liber_Incantamentum.Domain.csproj b/Liber_Incantamentum.Domain/Liber_Incantamentum.Domain.csproj index d732c4a..bb0eca4 100644 --- a/Liber_Incantamentum.Domain/Liber_Incantamentum.Domain.csproj +++ b/Liber_Incantamentum.Domain/Liber_Incantamentum.Domain.csproj @@ -7,11 +7,15 @@ - - - - - + + + + + + + + + diff --git a/Liber_Incantamentum.Domain/Repositories/IMageRepository.cs b/Liber_Incantamentum.Domain/Repositories/IMageRepository.cs new file mode 100644 index 0000000..3a32d96 --- /dev/null +++ b/Liber_Incantamentum.Domain/Repositories/IMageRepository.cs @@ -0,0 +1,13 @@ +using Liber_Incantamentum.Domain.Entities; +using Liber_Incantamentum.Domain.Filter; + +namespace Liber_Incantamentum.Domain.Repositories +{ + public interface IMageRepository + { + Task?> GetAllMageAsync(MageFilter filter); + Task UpdateMageAsync(MageFilter filter); + Task DeleteMageAsync(Guid id); + Task AddMageAsync(Mage entity); + } +} diff --git a/Liber_Incantamentum.Domain/Repositories/ISpellRepository.cs b/Liber_Incantamentum.Domain/Repositories/ISpellRepository.cs new file mode 100644 index 0000000..d63a194 --- /dev/null +++ b/Liber_Incantamentum.Domain/Repositories/ISpellRepository.cs @@ -0,0 +1,13 @@ +using Liber_Incantamentum.Domain.Entities; +using Liber_Incantamentum.Domain.Filter; + +namespace Liber_Incantamentum.Domain.Repositories +{ + public interface ISpellRepository + { + Task?> GetAllSpellAsync(SpellFilter filter); + Task UpdateSpellAsync(SpellFilter filter); + Task DeleteSpellAsync(Guid id); + Task AddSpellAsync(Spell entity); + } +} diff --git a/Liber_Incantamentum.Infrastructure/Liber_Incantamentum.Infrastructure.csproj b/Liber_Incantamentum.Infrastructure/Liber_Incantamentum.Infrastructure.csproj index c4f9216..0e62045 100644 --- a/Liber_Incantamentum.Infrastructure/Liber_Incantamentum.Infrastructure.csproj +++ b/Liber_Incantamentum.Infrastructure/Liber_Incantamentum.Infrastructure.csproj @@ -7,8 +7,12 @@ - - + + + + + + diff --git a/Liber_Incantamentum.Tests/Liber_Incantamentum.Tests.csproj b/Liber_Incantamentum.Tests/Liber_Incantamentum.Tests.csproj index 6c83ff3..6d28c78 100644 --- a/Liber_Incantamentum.Tests/Liber_Incantamentum.Tests.csproj +++ b/Liber_Incantamentum.Tests/Liber_Incantamentum.Tests.csproj @@ -7,8 +7,12 @@ - - + + + + + + diff --git a/Liber_Incantamentum/Liber_Incantamentum.API.csproj b/Liber_Incantamentum/Liber_Incantamentum.API.csproj index 11b4c78..4f288b8 100644 --- a/Liber_Incantamentum/Liber_Incantamentum.API.csproj +++ b/Liber_Incantamentum/Liber_Incantamentum.API.csproj @@ -7,12 +7,18 @@ - + + + + + + + + - - +