Skip to content

Commit a7da171

Browse files
authored
Remove Mediatr and AutoMapper packages (#54)
2 parents d517337 + 1c5e4eb commit a7da171

File tree

43 files changed

+430
-486
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+430
-486
lines changed

AspNetCore v9.0/Calabonga.Microservice.IdentityModule.Template/content/Calabonga.Microservice.IdentityModule.Web/Application/Messaging/EventItemMessages/EventItemMapperConfiguration.cs

Lines changed: 0 additions & 32 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
using Calabonga.Microservice.IdentityModule.Domain;
2+
using Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.ViewModels;
3+
4+
namespace Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages;
5+
6+
/// <summary>
7+
/// Replacement for Automapper
8+
/// </summary>
9+
public static class EventItemMapping
10+
{
11+
/// <summary>
12+
/// Creates a ViewModel
13+
/// </summary>
14+
/// <param name="source"></param>
15+
/// <returns></returns>
16+
public static EventItemViewModel? MapToViewModel(this EventItem? source)
17+
{
18+
if (source is null)
19+
{
20+
return null;
21+
}
22+
23+
return new EventItemViewModel
24+
{
25+
CreatedAt = source.CreatedAt,
26+
ExceptionMessage = source.ExceptionMessage,
27+
Id = source.Id,
28+
Level = source.Level,
29+
Logger = source.Logger,
30+
Message = source.Message,
31+
ThreadId = source.ThreadId,
32+
};
33+
}
34+
35+
/// <summary>
36+
/// Creates an EventItem from ViewModel
37+
/// </summary>
38+
/// <param name="source"></param>
39+
/// <returns></returns>
40+
public static EventItem? MapToEventItem(this EventItemCreateViewModel? source)
41+
{
42+
if (source is null)
43+
{
44+
return null;
45+
}
46+
47+
return new EventItem
48+
{
49+
CreatedAt = source.CreatedAt,
50+
Level = source.Level,
51+
Logger = source.Logger,
52+
Message = source.Message,
53+
ThreadId = source.ThreadId
54+
};
55+
}
56+
57+
/// <summary>
58+
/// Creates an EventItem from ViewModel
59+
/// </summary>
60+
/// <param name="source"></param>
61+
/// <param name="updateViewModel"></param>
62+
/// <returns></returns>
63+
public static void MapUpdatesFrom(this EventItem? source, EventItemUpdateViewModel? updateViewModel)
64+
{
65+
if (updateViewModel is null || source is null)
66+
{
67+
return;
68+
}
69+
70+
source.Level = updateViewModel.Level;
71+
source.Logger = updateViewModel.Logger;
72+
source.Message = updateViewModel.Message;
73+
source.Id = updateViewModel.Id;
74+
}
75+
}

AspNetCore v9.0/Calabonga.Microservice.IdentityModule.Template/content/Calabonga.Microservice.IdentityModule.Web/Application/Messaging/EventItemMessages/Queries/DeleteEventItem.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
using AutoMapper;
2-
using Calabonga.Microservice.IdentityModule.Domain;
1+
using Calabonga.Microservice.IdentityModule.Domain;
32
using Calabonga.Microservice.IdentityModule.Domain.Base;
43
using Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.ViewModels;
54
using Calabonga.OperationResults;
65
using Calabonga.UnitOfWork;
7-
using MediatR;
6+
using Mediator;
87

98
namespace Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.Queries;
109

@@ -15,14 +14,14 @@ public static class DeleteEventItem
1514
{
1615
public record Request(Guid Id) : IRequest<Operation<EventItemViewModel, string>>;
1716

18-
public class Handler(IUnitOfWork unitOfWork, IMapper mapper)
17+
public class Handler(IUnitOfWork unitOfWork)
1918
: IRequestHandler<Request, Operation<EventItemViewModel, string>>
2019
{
2120
/// <summary>Handles a request</summary>
2221
/// <param name="request">The request</param>
2322
/// <param name="cancellationToken">Cancellation token</param>
2423
/// <returns>Response from the request</returns>
25-
public async Task<Operation<EventItemViewModel, string>> Handle(Request request, CancellationToken cancellationToken)
24+
public async ValueTask<Operation<EventItemViewModel, string>> Handle(Request request, CancellationToken cancellationToken)
2625
{
2726
var repository = unitOfWork.GetRepository<EventItem>();
2827
var entity = await repository.FindAsync(request.Id);
@@ -38,7 +37,7 @@ public async Task<Operation<EventItemViewModel, string>> Handle(Request request,
3837
return Operation.Error(unitOfWork.Result.Exception?.Message ?? AppData.Exceptions.SomethingWrong);
3938
}
4039

41-
var mapped = mapper.Map<EventItemViewModel>(entity);
40+
var mapped = entity.MapToViewModel();
4241
if (mapped is not null)
4342
{
4443
return Operation.Result(mapped);

AspNetCore v9.0/Calabonga.Microservice.IdentityModule.Template/content/Calabonga.Microservice.IdentityModule.Web/Application/Messaging/EventItemMessages/Queries/GetEventItemById.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
using AutoMapper;
2-
using Calabonga.Microservice.IdentityModule.Domain;
1+
using Calabonga.Microservice.IdentityModule.Domain;
32
using Calabonga.Microservice.IdentityModule.Domain.Base;
43
using Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.ViewModels;
54
using Calabonga.OperationResults;
65
using Calabonga.UnitOfWork;
7-
using MediatR;
6+
using Mediator;
87

98
namespace Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.Queries;
109

@@ -15,14 +14,14 @@ public static class GetEventItemById
1514
{
1615
public record Request(Guid Id) : IRequest<Operation<EventItemViewModel, string>>;
1716

18-
public class Handler(IUnitOfWork unitOfWork, IMapper mapper)
17+
public class Handler(IUnitOfWork unitOfWork)
1918
: IRequestHandler<Request, Operation<EventItemViewModel, string>>
2019
{
2120
/// <summary>Handles a request getting log by identifier</summary>
2221
/// <param name="request">The request</param>
2322
/// <param name="cancellationToken">Cancellation token</param>
2423
/// <returns>Response from the request</returns>
25-
public async Task<Operation<EventItemViewModel, string>> Handle(Request request, CancellationToken cancellationToken)
24+
public async ValueTask<Operation<EventItemViewModel, string>> Handle(Request request, CancellationToken cancellationToken)
2625
{
2726
var id = request.Id;
2827
var repository = unitOfWork.GetRepository<EventItem>();
@@ -32,7 +31,7 @@ public async Task<Operation<EventItemViewModel, string>> Handle(Request request,
3231
return Operation.Error($"Entity with identifier {id} not found");
3332
}
3433

35-
var mapped = mapper.Map<EventItemViewModel>(entityWithoutIncludes);
34+
var mapped = entityWithoutIncludes.MapToViewModel();
3635
if (mapped is not null)
3736
{
3837
return Operation.Result(mapped);

AspNetCore v9.0/Calabonga.Microservice.IdentityModule.Template/content/Calabonga.Microservice.IdentityModule.Web/Application/Messaging/EventItemMessages/Queries/GetEventItemPaged.cs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
using AutoMapper;
2-
using Calabonga.Microservice.IdentityModule.Domain;
3-
using Calabonga.Microservice.IdentityModule.Domain.Base;
1+
using Calabonga.Microservice.IdentityModule.Domain;
42
using Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.ViewModels;
53
using Calabonga.OperationResults;
64
using Calabonga.PagedListCore;
75
using Calabonga.PredicatesBuilder;
86
using Calabonga.UnitOfWork;
9-
using MediatR;
7+
using Mediator;
108
using System.Linq.Expressions;
9+
using PredicateBuilder = Calabonga.PredicatesBuilder.PredicateBuilder;
1110

1211
namespace Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.Queries;
1312

@@ -18,10 +17,10 @@ public static class GetEventItemPaged
1817
{
1918
public record Request(int PageIndex, int PageSize, string? Search) : IRequest<Operation<IPagedList<EventItemViewModel>, string>>;
2019

21-
public class Handler(IUnitOfWork unitOfWork, IMapper mapper)
20+
public class Handler(IUnitOfWork unitOfWork)
2221
: IRequestHandler<Request, Operation<IPagedList<EventItemViewModel>, string>>
2322
{
24-
public async Task<Operation<IPagedList<EventItemViewModel>, string>> Handle(
23+
public async ValueTask<Operation<IPagedList<EventItemViewModel>, string>> Handle(
2524
Request request,
2625
CancellationToken cancellationToken)
2726
{
@@ -44,13 +43,8 @@ public async Task<Operation<IPagedList<EventItemViewModel>, string>> Handle(
4443
cancellationToken: cancellationToken);
4544
}
4645

47-
var mapped = mapper.Map<IPagedList<EventItemViewModel>>(pagedList);
48-
if (mapped is not null)
49-
{
50-
return Operation.Result(mapped);
51-
}
52-
53-
return Operation.Error(AppData.Exceptions.MappingException);
46+
var mapped = PagedList.From(pagedList, items => items.Select(item => item.MapToViewModel()!));
47+
return Operation.Result(mapped);
5448
}
5549

5650
private Expression<Func<EventItem, bool>> GetPredicate(string? search)

AspNetCore v9.0/Calabonga.Microservice.IdentityModule.Template/content/Calabonga.Microservice.IdentityModule.Web/Application/Messaging/EventItemMessages/Queries/PostEventItem.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
using AutoMapper;
2-
using Calabonga.Microservice.IdentityModule.Domain;
1+
using Calabonga.Microservice.IdentityModule.Domain;
32
using Calabonga.Microservice.IdentityModule.Domain.Base;
43
using Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.ViewModels;
54
using Calabonga.Microservices.Core;
65
using Calabonga.OperationResults;
76
using Calabonga.UnitOfWork;
8-
using MediatR;
7+
using Mediator;
98

109
namespace Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.Queries;
1110

@@ -16,14 +15,15 @@ public static class PostEventItem
1615
{
1716
public record Request(EventItemCreateViewModel Model) : IRequest<Operation<EventItemViewModel, string>>;
1817

19-
public class Handler(IUnitOfWork unitOfWork, IMapper mapper, ILogger<Handler> logger)
18+
public class Handler(IUnitOfWork unitOfWork, ILogger<Handler> logger)
2019
: IRequestHandler<Request, Operation<EventItemViewModel, string>>
2120
{
22-
public async Task<Operation<EventItemViewModel, string>> Handle(Request eventItemRequest, CancellationToken cancellationToken)
21+
public async ValueTask<Operation<EventItemViewModel, string>> Handle(Request eventItemRequest, CancellationToken cancellationToken)
2322
{
2423
logger.LogDebug("Creating new EventItem");
2524

26-
var entity = mapper.Map<EventItemCreateViewModel, EventItem>(eventItemRequest.Model);
25+
26+
var entity = eventItemRequest.Model.MapToEventItem();
2727
if (entity == null)
2828
{
2929
logger.LogError("Mapper not configured correctly or something went wrong");
@@ -36,14 +36,14 @@ public async Task<Operation<EventItemViewModel, string>> Handle(Request eventIte
3636
var lastResult = unitOfWork.Result;
3737
if (lastResult.Ok)
3838
{
39-
var mapped = mapper.Map<EventItem, EventItemViewModel>(entity);
40-
if (mapped is not null)
39+
var mapped = entity.MapToViewModel();
40+
if (mapped is null)
4141
{
42-
logger.LogInformation("New entity {@EventItem} successfully created", entity);
43-
return Operation.Result(mapped);
42+
return Operation.Error(AppData.Exceptions.MappingException);
4443
}
4544

46-
return Operation.Error(AppData.Exceptions.MappingException);
45+
logger.LogInformation("New entity {@EventItem} successfully created", entity);
46+
return Operation.Result(mapped);
4747
}
4848

4949
var errorMessage = lastResult.Exception?.Message ?? "Something went wrong";

AspNetCore v9.0/Calabonga.Microservice.IdentityModule.Template/content/Calabonga.Microservice.IdentityModule.Web/Application/Messaging/EventItemMessages/Queries/UpdateEventItem.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
using AutoMapper;
2-
using Calabonga.Microservice.IdentityModule.Domain;
1+
using Calabonga.Microservice.IdentityModule.Domain;
32
using Calabonga.Microservice.IdentityModule.Domain.Base;
43
using Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.ViewModels;
54
using Calabonga.Microservices.Core;
65
using Calabonga.OperationResults;
76
using Calabonga.UnitOfWork;
8-
using MediatR;
7+
using Mediator;
98

109
namespace Calabonga.Microservice.IdentityModule.Web.Application.Messaging.EventItemMessages.Queries;
1110

@@ -16,10 +15,10 @@ public static class PutEventItem
1615
{
1716
public record Request(Guid Id, EventItemUpdateViewModel Model) : IRequest<Operation<EventItemViewModel, string>>;
1817

19-
public class Handler(IUnitOfWork unitOfWork, IMapper mapper)
18+
public class Handler(IUnitOfWork unitOfWork)
2019
: IRequestHandler<Request, Operation<EventItemViewModel, string>>
2120
{
22-
public async Task<Operation<EventItemViewModel, string>> Handle(Request eventItemRequest, CancellationToken cancellationToken)
21+
public async ValueTask<Operation<EventItemViewModel, string>> Handle(Request eventItemRequest, CancellationToken cancellationToken)
2322
{
2423
var repository = unitOfWork.GetRepository<EventItem>();
2524
var entity = await repository.GetFirstOrDefaultAsync(predicate: x => x.Id == eventItemRequest.Id, trackingType: TrackingType.Tracking);
@@ -28,15 +27,15 @@ public async Task<Operation<EventItemViewModel, string>> Handle(Request eventIte
2827
return Operation.Error(AppContracts.Exceptions.NotFoundException);
2928
}
3029

31-
mapper.Map(eventItemRequest.Model, entity);
30+
entity.MapUpdatesFrom(eventItemRequest.Model);
3231

3332
repository.Update(entity);
3433
await unitOfWork.SaveChangesAsync();
3534

3635
var lastResult = unitOfWork.Result;
3736
if (lastResult.Ok)
3837
{
39-
var mapped = mapper.Map<EventItem, EventItemViewModel>(entity);
38+
var mapped = entity.MapToViewModel();
4039
if (mapped is not null)
4140
{
4241
return Operation.Result(mapped);

0 commit comments

Comments
 (0)