using DigitalData.Core.DTO; using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; using Microsoft.AspNetCore.Mvc; using System.Net; namespace EnvelopeGenerator.Web.Controllers.Test { [ApiController] [Route("api/test/[controller]")] public class TestEnvelopeMailController : ControllerBase { private readonly ILogger _logger; private readonly IEnvelopeMailService _mailService; private readonly IEnvelopeReceiverService _envRcvService; public TestEnvelopeMailController(ILogger logger, IEnvelopeMailService envelopeMailService, IEnvelopeReceiverService envelopeReceiverService) { _logger = logger; _mailService = envelopeMailService; _envRcvService = envelopeReceiverService; } [HttpGet] public async Task SendAccessCode([FromQuery] string envelopeReceiverId = "ZDlmYjZmYjctNTBhNS00NTcyLWI5NTQtYzJjYmY4N2UwZmZhOjowRDI3MkEwNTdGMjRBMkY3MEZDMzM3QkRBQzA1MjYxRjU3NTI2QzgxQ0IyMUE5NzE1RjA1NTJFQzdFNjIwNjY1") { return await _envRcvService.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId: envelopeReceiverId).ThenAsync( SuccessAsync: async er => { var mailRes = await _mailService.SendAccessCodeAsync(envelopeReceiverDto: er); if (mailRes.IsFailed) { _logger.LogNotice(mailRes); return StatusCode(500, mailRes.Notices); } return Ok(); }, Fail: (messages, notices) => { _logger.LogNotice(notices); return StatusCode(500, notices); }); } } }