private void SaveCircleInverseInfo(CircleInverseInfoType[] inverseInfoList) { if (inverseInfoList != null) { foreach (CircleInverseInfoType circle in inverseInfoList) { string lowerId = circle.Content.Handle.Id.ToLowerInvariant(); lock (CircleResults) { CircleResults[lowerId] = circle; } } } }
/// <summary> /// Create a circle. /// </summary> /// <param name="me"></param> /// <param name="inverseInfo"></param> /// <returns></returns> private Contact CreateCircle(ContactType me, CircleInverseInfoType inverseInfo) { if (me == null || me.contactInfo == null) { Trace.WriteLineIf(Settings.TraceSwitch.TraceVerbose, "[CreateCircle] Cannot create circle since Me not found in addressbook."); return null; } if (inverseInfo == null || inverseInfo.PersonalInfo == null || inverseInfo.Content == null || inverseInfo.Content.Info == null || inverseInfo.Content.Handle == null) { Trace.WriteLineIf(Settings.TraceSwitch.TraceVerbose, "[CreateCircle] Cannot create circle since inverse info not found in circle result list."); return null; } string circleMail = inverseInfo.Content.Handle.Id.ToLowerInvariant() + "@" + inverseInfo.Content.Info.HostedDomain.ToLowerInvariant(); Contact circle = NSMessageHandler.ContactList.GetContactWithCreate(circleMail, IMAddressInfoType.Circle); circle.SetCircleInfo(inverseInfo, me); return circle; }
protected internal void SetCircleInfo(CircleInverseInfoType circleInfo, ContactType me) { MeContact = me; CID = me.contactInfo.CID; this.circleInfo = circleInfo; HostDomain = circleInfo.Content.Info.HostedDomain.ToLowerInvariant(); CircleRole = circleInfo.PersonalInfo.MembershipInfo.CirclePersonalMembership.Role; SetName(circleInfo.Content.Info.DisplayName); SetNickName(Name); contactList = new ContactList(AddressBookId, new Owner(AddressBookId, me.contactInfo.passportName, me.contactInfo.CID, NSMessageHandler), this, NSMessageHandler); Lists = RoleLists.Allow | RoleLists.Forward; }