private void CreateContactAsync(string account, IMAddressInfoType network, Guid abId, CreateContactCompletedEventHandler callback) { if (NSMessageHandler.MSNTicket == MSNTicket.Empty || AddressBook == null) { OnServiceOperationFailed(this, new ServiceOperationFailedEventArgs("CreateContact", new MSNPSharpException("You don't have access right on this action anymore."))); return; } CreateContactType request = new CreateContactType(); if (network == IMAddressInfoType.Telephone) { contactInfoType contactInfo = new contactInfoType(); contactPhoneType cpt = new contactPhoneType(); cpt.contactPhoneType1 = ContactPhoneTypes.ContactPhoneMobile; cpt.number = account; contactInfo.phones = new contactPhoneType[] { cpt }; request.contactInfo = contactInfo; } else { contactHandleType contactHandle = new contactHandleType(); contactHandle.Email = account; contactHandle.Cid = 0; contactHandle.Puid = 0; contactHandle.CircleId = WebServiceConstants.MessengerIndividualAddressBookId; request.contactHandle = contactHandle; } if (abId != Guid.Empty) { abHandleType abHandle = new abHandleType(); abHandle.ABId = abId.ToString("D").ToLowerInvariant(); abHandle.Puid = 0; abHandle.Cid = 0; request.abHandle = abHandle; } MsnServiceState createContactObject = new MsnServiceState(abId == Guid.Empty ? PartnerScenario.ContactSave : PartnerScenario.CircleSave, "CreateContact", true); ABServiceBinding abService = (ABServiceBinding)CreateService(MsnServiceType.AB, createContactObject); abService.CreateContactCompleted += delegate(object service, CreateContactCompletedEventArgs e) { OnAfterCompleted(new ServiceOperationEventArgs(abService, MsnServiceType.AB, e)); if (e.Cancelled || NSMessageHandler.MSNTicket == MSNTicket.Empty) return; if (callback != null) { callback(service, e); } }; RunAsyncMethod(new BeforeRunAsyncMethodEventArgs(abService, MsnServiceType.AB, createContactObject, request)); }
private void CreateContactAsync(string account, IMAddressInfoType network, Guid abId, CreateContactCompletedEventHandler callback) { if (NSMessageHandler.MSNTicket == MSNTicket.Empty || AddressBook == null) { OnServiceOperationFailed(this, new ServiceOperationFailedEventArgs("CreateContact", new MSNPSharpException("You don't have access right on this action anymore."))); return; } CreateContactType request = new CreateContactType(); if (network == IMAddressInfoType.Telephone) { contactInfoType contactInfo = new contactInfoType(); contactPhoneType cpt = new contactPhoneType(); cpt.contactPhoneType1 = ContactPhoneTypes.ContactPhoneMobile; cpt.number = account; contactInfo.phones = new contactPhoneType[] { cpt }; request.contactInfo = contactInfo; } else { contactHandleType contactHandle = new contactHandleType(); contactHandle.Email = account; contactHandle.Cid = 0; contactHandle.Puid = 0; contactHandle.CircleId = WebServiceConstants.MessengerIndividualAddressBookId; request.contactHandle = contactHandle; } if (abId != Guid.Empty) { abHandleType abHandle = new abHandleType(); abHandle.ABId = abId.ToString("D").ToLowerInvariant(); abHandle.Puid = 0; abHandle.Cid = 0; request.abHandle = abHandle; } MsnServiceState createContactObject = new MsnServiceState(abId == Guid.Empty ? PartnerScenario.ContactSave : PartnerScenario.CircleSave, "CreateContact", true); ABServiceBinding abService = (ABServiceBinding)CreateService(MsnServiceType.AB, createContactObject); abService.CreateContactCompleted += delegate(object service, CreateContactCompletedEventArgs e) { OnAfterCompleted(new ServiceOperationEventArgs(abService, MsnServiceType.AB, e)); if (e.Cancelled || NSMessageHandler.MSNTicket == MSNTicket.Empty) { return; } if (callback != null) { callback(service, e); } }; RunAsyncMethod(new BeforeRunAsyncMethodEventArgs(abService, MsnServiceType.AB, createContactObject, request)); }