public static void GenerateContactMessageEvents(Job job, MessageContactEvents events) { var startStatus = job.Status; var messageItem = events.MessageItem; var hostName = messageItem.ManagerRoot.Settings.BaseURL; var whoIsInformation = events.GeoData; var userAgent = events.UserAgent; var landingPageUrl = events.LandingPageUrl; var contactId = events.ContactId; foreach (var messageEvent in events.Events) { job.Status = startStatus + $" - {messageEvent.EventType}"; GenerateHandlerEvent(hostName, contactId, messageItem, messageEvent.EventType, messageEvent.EventTime, userAgent, whoIsInformation, landingPageUrl); } }
public MessageContactEvents CreateRandomContactMessageEvents(Contact contactData, Funnel funnel, MessageItem messageItem) { var messageContactEvents = new MessageContactEvents(); var events = new List <MessageContactEvent>(); messageContactEvents.Events = events; messageContactEvents.MessageItem = messageItem; var randomCity = GetRandomCity(); messageContactEvents.GeoData = randomCity.ToWhoIsInformation(); messageContactEvents.UserAgent = GetRandomUserAgent(randomCity); if (!contactData.Id.HasValue) { return(messageContactEvents); } //var contact = _contactRepository.GetContact(contactData.Id.Value); //if (contact == null) //{ // return messageContactEvents; //} messageContactEvents.ContactId = contactData.Id.Value; if (RandomizeBounceEvent(funnel)) { events.Add(new MessageContactEvent { EventTime = messageItem.StartTime, EventType = EventType.Bounce }); } else { var eventTime = GetRandomEventTime(messageItem); if (RandomizeOpenEvent(funnel)) { AddEventDelay(ref eventTime); events.Add(new MessageContactEvent { EventType = EventType.Open, EventTime = eventTime }); if (RandomizeClickEvent(funnel)) { AddEventDelay(ref eventTime); messageContactEvents.LandingPageUrl = GetRandomLandingPageUrl(messageItem); events.Add(new MessageContactEvent { EventType = EventType.Click, EventTime = eventTime }); } } if (RandomizeSpamComplaintEvent(funnel, events)) { AddEventDelay(ref eventTime); events.Add(new MessageContactEvent { EventType = EventType.SpamComplaint, EventTime = eventTime }); } if (RandomizeUnsubscribeEvent(funnel)) { AddEventDelay(ref eventTime); if (RandomizeUnsubscribeAllEvent(funnel)) { events.Add(new MessageContactEvent { EventType = EventType.UnsubscribeFromAll, EventTime = eventTime }); } else { events.Add(new MessageContactEvent { EventType = EventType.Unsubscribe, EventTime = eventTime }); } } } return(messageContactEvents); }