public string sendMsg() { var keysToFetch = new[] { CNContactKey.GivenName, CNContactKey.FamilyName, CNContactKey.PhoneNumbers }; NSError error; bool check = false; using (var store = new CNContactStore()) { var allContainers = store.GetContainers(null, out error); foreach (var container in allContainers) { try { using (var predicate = CNContact.GetPredicateForContactsInContainer(container.Identifier)) { var containerResults = store.GetUnifiedContacts(predicate, keysToFetch, out error); foreach (var item in containerResults) { var num = item.PhoneNumbers; foreach (var cn in num) { string mob = cn.Value.StringValue; if (mob == ProfileContentView.phone) { check = true; } } } } } catch { } } } if (check == false) { var store = new CNContactStore(); var contact = new CNMutableContact(); var cellPhone = new CNLabeledValue <CNPhoneNumber>(CNLabelPhoneNumberKey.Mobile, new CNPhoneNumber(ProfileContentView.phone)); var phoneNumber = new[] { cellPhone }; contact.PhoneNumbers = phoneNumber; contact.GivenName = ProfileContentView.name; var saveRequest = new CNSaveRequest(); saveRequest.AddContact(contact, store.DefaultContainerIdentifier); } return("1"); }
private static NSArray <CNLabeledValue <NSString> > ToCNCotactEmails(KeyValuePair <string, string>[] emails) { if (emails == null) { return(null); } var result = new NSMutableArray <CNLabeledValue <NSString> >(); foreach (var email in emails) { NSString label = NSString.StringWithUTF8String(email.Key); NSString nativeEmail = NSString.StringWithUTF8String(email.Value); result.AddObject(CNLabeledValue <NSString> .LabeledValueWithLabel(label, nativeEmail)); } return(result); }
private static NSArray <CNLabeledValue <CNPhoneNumber> > ToCNContactPhoneNumbers(KeyValuePair <string, string>[] phoneNumbers) { if (phoneNumbers == null) { return(null); } var result = new NSMutableArray <CNLabeledValue <CNPhoneNumber> >(); foreach (var phoneNumber in phoneNumbers) { NSString label = NSString.StringWithUTF8String(phoneNumber.Key); CNPhoneNumber number = CNPhoneNumber.PhoneNumberWithStringValue(phoneNumber.Value); result.AddObject(CNLabeledValue <CNPhoneNumber> .LabeledValueWithLabel(label, number)); } return(result); }
public static string GetNameMatchingLocalizedLabel(this CNContactProperty property) { var label = property?.Label; if (!string.IsNullOrEmpty(label)) { var nativelabel = new NSString(label); switch (property.Label) { case "emailAddresses": return(CNLabeledValue <NSString> .LocalizeLabel(nativelabel)); case "phoneNumbers": return(CNLabeledValue <NSString> .LocalizeLabel(nativelabel)); case "postalAddresses": return(CNLabeledValue <NSString> .LocalizeLabel(nativelabel)); } } return(null); }
public int WriteContact(Contact contact) { var contactToAdd = new CNMutableContact(); contactToAdd.GivenName = contact.FirstName; var phoneNumber = new CNLabeledValue <CNPhoneNumber>(label: CNLabelKey.Home, value: new CNPhoneNumber(stringValue: contact.Number)); contactToAdd.PhoneNumbers = new [] { phoneNumber }; var store = new CNContactStore(); var saveRequest = new CNSaveRequest(); saveRequest.AddContact(contactToAdd, null); var error = new NSError(); try { store.ExecuteSaveRequest(saveRequest, out error); return(0); } catch { return(1); } }
public bool AddContacts(QContact qc) { Console.WriteLine("export contacts ios"); var contact = new CNMutableContact(); // Set standard properties contact.GivenName = PreventNull(qc.FirstName); contact.FamilyName = PreventNull(qc.LastName); // Add email addresses var homeEmail = new CNLabeledValue <NSString>(CNLabelKey.Home, new NSString(PreventNull(qc.Email))); var email = new[] { homeEmail }; contact.EmailAddresses = email; // Add work address var workAddress = new CNMutablePostalAddress() { Street = PreventNull(qc.Addr) }; contact.PostalAddresses = new[] { new CNLabeledValue <CNPostalAddress>(CNLabelKey.Work, workAddress) }; // ADD BIRTHday string[] birth = PreventNull(qc.Birthday.ToString("MM/dd/yyyy")).Split('/'); if (birth.Length == 3) { var birthday = new NSDateComponents() { Month = int.Parse(birth[0]), Day = int.Parse(birth[1]), Year = int.Parse(birth[2]) }; contact.Birthday = birthday; } // add company contact.OrganizationName = PreventNull(qc.Company); // add others-> fb StringBuilder sb = new StringBuilder(); sb.Append("Facebook:").Append(PreventNull(qc.Facebook)).Append(", Instagram:").Append(PreventNull(qc.Instagram)) .Append(", Linkedin:").Append(PreventNull(qc.LinkedIn)).Append(", Skype:").Append(PreventNull(qc.Skype)) .Append(", Twitter:").Append(PreventNull(qc.Twitter)); contact.Note = sb.ToString(); // add url var url = new CNLabeledValue <NSString>(CNLabelKey.UrlAddressHomePage, new NSString(PreventNull(qc.URL))); var myUrl = new[] { url }; contact.UrlAddresses = myUrl; //mobile var cellPhone = new CNLabeledValue <CNPhoneNumber>(CNLabelPhoneNumberKey.Mobile, new CNPhoneNumber(PreventNull(qc.Mobile))); //var phoneNumber = new[] { cellPhone }; //contact.PhoneNumbers = phoneNumber; //home phone var homePhone = new CNLabeledValue <CNPhoneNumber>("HOME", new CNPhoneNumber(PreventNull(qc.HomePhone))); //work phone var workPhone = new CNLabeledValue <CNPhoneNumber>("WORK", new CNPhoneNumber(PreventNull(qc.WorkPhone))); //homefax var homeFax = new CNLabeledValue <CNPhoneNumber>(CNLabelPhoneNumberKey.HomeFax, new CNPhoneNumber(PreventNull(qc.HomeFax))); //workFax var workFax = new CNLabeledValue <CNPhoneNumber>(CNLabelPhoneNumberKey.WorkFax, new CNPhoneNumber(PreventNull(qc.WorkFax))); var phoneNumber = new[] { cellPhone, homePhone, workPhone, homeFax, workFax }; contact.PhoneNumbers = phoneNumber; // Save new contact var store = new CNContactStore(); var saveRequest = new CNSaveRequest(); saveRequest.AddContact(contact, store.DefaultContainerIdentifier); NSError error; if (store.ExecuteSaveRequest(saveRequest, out error)) { Console.WriteLine("New contact saved"); return(true); } else { Console.WriteLine("Save error: {0}", error); return(false); } }
private void SelectedNumber(CNLabeledValue <CNPhoneNumber> number) { string stringNumber = number.Value.StringValue.Replace("(", string.Empty).Replace(")", string.Empty).Replace(" ", string.Empty); SelectContacts(new string[] { stringNumber }); }
void HandleCNContactStoreListContactsHandler(CNContact contact, ref bool stop) { if (stop == false) { try { ContactItem item = new ContactItem(); item.ContactID = contact.Identifier ?? ""; //Birthday if (contact.Birthday != null) { var month = contact.Birthday.Month.ToString(); var day = contact.Birthday.Day.ToString(); var year = contact.Birthday.Year.ToString(); item.Birthday = day + "/" + month + "/" + year; } if (contact.GivenName.Length > 0 || contact.FamilyName.Length > 0) { //Displayname item.DisplayName = contact.GivenName + " " + contact.FamilyName; } else { item.DisplayName = ""; } //Name Name name = new Name(); name.FirstName = contact.GivenName; name.LastName = contact.FamilyName; name.Prefix = contact.NamePrefix; name.Suffix = contact.NameSuffix; name.MiddleName = contact.MiddleName; item.GetNames = name; Console.WriteLine(contact.FamilyName ?? ""); //Phone List <Phone> phoneslist = new List <Phone>(); foreach (var number in contact.PhoneNumbers) { string phonenumber = number.Value.ValueForKey(new NSString("digits")).ToString() ?? ""; string phonenumberType = CNLabeledValue <NSString> .LocalizeLabel(new NSString(number.Label ?? "")) ?? ""; Phone phone = new Phone { Type = phonenumberType, PhoneNumber = phonenumber }; phoneslist.Add(phone); Console.WriteLine(phonenumber); } item.GetPhones = phoneslist; //Email List <Email> emailslist = new List <Email>(); foreach (var obj in contact.EmailAddresses) { var type = Regex.Replace(obj.Label, @"[^0-9a-zA-Z]+", "") ?? ""; var email = Regex.Replace(obj.Value, @"[^0-9a-zA-Z@]+", "") ?? ""; Email email1 = new Email(); email1.Emailid = email; email1.Type = type; emailslist.Add(email1); } item.GetEmails = emailslist; //Address List <Address> addresseslist = new List <Address>(); foreach (var obj in contact.PostalAddresses) { Address address = new Address(); var type = Regex.Replace(obj.Label, @"[^0-9a-zA-Z]+", "") ?? ""; var street = obj.Value.Street; var city = obj.Value.City; var state = obj.Value.State; var postalcode = obj.Value.PostalCode; var country = obj.Value.Country; address.Type = type; address.FullAddress = street + "," + city + "," + "," + state + "," + postalcode + "," + country; addresseslist.Add(address); } item.GetAddress = addresseslist; //Company Company company = new Company { CompanyName = contact.OrganizationName ?? "", Role = contact.JobTitle }; item.GetCompany = company; //Url List <Url> url = new List <Url>(); foreach (var obj in contact.UrlAddresses) { Url url1 = new Url(); url1.URL = Regex.Replace(obj.Value, @"[^0-9a-zA-Z@]+", "") ?? ""; url.Add(url1); } item.GetUrls = url; //Date List <DateList> dateLists = new List <DateList>(); foreach (var obj in contact.Dates) { var type = Regex.Replace(obj.Label, @"[^0-9a-zA-Z]+", "") ?? ""; var datestring = obj.Value; DateList list = new DateList(); var month = contact.Birthday.Month.ToString() ?? ""; var day = contact.Birthday.Day.ToString() ?? ""; var year = contact.Birthday.Year.ToString() ?? ""; list.Date = day + "/" + month + "/" + year; list.type = type; dateLists.Add(list); } item.GetDateList = dateLists; totalContactListWithoutGrouping.Add(item); try { if (item.DisplayName != null && !string.IsNullOrEmpty(item.DisplayName)) { var firstLetter = item.DisplayName.Substring(0, 1).ToUpper(); var indexs = Array.IndexOf(alphate, firstLetter); totalContactList[indexs].Add(item); } else { totalContactList[26].Add(item); } //var vcvc = from s in totalContactList where s.Count > 0 select s.ToList(); } catch (Exception ex) { Console.WriteLine(ex); } } catch (Exception ex) { Console.WriteLine(ex); } } else { Console.WriteLine(stop); } }
public static async void CreateContact(object sender, EventArgs e) { var store = new CNContactStore(); NSError error; if (CNContactStore.GetAuthorizationStatus(CNEntityType.Contacts) == CNAuthorizationStatus.Authorized) { CNContact currentUser = null; var predicate = CNContact.GetPredicateForContacts("Appleseed"); var fetchKeys = new NSString[] { CNContactKey.GivenName, CNContactKey.FamilyName }; NSError cError; var contacts = store.GetUnifiedContacts(predicate, fetchKeys, out cError); for (int i = 0; i < contacts.Count(); i++) { if (contacts[i].GivenName == App.contactuser.FirstName && contacts[i].FamilyName == App.contactuser.LastName) { currentUser = contacts[i]; } } // Found? if (currentUser != null) { bool k = await App.Current.MainPage.DisplayAlert("Exists", "Requested contact already exists...", "Edit", "OK"); if (k) { personViewController = CNContactViewController.FromContact(currentUser); var done = new UIBarButtonItem(UIBarButtonSystemItem.Done); done.Clicked += (s, ea) => { personViewController.DismissViewController(false, null); }; personViewController.NavigationItem.LeftBarButtonItem = done; navController.PushViewController(personViewController, true); UIApplication.SharedApplication.KeyWindow.RootViewController.ShowViewController(navController, null); } } else { var contact = new CNMutableContact(); contact.GivenName = App.contactuser.FirstName; contact.FamilyName = App.contactuser.LastName; // Add email addresses var email = new CNLabeledValue <NSString>(CNLabelKey.Home, new NSString(App.contactuser.email)); contact.EmailAddresses = new CNLabeledValue <NSString>[] { email }; // Add phone numbers var cellPhone = new CNLabeledValue <CNPhoneNumber>(CNLabelPhoneNumberKey.iPhone, new CNPhoneNumber(App.contactuser.phoneNumber)); contact.PhoneNumbers = new CNLabeledValue <CNPhoneNumber>[] { cellPhone }; // Save new contact var _store = new CNContactStore(); var saveRequest = new CNSaveRequest(); saveRequest.AddContact(contact, _store.DefaultContainerIdentifier); NSError cerror; if (store.ExecuteSaveRequest(saveRequest, out cerror)) { personViewController = CNContactViewController.FromContact(contact); var done = new UIBarButtonItem(UIBarButtonSystemItem.Done); done.Clicked += (s, ea) => { personViewController.DismissViewController(false, null); }; personViewController.NavigationItem.LeftBarButtonItem = done; navController.PushViewController(personViewController, true); UIApplication.SharedApplication.KeyWindow.RootViewController.ShowViewController(navController, null); } else { Console.WriteLine("Save error: {0}", cerror); } } } else { store.RequestAccess(CNEntityType.Contacts, RequestAccepted); } }