Exemple #1
0
 private Abstractions.Organization Convert(ContactJobInfo jobInfo)
 {
     Abstractions.Organization org = new Abstractions.Organization();
     org.Name         = jobInfo.CompanyName;
     org.Label        = jobInfo.Description;
     org.ContactTitle = jobInfo.Department;
     return(org);
 }
        public static ContactJobInfo ToContactJobInfo(this NGJobInfo jobInfo)
        {
            var winJobInfo = new ContactJobInfo()
            {
                Title          = jobInfo.Title,
                Office         = jobInfo.Office,
                Manager        = jobInfo.Manager,
                Department     = jobInfo.Department,
                CompanyName    = jobInfo.CompanyName,
                CompanyAddress = jobInfo.CompanyAddress,
                Description    = jobInfo.Description
            };

            return(winJobInfo);
        }
Exemple #3
0
        /// <summary>
        /// Convert the byte array to a WinRT Contact.
        /// Matching is not 1:1, but this methods tries to convert as much of the data as possible.
        /// </summary>
        /// <param name="vCardByte">Business card vCard string as a UTF8 encoded byte array.</param>
        private Contact ParseDataToContact(byte[] vCardByte)
        {
            var vcReader = new vCardStandardReader();
            var vc       = vcReader.Read(new StringReader(Encoding.UTF8.GetString(vCardByte, 0, vCardByte.Length)));

            var convertedContact = new Contact
            {
                FirstName           = vc.GivenName,
                LastName            = vc.FamilyName,
                HonorificNamePrefix = vc.NamePrefix,
                HonorificNameSuffix = vc.NameSuffix
            };

            // Phone numbers
            foreach (var phone in vc.Phones)
            {
                convertedContact.Phones.Add(ConvertVcardToPhone(phone));
            }

            // Email
            foreach (var email in vc.EmailAddresses)
            {
                convertedContact.Emails.Add(ConvertVcardToEmail(email));
            }

            // Postal address
            foreach (var address in vc.DeliveryAddresses)
            {
                convertedContact.Addresses.Add(ConvertVcardToAddress(address));
            }

            // Notes
            foreach (var note in vc.Notes)
            {
                if (convertedContact.Notes != null)
                {
                    convertedContact.Notes += "\n" + note.Text;
                }
                else
                {
                    convertedContact.Notes = note.Text;
                }
            }

            // Dates
            if (vc.BirthDate != null)
            {
                var birthDay = (DateTime)vc.BirthDate;
                convertedContact.ImportantDates.Add(new ContactDate
                {
                    Kind  = ContactDateKind.Birthday,
                    Year  = birthDay.Year,
                    Month = (uint?)birthDay.Month,
                    Day   = (uint?)birthDay.Day
                });
            }

            // Websites
            foreach (var website in vc.Websites)
            {
                convertedContact.Websites.Add(ConvertVcardToWebsite(website));
            }

            // Job info
            if (!String.IsNullOrEmpty(vc.Organization) ||
                !String.IsNullOrEmpty(vc.Department) ||
                !String.IsNullOrEmpty(vc.Title))
            {
                var jobInfo = new ContactJobInfo();
                if (!String.IsNullOrEmpty(vc.Organization))
                {
                    jobInfo.CompanyName = vc.Organization;
                }
                if (!String.IsNullOrEmpty(vc.Department))
                {
                    jobInfo.Department = vc.Department;
                }
                if (!String.IsNullOrEmpty(vc.Title))
                {
                    jobInfo.Title = vc.Title;
                }
                convertedContact.JobInfo.Add(jobInfo);
            }
            return(convertedContact);
        }
Exemple #4
0
        /// <summary>
        /// Convert the byte array to a WinRT Contact.
        /// Matching is not 1:1, but this methods tries to convert as much of the data as possible.
        /// </summary>
        /// <param name="vCardByte">Business card vCard string as a UTF8 encoded byte array.</param>
        private Contact ParseDataToContact(byte[] vCardByte)
        {
            var vcReader = new vCardStandardReader();
            var vc = vcReader.Read(new StringReader(Encoding.UTF8.GetString(vCardByte, 0, vCardByte.Length)));

            var convertedContact = new Contact
            {
                FirstName = vc.GivenName, 
                LastName = vc.FamilyName,
                HonorificNamePrefix = vc.NamePrefix,
                HonorificNameSuffix = vc.NameSuffix
            };

            // Phone numbers
            foreach (var phone in vc.Phones)
            {
                convertedContact.Phones.Add(ConvertVcardToPhone(phone));
            }

            // Email
            foreach (var email in vc.EmailAddresses)
            {
                convertedContact.Emails.Add(ConvertVcardToEmail(email));
            }

            // Postal address
            foreach (var address in vc.DeliveryAddresses)
            {
                convertedContact.Addresses.Add(ConvertVcardToAddress(address));
            }

            // Notes
            foreach (var note in vc.Notes)
            {
                if (convertedContact.Notes != null)
                {
                    convertedContact.Notes += "\n" + note.Text;
                }
                else
                {
                    convertedContact.Notes = note.Text;
                }
            }

            // Dates
            if (vc.BirthDate != null)
            {
                var birthDay = (DateTime) vc.BirthDate;
                convertedContact.ImportantDates.Add(new ContactDate
                {
                    Kind = ContactDateKind.Birthday,
                    Year = birthDay.Year,
                    Month = (uint?) birthDay.Month,
                    Day = (uint?) birthDay.Day
                });
            }

            // Websites
            foreach (var website in vc.Websites)
            {
                convertedContact.Websites.Add(ConvertVcardToWebsite(website));
            }

            // Job info
            if (!String.IsNullOrEmpty(vc.Organization) ||
                !String.IsNullOrEmpty(vc.Department) ||
                !String.IsNullOrEmpty(vc.Title))
            {
                var jobInfo = new ContactJobInfo();
                if (!String.IsNullOrEmpty(vc.Organization))
                {
                    jobInfo.CompanyName = vc.Organization;
                }
                if (!String.IsNullOrEmpty(vc.Department))
                {
                    jobInfo.Department = vc.Department;
                }
                if (!String.IsNullOrEmpty(vc.Title))
                {
                    jobInfo.Title = vc.Title;
                }
                convertedContact.JobInfo.Add(jobInfo);
            }
            return convertedContact;
        }
Exemple #5
0
        private async void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            // name
            contact.FirstName           = tbFName.Text;
            contact.MiddleName          = tbMName.Text;
            contact.LastName            = tbLName.Text;
            contact.Nickname            = tbNickName.Text;
            contact.HonorificNamePrefix = tbPrefix.Text;
            contact.HonorificNameSuffix = tbSuffix.Text;
            contact.YomiGivenName       = tbFNamePinyin.Text;
            contact.YomiFamilyName      = tbLNamePinyin.Text;

            // website
            ContactWebsite web = new ContactWebsite();

            web.RawValue = tbWeb.Text;
            contact.Websites.Add(web);


            // job
            ContactJobInfo job = new ContactJobInfo();

            job.CompanyName = tbCompany.Text;
            job.Title       = tbPosition.Text;
            job.Office      = tbOfficeLocation.Text;
            contact.JobInfo.Add(job);

            // Significant others
            ContactSignificantOther soSpause = new ContactSignificantOther();

            soSpause.Relationship = ContactRelationship.Spouse;
            soSpause.Name         = tbSpause.Text;
            contact.SignificantOthers.Add(soSpause);
            ContactSignificantOther soChild = new ContactSignificantOther();

            soChild.Relationship = ContactRelationship.Child;
            soChild.Name         = tbChild.Text;
            contact.SignificantOthers.Add(soChild);

            // note
            contact.Notes = tbNote.Text;

            // phone
            ContactPhone cell1        = new ContactPhone();
            ContactPhone cell2        = new ContactPhone();
            ContactPhone home1        = new ContactPhone();
            ContactPhone home2        = new ContactPhone();
            ContactPhone work1        = new ContactPhone();
            ContactPhone work2        = new ContactPhone();
            ContactPhone companyphone = new ContactPhone();
            ContactPhone companyfax   = new ContactPhone();
            ContactPhone homefax      = new ContactPhone();
            ContactPhone bbcall       = new ContactPhone();

            cell1.Kind          = ContactPhoneKind.Mobile;
            cell1.Number        = tbCellphone1.Text;
            cell2.Kind          = ContactPhoneKind.Mobile;
            cell2.Number        = tbCellphone2.Text;
            home1.Kind          = ContactPhoneKind.Home;
            home1.Number        = tbHomephone1.Text;
            home2.Kind          = ContactPhoneKind.Home;
            home2.Number        = tbHomephone2.Text;
            work1.Kind          = ContactPhoneKind.Work;
            work1.Number        = tbWorkphone1.Text;
            work2.Kind          = ContactPhoneKind.Work;
            work2.Number        = tbWorkphone2.Text;
            companyphone.Kind   = ContactPhoneKind.Company;
            companyphone.Number = tbOfficephone.Text;
            companyfax.Kind     = ContactPhoneKind.BusinessFax;
            companyfax.Number   = tbOfficeFax.Text;
            homefax.Kind        = ContactPhoneKind.HomeFax;
            homefax.Number      = tbHomeFax.Text;
            bbcall.Kind         = ContactPhoneKind.Pager;
            bbcall.Number       = tbBBCall.Text;
            contact.Phones.Add(cell1);
            contact.Phones.Add(cell2);
            contact.Phones.Add(home1);
            contact.Phones.Add(home2);
            contact.Phones.Add(work1);
            contact.Phones.Add(work2);
            contact.Phones.Add(companyphone);
            contact.Phones.Add(companyfax);
            contact.Phones.Add(homefax);
            contact.Phones.Add(bbcall);

            // email
            ContactEmail homemail  = new ContactEmail();
            ContactEmail workmail  = new ContactEmail();
            ContactEmail othermail = new ContactEmail();

            homemail.Kind     = ContactEmailKind.Personal;
            homemail.Address  = tbPersonalEmail.Text;
            workmail.Kind     = ContactEmailKind.Work;
            workmail.Address  = tbOfficeEmail.Text;
            othermail.Kind    = ContactEmailKind.Other;
            othermail.Address = tbOtherEmail.Text;
            contact.Emails.Add(homemail);
            contact.Emails.Add(workmail);
            contact.Emails.Add(othermail);

            // pic
            // 還有待研究,猜測因為await關係,必須要等待至檔案讀取完,sampleFile才會存進contact。
            string        path          = System.IO.Directory.GetCurrentDirectory();
            StorageFolder storageFolder = await StorageFolder.GetFolderFromPathAsync(path);

            StorageFile sampleFile = await storageFolder.GetFileAsync("dog.png");

            contact.SourceDisplayPicture = sampleFile;
            contact.Thumbnail            = sampleFile;
        }