コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }