add Mapping-Profiles
This commit is contained in:
parent
76c5d302ac
commit
be0fa19371
|
|
@ -328,7 +328,7 @@ NavMenu.razor:
|
|||
| ✓ | A3 | Foundation | DTOs | 5 DTO-Dateien |
|
||||
| ✓ | A4 | Foundation | Service Interfaces | 5 Service-Interface-Dateien |
|
||||
| ✓ | A5 | Foundation | Service Implementations | 5 Service-Dateien |
|
||||
| ☐ | A6 | Foundation | AutoMapper Profiles | 5 Mapping-Dateien |
|
||||
| ✓ | A6 | Foundation | AutoMapper Profiles | 5 Mapping-Dateien |
|
||||
| ☐ | A7 | Foundation | DI Registration | 2 DI-Dateien ändern |
|
||||
| ☐ | **B1** | **Clubs** | **ClubState Fluxor** | **4 State-Dateien** |
|
||||
| ☐ | **B2** | **Clubs** | **Club Pages - ERSTES TESTBARES MVP** | **1 Razor** |
|
||||
|
|
@ -417,7 +417,7 @@ NavMenu.razor:
|
|||
5. `src/Koogle.Application/Services/PersonExpenseService.cs`
|
||||
|
||||
**Dependencies:** Repository, ICurrentClubContext, ICurrentUserService, IMapper
|
||||
**Business Logic:** ClubId-Injection, Audit-Felder, Validierung
|
||||
**Business Logic:** ClubId-Injection, Audit-Felder, Validierung (mittels FluentValidation)
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,15 @@
|
|||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="NewFolder\**" />
|
||||
<EmbeddedResource Remove="NewFolder\**" />
|
||||
<None Remove="NewFolder\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper" Version="15.1.0" />
|
||||
<PackageReference Include="FluentValidation" Version="12.1.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
@ -15,4 +22,8 @@
|
|||
<ProjectReference Include="..\Koogle.Infrastructure\Koogle.Infrastructure.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Validators\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
using AutoMapper;
|
||||
using Koogle.Application.DTOs;
|
||||
using Koogle.Domain.Entities;
|
||||
|
||||
namespace Koogle.Application.Mapping;
|
||||
|
||||
/// <summary>
|
||||
/// AutoMapper profile for Club entity mappings.
|
||||
/// </summary>
|
||||
public class ClubMappingProfile : Profile
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes Club entity to DTO mappings.
|
||||
/// </summary>
|
||||
public ClubMappingProfile()
|
||||
{
|
||||
// Club -> ClubDto
|
||||
CreateMap<Club, ClubDto>();
|
||||
|
||||
// CreateClubDto -> Club (for creation)
|
||||
CreateMap<CreateClubDto, Club>()
|
||||
.ForMember(d => d.Id, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedAt, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedById, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedAt, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedById, o => o.Ignore())
|
||||
.ForMember(d => d.IsDeleted, o => o.Ignore());
|
||||
|
||||
// UpdateClubDto -> Club (for updates)
|
||||
CreateMap<UpdateClubDto, Club>()
|
||||
.ForMember(d => d.CreatedAt, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedById, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedAt, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedById, o => o.Ignore())
|
||||
.ForMember(d => d.IsDeleted, o => o.Ignore());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
using AutoMapper;
|
||||
using Koogle.Application.DTOs;
|
||||
using Koogle.Domain.Entities;
|
||||
|
||||
namespace Koogle.Application.Mapping;
|
||||
|
||||
/// <summary>
|
||||
/// AutoMapper profile for Day entity mappings.
|
||||
/// </summary>
|
||||
public class DayMappingProfile : Profile
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes Day entity to DTO mappings.
|
||||
/// </summary>
|
||||
public DayMappingProfile()
|
||||
{
|
||||
// Day -> DayDto
|
||||
CreateMap<Day, DayDto>()
|
||||
.ForMember(d => d.ClubName, o => o.MapFrom(s => s.Club != null ? s.Club.Name : null))
|
||||
.ForMember(d => d.ParticipantCount, o => o.MapFrom(s => s.DayPersons.Count))
|
||||
.ForMember(d => d.Participants, o => o.MapFrom(s => s.DayPersons));
|
||||
|
||||
// Day -> DaySummaryDto
|
||||
CreateMap<Day, DaySummaryDto>()
|
||||
.ForMember(d => d.ParticipantCount, o => o.MapFrom(s => s.DayPersons.Count));
|
||||
|
||||
// DayPerson -> DayParticipantDto
|
||||
CreateMap<DayPerson, DayParticipantDto>()
|
||||
.ForMember(d => d.PersonName, o => o.MapFrom(s => s.Person != null ? s.Person.Name : string.Empty))
|
||||
.ForMember(d => d.PersonStatus, o => o.MapFrom(s => s.Person != null ? s.Person.PersonStatus : default));
|
||||
|
||||
// CreateDayDto -> Day (for creation)
|
||||
CreateMap<CreateDayDto, Day>()
|
||||
.ForMember(d => d.Id, o => o.Ignore())
|
||||
.ForMember(d => d.Status, o => o.Ignore())
|
||||
.ForMember(d => d.ClubId, o => o.Ignore())
|
||||
.ForMember(d => d.Club, o => o.Ignore())
|
||||
.ForMember(d => d.DayPersons, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedAt, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedById, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedAt, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedById, o => o.Ignore())
|
||||
.ForMember(d => d.IsDeleted, o => o.Ignore());
|
||||
|
||||
// UpdateDayDto -> Day (for updates)
|
||||
CreateMap<UpdateDayDto, Day>()
|
||||
.ForMember(d => d.ClubId, o => o.Ignore())
|
||||
.ForMember(d => d.Club, o => o.Ignore())
|
||||
.ForMember(d => d.DayPersons, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedAt, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedById, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedAt, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedById, o => o.Ignore())
|
||||
.ForMember(d => d.IsDeleted, o => o.Ignore());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
using AutoMapper;
|
||||
using Koogle.Application.DTOs;
|
||||
using Koogle.Domain.Entities;
|
||||
|
||||
namespace Koogle.Application.Mapping;
|
||||
|
||||
/// <summary>
|
||||
/// AutoMapper profile for Expense entity mappings.
|
||||
/// </summary>
|
||||
public class ExpenseMappingProfile : Profile
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes Expense entity to DTO mappings.
|
||||
/// </summary>
|
||||
public ExpenseMappingProfile()
|
||||
{
|
||||
// Expense -> ExpenseDto
|
||||
CreateMap<Expense, ExpenseDto>();
|
||||
|
||||
// Expense -> ExpenseSummaryDto
|
||||
CreateMap<Expense, ExpenseSummaryDto>();
|
||||
|
||||
// CreateExpenseDto -> Expense (for creation)
|
||||
CreateMap<CreateExpenseDto, Expense>()
|
||||
.ForMember(d => d.Id, o => o.Ignore())
|
||||
.ForMember(d => d.ClubId, o => o.Ignore())
|
||||
.ForMember(d => d.Club, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedAt, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedById, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedAt, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedById, o => o.Ignore())
|
||||
.ForMember(d => d.IsDeleted, o => o.Ignore());
|
||||
|
||||
// UpdateExpenseDto -> Expense (for updates)
|
||||
CreateMap<UpdateExpenseDto, Expense>()
|
||||
.ForMember(d => d.ClubId, o => o.Ignore())
|
||||
.ForMember(d => d.Club, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedAt, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedById, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedAt, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedById, o => o.Ignore())
|
||||
.ForMember(d => d.IsDeleted, o => o.Ignore());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
using AutoMapper;
|
||||
using Koogle.Application.DTOs;
|
||||
using Koogle.Domain.Entities;
|
||||
|
||||
namespace Koogle.Application.Mapping;
|
||||
|
||||
/// <summary>
|
||||
/// AutoMapper profile for PersonExpense entity mappings.
|
||||
/// </summary>
|
||||
public class PersonExpenseMappingProfile : Profile
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes PersonExpense entity to DTO mappings.
|
||||
/// </summary>
|
||||
public PersonExpenseMappingProfile()
|
||||
{
|
||||
// PersonExpense -> PersonExpenseDto
|
||||
CreateMap<PersonExpense, PersonExpenseDto>()
|
||||
.ForMember(d => d.PersonName, o => o.MapFrom(s => s.Person != null ? s.Person.Name : string.Empty))
|
||||
.ForMember(d => d.DayPostDate, o => o.MapFrom(s => s.Day != null ? s.Day.PostDate : default));
|
||||
|
||||
// CreatePersonExpenseDto -> PersonExpense (for creation)
|
||||
CreateMap<CreatePersonExpenseDto, PersonExpense>()
|
||||
.ForMember(d => d.Id, o => o.Ignore())
|
||||
.ForMember(d => d.ClubId, o => o.Ignore())
|
||||
.ForMember(d => d.Name, o => o.Ignore())
|
||||
.ForMember(d => d.ExpenseType, o => o.Ignore())
|
||||
.ForMember(d => d.PersonExpenseStatus, o => o.Ignore())
|
||||
.ForMember(d => d.AssignedById, o => o.Ignore())
|
||||
.ForMember(d => d.Person, o => o.Ignore())
|
||||
.ForMember(d => d.Day, o => o.Ignore())
|
||||
.ForMember(d => d.Expense, o => o.Ignore())
|
||||
.ForMember(d => d.Game, o => o.Ignore())
|
||||
.ForMember(d => d.Club, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedAt, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedById, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedAt, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedById, o => o.Ignore())
|
||||
.ForMember(d => d.IsDeleted, o => o.Ignore());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
using AutoMapper;
|
||||
using Koogle.Application.DTOs;
|
||||
using Koogle.Domain.Entities;
|
||||
|
||||
namespace Koogle.Application.Mapping;
|
||||
|
||||
/// <summary>
|
||||
/// AutoMapper profile for Person entity mappings.
|
||||
/// </summary>
|
||||
public class PersonMappingProfile : Profile
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes Person entity to DTO mappings.
|
||||
/// </summary>
|
||||
public PersonMappingProfile()
|
||||
{
|
||||
// Person -> PersonDto
|
||||
CreateMap<Person, PersonDto>()
|
||||
.ForMember(d => d.ClubName, o => o.MapFrom(s => s.Club != null ? s.Club.Name : null));
|
||||
|
||||
// Person -> PersonSummaryDto
|
||||
CreateMap<Person, PersonSummaryDto>();
|
||||
|
||||
// CreatePersonDto -> Person (for creation)
|
||||
CreateMap<CreatePersonDto, Person>()
|
||||
.ForMember(d => d.Id, o => o.Ignore())
|
||||
.ForMember(d => d.ClubId, o => o.Ignore())
|
||||
.ForMember(d => d.Club, o => o.Ignore())
|
||||
.ForMember(d => d.Expenses, o => o.Ignore())
|
||||
.ForMember(d => d.DayPersons, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedAt, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedById, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedAt, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedById, o => o.Ignore())
|
||||
.ForMember(d => d.IsDeleted, o => o.Ignore());
|
||||
|
||||
// UpdatePersonDto -> Person (for updates)
|
||||
CreateMap<UpdatePersonDto, Person>()
|
||||
.ForMember(d => d.ClubId, o => o.Ignore())
|
||||
.ForMember(d => d.Club, o => o.Ignore())
|
||||
.ForMember(d => d.Expenses, o => o.Ignore())
|
||||
.ForMember(d => d.DayPersons, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedAt, o => o.Ignore())
|
||||
.ForMember(d => d.CreatedById, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedAt, o => o.Ignore())
|
||||
.ForMember(d => d.ModifiedById, o => o.Ignore())
|
||||
.ForMember(d => d.IsDeleted, o => o.Ignore());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue