Я пытаюсь избежать сценария «жирного контроллера».
Существует много примеров, когда контроллеры вызывают один API, но что, если вашему контроллеру нужно вызвать два или более API?
Как вы упростите такой сценарий?Кажется, должен быть более чистый путь:
private ServiceTwo serviceTwo = new ServiceTwo();
private MailService mailService = new MailService();
[HttpPost]
public async Task<ActionResult> Index(Customer formData)
{
if (!ModelState.IsValid)
{
return View();
}
var apiOneService = new ApiOneService(formData);
if (apiOneService.ExistingUserCheck())
{
ModelState.AddModelError("Email", "* Email address already exists.");
return View(formData);
}
var apiTwoResult = serviceTwo.CreateTrial(formData);
var emailResult = await mailService.SendMailAsync((formData));
return RedirectToAction("Index", "TrialConfirmation");
}