Skip to content

Instantly share code, notes, and snippets.

View lakshithacodes's full-sized avatar

Lakshitha Fernando lakshithacodes

View GitHub Profile
@lakshithacodes
lakshithacodes / CustomerController.cs
Created May 30, 2021 07:51
CustomerController- CQRS with MediatR
[HttpGet]
[Route("get-all")]
public async Task<List<AllCustomerQueryResponseModel>> GetAllCustomerAsync(AllCustomerQueryRequestModel requestModel)
{
try
{
return await mediator.Send(requestModel);
}
catch
{
@lakshithacodes
lakshithacodes / AllCustomerQueryHandler.cs
Created May 30, 2021 07:46
AllCustomerQueryHandler -CQRS with MediatR
public class AllCustomerQueryHandler : IRequestHandler<AllCustomerQueryRequestModel, List<AllCustomerQueryResponseModel>>
{
private readonly CustomerDbContext context;
public AllCustomerQueryHandler(CustomerDbContext context)
{
this.context = context;
}
public async Task<List<AllCustomerQueryResponseModel>> Handle(AllCustomerQueryRequestModel request,
@lakshithacodes
lakshithacodes / AllCustomerQueryResponseModel.cs
Created May 30, 2021 07:38
AllCustomerQueryResponseModel - CQRS with MediatR
public class AllCustomerQueryResponseModel
{
public int CustomerId { get; set; }
public string Name { get; set; }
public string City { get; set; }
public int LoyaltyPoints { get; set; }
}
@lakshithacodes
lakshithacodes / CustomerController.cs
Created May 30, 2021 06:50
CustomerController - CQRS with MediatR
[Route("api/[controller]")]
[ApiController]
public class CustomerController : ControllerBase
{
private readonly IMediator mediator;
public CustomerController(IMediator mediator)
{
this.mediator = mediator;
}
@lakshithacodes
lakshithacodes / SaveCustomerCommandHandler.cs
Last active May 30, 2021 06:17
SaveCustomerCommandHandler - CQRS with MediatR
public class SaveCustomerCommandHandler : IRequestHandler<SaveCustomerRequestModel, Unit>
{
private readonly CustomerDbContext context;
public SaveCustomerCommandHandler(CustomerDbContext context)
{
this.context = context;
}
public async Task<Unit> Handle(SaveCustomerRequestModel saveCustomerRequestModel,
CancellationToken cancellationToken)
@lakshithacodes
lakshithacodes / SaveCustomerRequestModel.cs
Created May 30, 2021 06:08
SaveCustomerRequestModel for CQRS with MediatR
namespace CQRSwithMediatR.RequestModels.CommandRequests
{
public class SaveCustomerRequestModel : IRequest
{
public string Title { get; set; }
public string Name { get; set; }
public string City { get; set; }
public int LoyaltyPoints { get; set; }
}
}
@lakshithacodes
lakshithacodes / CustomerController.cs
Last active April 27, 2021 12:18
customer-id end point
[HttpGet]
[Route("customer-id")]
[ProducesResponseType(typeof(CustomerIdQueryResponseModel),StatusCodes.Status200OK)]
public async Task<IActionResult> GetCustomerAsync([FromQuery] CustomerIdQueryRequestModel model)
{
try
{
var result = await this.customerIdQueryHandler.GetCustomerAsync(model);
if (result != null)
@lakshithacodes
lakshithacodes / CustomerIdQueryHandler.cs
Created April 27, 2021 12:11
Customer Id QueryHandler
namespace CustomerManagement.Handlers.QueryHandler
{
public class CustomerIdQueryHandler : ICustomerIdQueryHandler
{
private readonly CustomerDbContext context;
public CustomerIdQueryHandler(CustomerDbContext context)
{
this.context = context;
}
public async Task<CustomerIdQueryResponseModel> GetCustomerAsync(CustomerIdQueryRequestModel requestModel)
@lakshithacodes
lakshithacodes / ICustomerIdQueryHandler.cs
Created April 27, 2021 12:09
ICustomer Query Handler
namespace CustomerManagement.Contracts.QueryHandlers
{
public interface ICustomerIdQueryHandler
{
Task<CustomerIdQueryResponseModel> GetCustomerAsync(CustomerIdQueryRequestModel requestModel);
}
}
@lakshithacodes
lakshithacodes / CustomerIdQueryRequestModel.cs
Created April 27, 2021 11:06
Customer Id request model
namespace CustomerManagement.RequestModels.QueryRequests
{
public class CustomerIdQueryRequestModel
{
public int CustomerId { get; set; }
}
}