public async Task Send(BulkEmailDto dto) { using (var tokenResponse = await HttpHelper.SendRequest(HttpMethod.Post, _smartMail.AuthApiUrl, null, new { username = _smartMail.Email, password = _smartMail.Password })) { var tokenResult = await tokenResponse.Content.ReadAsStringAsync(); var tokenData = JsonConvert.DeserializeObject <SmartMailUserAuthentication>(tokenResult); _token = tokenData.AccessToken; var logs = new List <EmailLog>(); foreach (var item in dto.Mails) { var log = new EmailLog { AppId = dto.AppId, CustomerId = dto.CustomerId, RecipientName = item.RecipientName, Email = item.RecipientEmail, Message = item.Message, Subject = item.Subject, StatusCode = 200 }; try { var messageHTML = generateMailBody(item.RecipientName, item.Message); var content = new EmailContentDto(item.RecipientEmail, item.Subject, messageHTML); using (var mailResponse = await HttpHelper.SendRequest(HttpMethod.Post, _smartMail.SendEmailApiUrl, tokenData.AccessToken, content)) { if (!mailResponse.IsSuccessStatusCode) { log.StatusCode = (int)mailResponse.StatusCode; log.ExceptionMessage = await mailResponse.Content.ReadAsStringAsync(); } } } catch (Exception ex) { log.StatusCode = 400; log.ExceptionMessage = ex.ToString(); } logs.Add(log); } await _repository.Insert(logs); } }
public async Task <IActionResult> Post([FromBody] BulkEmailDto dto) { await _service.Send(dto); return(Ok()); }