示例#1
0
        public IEnumerable <PBIOfflineInteraction> GetAllInteractions()
        {
            using (XConnectClient client = GetClient())
            {
                IAsyncQueryable <Sitecore.XConnect.Interaction> query = client.Interactions
                                                                        .WithExpandOptions(new InteractionExpandOptions(FaceApiFacet.DefaultFacetKey, WebVisit.DefaultFacetKey)
                {
                    Contact = new RelatedContactExpandOptions(PersonalInformation.DefaultFacetKey)
                });

                SearchResults <Interaction> results = Task.Run(async() => await query.ToSearchResults()).Result;

                List <Interaction> interactions = results.Results.Select(x => x.Item).ToList().Result;

                foreach (Interaction interaction in interactions)
                {
                    var contact = interaction.Contact as Contact;
                    var face    = interaction.GetFacet <FaceApiFacet>(FaceApiFacet.DefaultFacetKey);

                    var offlineInteraction = new PBIOfflineInteraction
                    {
                        Id             = interaction.Id.ToString(),
                        ContactId      = contact?.Id.ToString(),
                        StartTime      = interaction.StartDateTime,
                        EndTime        = interaction.EndDateTime,
                        EngagmentValue = interaction.EngagementValue,
                        Channel        = this.GetChannelName(interaction.ChannelId),
                        Goals          = interaction.Events.Select(e => e.Text).ToList()
                    };

                    if (face != null)
                    {
                        offlineInteraction.HasFaceInfo    = true;
                        offlineInteraction.HappinessValue = face.HappinessValue;
                        offlineInteraction.SmileValue     = face.SmileValue;
                        offlineInteraction.AngerValue     = face.AngerValue;
                        offlineInteraction.SurpriseValue  = face.SurpriseValue;
                        offlineInteraction.SadnessValue   = face.SadnessValue;
                        offlineInteraction.FearValue      = face.FearValue;
                        offlineInteraction.DisgustValue   = face.DisgustValue;
                        offlineInteraction.ContemptValue  = face.ContemptValue;
                        offlineInteraction.NeutralValue   = face.NeutralValue;
                    }
                    yield return(offlineInteraction);
                }
            }
        }
示例#2
0
        public IEnumerable <ContactViewModel> GetContacts(string identificationSource)
        {
            using (XConnectClient client = GetClient())
            {
                IAsyncQueryable <Sitecore.XConnect.Contact> query = client.Contacts
                                                                    .Where(c => c.Identifiers.Any(s => s.Source == identificationSource));

                SearchResults <Contact> results;
                results = Task.Run(async() => await query.ToSearchResults()).Result;

                List <Contact> contacts = results.Results.Select(x => x.Item).ToList().Result;

                foreach (Contact contact in contacts)
                {
                    yield return(GetContact(identificationSource, contact.Identifiers.First(i => i.Source == identificationSource).Identifier));
                }
            }
        }