using AutoMapper; using Dapper; using EnvelopeGenerator.Application.Contracts.SQLExecutor; using EnvelopeGenerator.Domain.Entities; using MediatR; using Microsoft.Data.SqlClient; namespace EnvelopeGenerator.Application.Envelopes.Commands; /// /// /// public class CreateEnvelopeCommandHandler : IRequestHandler { private readonly ISQLExecutor _sqlExecutor; private readonly IMapper _mapper; /// /// /// /// /// public CreateEnvelopeCommandHandler(ISQLExecutor sqlExecutor, IMapper mapper) { _sqlExecutor = sqlExecutor; _mapper = mapper; } /// /// /// /// /// /// public async Task Handle(CreateEnvelopeCommand request, CancellationToken cancellationToken) { var parameters = new DynamicParameters(); parameters.Add("@UserId", request.UserId); parameters.Add("@Title", request.Title); parameters.Add("@TfaEnabled", request.TFAEnabled ? 1 : 0); parameters.Add("@Message", request.Message); var envelopes = await _sqlExecutor.Execute(parameters, cancellationToken); return _mapper.Map(envelopes.FirstOrDefault()); } }