public async Task <IActionResult> Parse([FromBody] CreateInboundEmailCommand createInboundEmailCommand) { var @event = new AgentInboundEmailTrackedIntegrationEvent() { Body = createInboundEmailCommand.Text, PlainText = createInboundEmailCommand.Plain, CustomerEmail = createInboundEmailCommand.From, AgentEmail = createInboundEmailCommand.To, Subject = createInboundEmailCommand.Subject }; //This will trigger event in Agent Api to send a autorespondar _eventBus.Publish(@event); return((IActionResult)Ok()); }
public IActionResult Tracked() { var aggregateId = Guid.NewGuid().ToString(); var @event = new AgentInboundEmailTrackedIntegrationEvent() { Body = Request.Form["html"], PlainText = Request.Form["plain"], OrganizationEmail = Request.Form["envelope[from]"], AgentEmail = Request.Form["envelope[to]"], Subject = $"{Request.Form["headers[Subject]"]}", AggregateId = aggregateId }; if (@event.Subject.Contains(":::::")) { var usePlainText = @event.Subject.Split(":::::")[2]; var emailNeedsToBeSent = new EmailNeedsToBeSentIntegrationEvent { Body = usePlainText.Equals("useplaintext", StringComparison.InvariantCultureIgnoreCase) ? @event.PlainText : @event.Body, IsBodyHtml = usePlainText.Equals("useplaintext", StringComparison.InvariantCultureIgnoreCase) ? true : false, Subject = @event.Subject, FromEmail = "*****@*****.**", FromName = "Ilias Hossain", To = new[] { @event.Subject.Split(":::::")[1] }, AggregateId = Guid.NewGuid().ToString(), DisableClickTracking = true, DisableOpenTracking = true }; _eventBus.Publish(emailNeedsToBeSent); } else { //This will trigger event in Agent Api to send a autorespondar _eventBus.Publish(@event); } return((IActionResult)Ok(@event)); }