private void ProcessAtivitiesByMember(IOrganizationService service, List <find_metricdetails> metricDetailsList, FuncLibrary aux, ApiRoot root, string server, Campaign campaign, find_metric metric, ITracingService tracing) { bool anyUpdate = false; foreach (find_metricdetails metricDetails in metricDetailsList) { int numOpens = 0, numClicks = 0; string md5mail = aux.GetMailMd(GetMailFromMember(service, metricDetails)); DateTime?lastUpdate = GetLastUpdateByMetricDetail(service, metricDetails); List <Class.Reports.Activity> activitiesList = GetlastActivityByMetricDetail(root, server, campaign, md5mail).Activity; if (activitiesList.Count != 0 && lastUpdate == null) { ProcessAtivities(service, metricDetails, numOpens, numClicks, activitiesList, tracing); anyUpdate = true; } else if (activitiesList.Count != 0 && GetDateTimeFromLastActivity(activitiesList, (DateTime)lastUpdate).Count != 0) { ProcessAtivities(service, metricDetails, numOpens, numClicks, GetDateTimeFromLastActivity(activitiesList, (DateTime)lastUpdate), tracing); anyUpdate = true; } UpdateOpensAndClicksMetricDetails(service, metricDetails, numOpens, numClicks); } if (anyUpdate) { UpdateMetric(service, root, server, campaign, metric); } }
private void SyncMemberTypeToMailChimp(IOrganizationService service, EntityReference memberId, List list, ApiRoot root, string server, find_marketingautomationintegration mailChimpAccount, FuncLibrary aux) { string mail = "", sub = ""; switch (memberId.LogicalName) { case "account": Account account = service.Retrieve(memberId.LogicalName, memberId.Id, new ColumnSet("emailaddress1", "find_sub")).ToEntity <Account>(); mail = account.EMailAddress1; sub = account.find_Sub.ToString(); break; case "contact": Contact contact = service.Retrieve(memberId.LogicalName, memberId.Id, new ColumnSet("emailaddress1", "find_sub")).ToEntity <Contact>(); mail = contact.EMailAddress1; sub = contact.find_Sub.ToString(); break; case "lead": Lead lead = service.Retrieve(memberId.LogicalName, memberId.Id, new ColumnSet("emailaddress1", "find_sub")).ToEntity <Lead>(); mail = lead.EMailAddress1; sub = lead.find_Sub.ToString(); break; } if (CheckIfMemberIsMailChimp(root, server, mailChimpAccount.find_MailchimpListId, aux.GetMailMd(mail))) { PutMemberToMailChimp(root, server, mailChimpAccount.find_MailchimpListId, aux.GetMailMd(mail), list, mail); } else { PostMemberToMailChimp(root, server, mailChimpAccount.find_MailchimpListId, mail, sub, list); } }