private void btnContactUpdate_Click(object sender, EventArgs e) { XeroAPI xeroapi = new XeroAPI(api); Address userAddress = new Address(); userAddress.AddressType = AddressType.Street; userAddress.AddressLine1 = txtAddressLine1.Text; userAddress.AddressLine2 = txtAddressLine2.Text; userAddress.AddressLine3 = "line3"; userAddress.AddressLine4 = "line 4"; userAddress.City = txtSuburb.Text; userAddress.Region = txtState.Text; userAddress.PostalCode = txtPostCode.Text; userAddress.Country = "AUS"; userAddress.AttentionTo = "sample"; string contactId = txtContactId.Text; lblAddressUpdated.Text= "Address Updated " +(xeroapi.ContactUpdate(contactId, userAddress) ? "Successful":"Failed"); }
//Update Contact public bool ContactUpdate(string contactId, Address userAddress) { return UpdateContactAddress(contactId, userAddress); }
// Update Contact by Id private bool UpdateContactAddress(string contactId,Address address) { bool isUpdated = true; Contact result = new Contact(); try { result = _api.Contacts.Find(new Guid(contactId)); result.Addresses.Add(address); _api.Contacts.Update(result); } catch (Exception ex) { isUpdated = false; // throw ex; } return isUpdated; }
public Contact Convert(ContactViewModel contactViewModel) { Contact contact = new Contact(); Address address = new Address(); address.AddressLine1 = contactViewModel.address1; address.AddressLine2 = contactViewModel.address2; address.AddressLine3 = contactViewModel.address3; address.City = contactViewModel.city; address.PostalCode = contactViewModel.postalcode; address.Region = contactViewModel.region; if (contactViewModel.addressType == "STREET") { address.AddressType = AddressType.Street; } List<Address> addressList = new List<Address>(); addressList.Add(address); Phone phone = new Phone { PhoneType = Xero.Api.Core.Model.Types.PhoneType.Default, PhoneNumber = contactViewModel.phone }; Phone fax = new Phone { PhoneType = Xero.Api.Core.Model.Types.PhoneType.Fax, PhoneNumber = contactViewModel.faxNumber }; Phone mobile = new Phone { PhoneType = Xero.Api.Core.Model.Types.PhoneType.Mobile, PhoneNumber = contactViewModel.mobileNumber }; List<Phone> phones = new List<Phone>(); phones.Add(phone); phones.Add(fax); phones.Add(mobile); DateTime now = DateTime.Now; if (!(contactViewModel.contactName == null)) { string[] splitedContactPerson = contactViewModel.contactName.Split(' '); string contactPersonLastName; ContactPerson contactPerson = new ContactPerson(); if (splitedContactPerson.Count() > 0 && (!(string.IsNullOrEmpty(splitedContactPerson[0])))) { contactPerson.FirstName = splitedContactPerson[0]; if (splitedContactPerson.Count() > 1) { contactPersonLastName = ""; for (int i = 1; i < splitedContactPerson.Count(); i++) { contactPersonLastName += splitedContactPerson[i]; } contactPerson.LastName = contactPersonLastName; } } if (!(string.IsNullOrEmpty(contactPerson.FirstName))) { List<ContactPerson> contactPersonList = new List<ContactPerson>(); contactPersonList.Add(contactPerson); contact.ContactPersons = contactPersonList; } } if (String.IsNullOrEmpty(contactViewModel.defaultCurrency)) { contact.DefaultCurrency = "NZD"; } else { contact.DefaultCurrency = contactViewModel.defaultCurrency; } if (contactViewModel.isArchived == true) { contact.ContactStatus = ContactStatus.Archived; } else { contact.ContactStatus = ContactStatus.Active; } if (!(String.IsNullOrEmpty(contactViewModel.xeroContactId))) { contact.Id = Guid.Parse(contactViewModel.xeroContactId); } if (!(string.IsNullOrEmpty(contactViewModel.name.Trim()))) { contact.Name = contactViewModel.name; } else { if (!(string.IsNullOrEmpty(contactViewModel.accountNumber.Trim()))) { throw new ContactWithNoFNameSnameOrNameException("The name of contact with accountNumber " + contactViewModel.accountNumber + "is empty."); } else { throw new ContactWithNoFNameSnameOrNameException("The name of a contact can not be empty."); } } contact.AccountNumber = contactViewModel.accountNumber; contact.EmailAddress = contactViewModel.email; contact.FirstName = contactViewModel.fname; contact.LastName = contactViewModel.sname; contact.Addresses = addressList; contact.Phones = phones; contact.UpdatedDateUtc = now; return contact; }