Exemple #1
0
        public ContactViewModel TestClient()
        {
            var identifier = "test19";
            var source     = "test";

            var testContact = GetContact(source, identifier);

            if (testContact == null)
            {
                var contact = new ImageProcessingContact();

                contact.FirstName = "Test";
                contact.LastName  = "Last";
                contact.Id        = identifier + "_" + identifier;
                contact.Age       = 30;
                contact.Gender    = "Male";
                contact.Company   = "Brimit";

                this.AddContact(source, identifier, contact);

                this.RegisterOfflineInteraction(source, identifier, new FaceApiFacet()
                {
                    HappinessValue = 1, SmileValue = 1
                });

                this.SetEmail(source, identifier, identifier + "@mail.com");
            }

            return(GetContact(source, identifier));
        }
Exemple #2
0
        private void UpdateContact(object sender, ActiveVisitorChangedEventArgs e)
        {
            ImageProcessingContact c = e.ImageProcessingContact;

            ActiveVisitorHub.Change(c);

            Xservice xservice = new Xservice();

            var contact = xservice.GetContact(Settings.FaceApiIdentificationSource, c.Id);

            if (contact == null)
            {
                xservice.AddContact(Settings.FaceApiIdentificationSource, c.Id, c);

                var faceApiFacet = new FaceApiFacet
                {
                    NeutralValue   = c.Neutral,
                    HappinessValue = c.Happiness,
                    SmileValue     = c.Smile,
                    AngerValue     = c.Anger,
                    SurpriseValue  = c.Surprise,
                    SadnessValue   = c.Sadness,
                    FearValue      = c.Fear,
                    DisgustValue   = c.Disgust,
                    ContemptValue  = c.Contempt
                };

                xservice.RegisterOfflineInteraction(Settings.FaceApiIdentificationSource, c.Id, faceApiFacet);
            }
        }
Exemple #3
0
        public static void Set(ImageProcessingContact imageProcessingContact)
        {
            bool changed = contact != imageProcessingContact;

            contact = imageProcessingContact;

            if (changed)
            {
                if (VisitorChanged != null)
                {
                    VisitorChanged("", new ActiveVisitorChangedEventArgs(contact));
                }
            }

            if (VisitorUpdated != null)
            {
                VisitorUpdated("", new ActiveVisitorChangedEventArgs(contact));
            }
        }
Exemple #4
0
        public void AddContact(string source, string identifier, ImageProcessingContact data)
        {
            using (XConnectClient client = GetClient())
            {
                try
                {
                    // Get a known contact
                    IdentifiedContactReference reference = new IdentifiedContactReference(source, identifier);

                    Contact existingContact = client.Get <Contact>(
                        reference,
                        new ContactExpandOptions(PersonalInformation.DefaultFacetKey, CvPersonFacet.DefaultFacetKey, Avatar.DefaultFacetKey));

                    if (existingContact != null)
                    {
                        return;
                    }

                    var contactIdentifier = new[]
                    {
                        new ContactIdentifier(source, identifier, ContactIdentifierType.Known)
                    };

                    Contact contact = new Contact(contactIdentifier);

                    PersonalInformation personalInformation = new PersonalInformation
                    {
                        FirstName = data.FirstName,
                        LastName  = data.LastName,
                        Gender    = data.Gender
                    };

                    CvPersonFacet cvPersonFacet = new CvPersonFacet
                    {
                        Id        = data.Id,
                        Age       = data.Age,
                        Company   = data.Company,
                        FirstName = data.FirstName,
                        LastName  = data.LastName,
                        Photo     = data.Photo48,
                        Gender    = data.Gender
                    };
                    if (!string.IsNullOrWhiteSpace(data.ParsedText))
                    {
                        cvPersonFacet.BadgeText = data.ParsedText
                                                  .Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                                                  .Select(s => s.Trim())
                                                  .ToList();
                    }

                    Avatar avatarFacet = new Avatar(string.Empty, new byte[] { });
                    if (data.Photo48 != null)
                    {
                        avatarFacet.MimeType = "image/jpg";
                        avatarFacet.Picture  = Convert.FromBase64String(data.Photo48);
                    }

                    client.SetFacet <Avatar>(contact, Avatar.DefaultFacetKey, avatarFacet);
                    client.SetFacet <PersonalInformation>(contact, PersonalInformation.DefaultFacetKey, personalInformation);
                    client.SetFacet <CvPersonFacet>(contact, CvPersonFacet.DefaultFacetKey, cvPersonFacet);

                    client.AddContact(contact);

                    client.Submit();
                }
                catch (Sitecore.XConnect.XdbExecutionException ex)
                {
                }
            }
        }
Exemple #5
0
 public ActiveVisitorChangedEventArgs(ImageProcessingContact imageProcessingContact)
 {
     this.ImageProcessingContact = imageProcessingContact;
 }
Exemple #6
0
 public void Hello(ImageProcessingContact contact)
 {
     Clients.All.hello(contact);
 }
Exemple #7
0
 public static void Change(ImageProcessingContact contact)
 {
     _hubContext.Clients.All.hello(contact);
 }