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());
        }
Exemple #2
0
        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));
        }