/// <summary> /// /// </summary> /// <param name="command"></param> /// <param name="currentNode">A C element under either New or Update element.</param> protected override void AddContentToCommand(SyncMLUpdateBase command, XElement currentNode) { if (command == null) { Trace.TraceWarning("Hey, you bad. Null command."); return; } if (currentNode == null) { Trace.TraceWarning("Hey, r u crazy? giving me null currentNode."); return; } if (useBase64) { SyncMLItem item = SyncMLItem.Create(); item.Source.LocURI.Content = currentNode.Attribute("ID").Value; item.Meta.Xml.Add(FormatOfBase64); item.Meta.Xml.Add(TypeOfText); UTF8Encoding byteConverter = new UTF8Encoding(); byte[] buffer = byteConverter.GetBytes(VCardWriter.WriteToString(VCardSIFC.ConvertSifCToVCard(currentNode.Element("contact")))); item.Data.Content = Convert.ToBase64String(buffer); command.ItemCollection.Add(item); } else { SyncMLItem item = SyncMLItem.Create(); item.Source.LocURI.Content = currentNode.Attribute("ID").Value; item.Meta.Xml.Add(xVcardType); item.Data.Content = VCardWriter.WriteToString(VCardSIFC.ConvertSifCToVCard(currentNode.Element("contact"))); command.ItemCollection.Add(item); } }
/// <summary> /// Get contact data as vCard. /// </summary> /// <param name="contactItem"></param> /// <returns></returns> protected override string GetItemData(ContactItem item) { return(VCardWriter.WriteToString( VCardSIFC.ConvertSifCToVCard(XElement.Parse( SifAgent.ReadItemToText(item))))); }
public override string ReadItemToText(ContactItem item) { Fonlow.VCard.VCard vcard = new Fonlow.VCard.VCard(); vcard.FormattedName = item.FullName;//or fileAs vcard.GivenName = item.FirstName; vcard.Surname = item.LastName; vcard.MiddleName = item.MiddleName; vcard.Title = item.Title; vcard.Note = item.Body; vcard.Org = item.CompanyName; if ((item.Birthday != null) && (item.Birthday < outlookNullYear)) { vcard.Birthday = item.Birthday; } vcard.Department = item.Department; vcard.Suffix = item.Suffix; vcard.Role = item.JobTitle; if (!String.IsNullOrEmpty(item.HomeTelephoneNumber)) { vcard.Phones.Add(new PhoneNumber(item.HomeTelephoneNumber, HomeWorkTypes.HOME)); } if (!String.IsNullOrEmpty(item.Home2TelephoneNumber)) { vcard.Phones.Add(new PhoneNumber(item.Home2TelephoneNumber, HomeWorkTypes.HOME)); } if (!String.IsNullOrEmpty(item.MobileTelephoneNumber)) { vcard.Phones.Add(new PhoneNumber(item.MobileTelephoneNumber, HomeWorkTypes.None, PhoneTypes.CELL, false)); } if (!String.IsNullOrEmpty(item.PagerNumber)) { vcard.Phones.Add(new PhoneNumber(item.PagerNumber, HomeWorkTypes.None, PhoneTypes.PAGER, false)); } if (!String.IsNullOrEmpty(item.HomeFaxNumber)) { vcard.Phones.Add(new PhoneNumber(item.HomeFaxNumber, HomeWorkTypes.HOME, PhoneTypes.FAX, false)); } if (!String.IsNullOrEmpty(item.PrimaryTelephoneNumber)) { vcard.Phones.Add(new PhoneNumber(item.PrimaryTelephoneNumber, HomeWorkTypes.None, PhoneTypes.VOICE, true)); } if (!String.IsNullOrEmpty(item.BusinessTelephoneNumber)) { vcard.Phones.Add(new PhoneNumber(item.BusinessTelephoneNumber, HomeWorkTypes.WORK)); } if (!String.IsNullOrEmpty(item.Business2TelephoneNumber)) { vcard.Phones.Add(new PhoneNumber(item.Business2TelephoneNumber, HomeWorkTypes.WORK)); } if (!String.IsNullOrEmpty(item.BusinessFaxNumber)) { vcard.Phones.Add(new PhoneNumber(item.BusinessFaxNumber, HomeWorkTypes.WORK, PhoneTypes.FAX, false)); } if (!String.IsNullOrEmpty(item.CompanyMainTelephoneNumber)) { vcard.Phones.Add(new PhoneNumber(item.CompanyMainTelephoneNumber, HomeWorkTypes.WORK, PhoneTypes.VOICE, true)); } if (!String.IsNullOrEmpty(item.OtherTelephoneNumber)) { vcard.Phones.Add(new PhoneNumber(item.OtherTelephoneNumber, HomeWorkTypes.None, PhoneTypes.VOICE, false)); } if (!String.IsNullOrEmpty(item.OtherFaxNumber)) { vcard.Phones.Add(new PhoneNumber(item.OtherFaxNumber, HomeWorkTypes.None, PhoneTypes.FAX, false)); } if (!String.IsNullOrEmpty(item.Email1Address)) { vcard.Emails.Add(new EmailAddress(item.Email1Address, false)); } if (!String.IsNullOrEmpty(item.Email2Address)) { vcard.Emails.Add(new EmailAddress(item.Email2Address, false)); } if (!String.IsNullOrEmpty(item.Email3Address)) { vcard.Emails.Add(new EmailAddress(item.Email3Address, false)); } Address homeAddress = new Address(); homeAddress.Locality = item.HomeAddressCity; homeAddress.Country = item.HomeAddressCountry; homeAddress.Postcode = item.HomeAddressPostalCode; homeAddress.POBox = item.HomeAddressPostOfficeBox; homeAddress.Region = item.HomeAddressState; homeAddress.Street = item.HomeAddressStreet; homeAddress.HomeWorkType = HomeWorkTypes.HOME; if (homeAddress.HadContent) { vcard.Addresses.Add(homeAddress); } Address businessAddress = new Address(); businessAddress.Locality = item.BusinessAddressCity; businessAddress.Country = item.BusinessAddressCountry; businessAddress.Postcode = item.BusinessAddressPostalCode; businessAddress.POBox = item.BusinessAddressPostOfficeBox; businessAddress.Region = item.BusinessAddressState; businessAddress.Street = item.BusinessAddressStreet; businessAddress.HomeWorkType = HomeWorkTypes.WORK; if (businessAddress.HadContent) { vcard.Addresses.Add(businessAddress); } if (!String.IsNullOrEmpty(item.PersonalHomePage)) { vcard.URLs.Add(new URL(item.PersonalHomePage, HomeWorkTypes.HOME)); } if (!String.IsNullOrEmpty(item.BusinessHomePage)) { vcard.URLs.Add(new URL(item.BusinessHomePage, HomeWorkTypes.WORK)); } return(VCardWriter.WriteToString(vcard)); }