Example #1
0
        /// <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);
            }
        }
Example #2
0
 /// <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)))));
 }
Example #3
0
        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));
        }