// Token: 0x06001CB9 RID: 7353 RVA: 0x00073270 File Offset: 0x00071470
        private List <Persona> GetPersonalContactPersonas(string result, out List <string> galLinksToRemove)
        {
            galLinksToRemove = new List <string>();
            Dictionary <string, PeopleSpeechPersonObject> personalContactPersons = FindPeopleSpeechRecognitionResultHandler.RetrieveUniquePersonalContactsFromXML(result, galLinksToRemove);
            List <Persona> personas = new List <Persona>(personalContactPersons.Count);

            if (personalContactPersons.Count > 0)
            {
                CallContext callContext = null;
                try
                {
                    callContext = FindPeopleSpeechRecognitionResultHandler.CreateAndSetCallContext(this.httpContext);
                    this.userContext.LockAndReconnectMailboxSession(3000);
                    ExchangeVersion.ExecuteWithSpecifiedVersion(ExchangeVersion.Exchange2012, delegate
                    {
                        ExTraceGlobals.SpeechRecognitionTracer.TraceDebug <int>((long)this.GetHashCode(), "Creating Personas from Person Id, PersonId count:{0}", personalContactPersons.Count);
                        foreach (string text in personalContactPersons.Keys)
                        {
                            PersonId personId        = PersonId.Create(text);
                            ItemId personaId         = IdConverter.PersonaIdFromPersonId(this.userContext.MailboxSession.MailboxGuid, personId);
                            Persona persona          = Persona.LoadFromPersonaId(this.userContext.MailboxSession, null, personaId, FindPeopleSpeechRecognitionResultHandler.DefaultPersonaShape, null, null);
                            persona.SpeechConfidence = personalContactPersons[text].Confidence;
                            personas.Add(persona);
                        }
                        ExTraceGlobals.SpeechRecognitionTracer.TraceDebug <int>((long)this.GetHashCode(), "Created Personas from Person Id, PersonId count:{0}", personalContactPersons.Count);
                    });
                }
                finally
                {
                    if (this.userContext.MailboxSessionLockedByCurrentThread())
                    {
                        this.userContext.UnlockAndDisconnectMailboxSession();
                    }
                    FindPeopleSpeechRecognitionResultHandler.DisposeContext(callContext);
                }
            }
            return(personas);
        }
コード例 #2
0
        public int Compare(IStorePropertyBag x, IStorePropertyBag y)
        {
            if (object.ReferenceEquals(x, y))
            {
                return(0);
            }
            if (x == null)
            {
                return(-1);
            }
            if (y == null)
            {
                return(1);
            }
            PersonId valueOrDefault  = x.GetValueOrDefault <PersonId>(ContactSchema.PersonId, PersonId.Create(Guid.Empty.ToByteArray()));
            PersonId valueOrDefault2 = y.GetValueOrDefault <PersonId>(ContactSchema.PersonId, PersonId.Create(Guid.Empty.ToByteArray()));

            return(valueOrDefault.ToBase64String().CompareTo(valueOrDefault2.ToBase64String()));
        }