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); }
/// <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); }
/// <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; }
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; }