public async Task <IActionResult> SendAddSerialEmail(SendAddSerialEmailRequest request) { var response = await mediator.Send(request); Log.Information($"User #{HttpContext.GetCurrentUserId()} sent add serial link to their email address"); return(this.CreateResponse(response)); }
public void SetUp() { user = new User(); user.Serials.Add(new Serial()); user.Serials.Add(new Serial()); user.IncreaseSerialsLimit(3); var generateAddSerialTokenResult = new GenerateAddSerialTokenResult { Email = Test, Token = Test, Username = Test }; var emailTemplate = new EmailTemplate { TemplateName = Test, Subject = Test, Content = Test, AllowedParameters = new[] { "{{username}}", "{{callbackUrl}}" } }; request = new SendAddSerialEmailRequest { Serial = Test }; serialService = new Mock <ISerialService>(); cryptoService = new Mock <ICryptoService>(); emailSender = new Mock <IEmailSender>(); userService = new Mock <IUserService>(); userTokenGenerator = new Mock <IUserTokenGenerator>(); emailTemplateGenerator = new Mock <IEmailTemplateGenerator>(); var httpContextReader = new Mock <IHttpContextReader>(); var configuration = new Mock <IConfiguration>(); serialService.Setup(ss => ss.SerialExists(It.IsAny <string>(), It.IsAny <int>())) .ReturnsAsync(false); userTokenGenerator.Setup(c => c.GenerateAddSerialToken()) .ReturnsAsync(generateAddSerialTokenResult); cryptoService.Setup(c => c.Encrypt(It.IsAny <string>())) .Returns(Test); configuration.Setup(c => c.GetSection(It.IsAny <string>())) .Returns(new Mock <IConfigurationSection>().Object); emailTemplateGenerator.Setup(etg => etg.FindEmailTemplate(It.IsAny <string>())) .ReturnsAsync(emailTemplate); emailSender.Setup(es => es.Send(It.IsAny <EmailMessage>())) .ReturnsAsync(true); userService.Setup(us => us.GetUserWithSerials(It.IsAny <int>())) .ReturnsAsync(user); sendAddSerialEmailCommand = new SendAddSerialEmailCommand(serialService.Object, userService.Object, cryptoService.Object, emailSender.Object, userTokenGenerator.Object, emailTemplateGenerator.Object, httpContextReader.Object, configuration.Object); }