public async Task <IActionResult> AddEmailAccount([FromBody] CreateEmailAccount command) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (await _emailAccountService.ExistsByEmailAndUserIdAsync(UserId, command.Email)) { ModelState.AddModelError("Email", "Email address is already taken."); return(BadRequest(ModelState)); } try { await _emailAccountService.CreateAsync(UserId, command.Email, command.Password, command.ImapHost, command.ImapPort, command.SmtpHost, command.SmtpPort); return(StatusCode(201)); } catch (Exception e) { return(BadRequest(e.Message)); } }