45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
using Hutopy.Application.Common.Interfaces;
|
|
using Hutopy.Domain.Entities;
|
|
|
|
namespace Hutopy.Application.FutureCreators.Commands;
|
|
|
|
public record CreateFutureCreatorCommand : IRequest<int>
|
|
{
|
|
public required string FirstName { get; init; }
|
|
public required string LastName { get; init; }
|
|
public required string EmailAddress { get; init; }
|
|
public required string PhoneNumber { get; init; }
|
|
public required string SocialNetworkAccount { get; init; }
|
|
public required string ReasonToJoin { get; init; }
|
|
}
|
|
|
|
public class CreateFuturCreatorCommandHandler : IRequestHandler<CreateFutureCreatorCommand, int>
|
|
{
|
|
private readonly IApplicationDbContext _context;
|
|
|
|
|
|
public CreateFuturCreatorCommandHandler(IApplicationDbContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public async Task<int> Handle(CreateFutureCreatorCommand request, CancellationToken cancellationToken)
|
|
{
|
|
var entity = new FutureCreator
|
|
{
|
|
FirstName = request.FirstName,
|
|
LastName = request.LastName,
|
|
EmailAddress = request.EmailAddress,
|
|
PhoneNumber = request.PhoneNumber,
|
|
SocialNetworkAccount = request.SocialNetworkAccount,
|
|
ReasonToJoin = request.ReasonToJoin,
|
|
};
|
|
|
|
_context.FutureCreators.Add(entity);
|
|
|
|
await _context.SaveChangesAsync(cancellationToken);
|
|
|
|
return entity.Id;
|
|
}
|
|
}
|