public bool ProcessCommands() { Contact cContact = null; DateTime start = DateTime.Now; this.abManager = Manager.Connect( ); if (this.cmd == Commands.listbooks) { if (verbose == true) { Console.WriteLine("Command::listbooks"); } foreach(AddressBook tmpBook in abManager) { Console.WriteLine(tmpBook.Name); Console.WriteLine(""); } } else if (this.cmd == Commands.createbook) { if (verbose == true) { Console.WriteLine("Command::createbook"); } bool atLeastOne = false; foreach(string bookName in this.bookList) { if (verbose == true) { Console.WriteLine("Creating Address Book: " + bookName); } AddressBook cBook = abManager.CreateAddressBook(bookName); atLeastOne = true; } if (atLeastOne == false) { Console.WriteLine("invalid parameters"); } } else if (this.cmd == Commands.deletebook) { if (displayCommandHelp == true) { } else { bool atLeastOne = false; foreach(string bookName in this.bookList) { if (verbose == true) { Console.WriteLine("Deleting Address Book: " + bookName); } try { AddressBook cBook = abManager.GetAddressBookByName(bookName); cBook.Delete(); cBook.Commit(); atLeastOne = true; } catch{} } if (atLeastOne == false) { Console.WriteLine("invalid parameters"); } } } else if (this.cmd == Commands.importvcard) { if (OpenAddressBook()) { if (this.fileList != null && this.fileList.Count > 0) { foreach(String filename in this.fileList) { if (verbose == true) { Console.WriteLine("Importing vCards(s) from file: " + filename); } cAddressBook.ImportVCard(filename); } } else { Console.WriteLine("invalid parameters"); } } } else if (this.cmd == Commands.listcontacts) { if (verbose == true) { Console.WriteLine("Command::listcontacts"); } if (OpenAddressBook()) { foreach(Contact lContact in cAddressBook) { Console.WriteLine(lContact.UserName); } } } else if (this.cmd == Commands.createcontact) { if (OpenAddressBook()) { foreach(string contactName in this.contactList) { if (verbose == true) { Console.WriteLine("Adding contact: " + contactName); } Contact tmpContact = new Contact(); tmpContact.UserName = contactName; cAddressBook.AddContact(tmpContact); tmpContact.Commit(); } } } else if (this.cmd == Commands.deletecontact) { if (OpenAddressBook()) { foreach(string contactName in this.contactList) { if (verbose == true) { Console.WriteLine("Deleting contact: " + contactName); } IABList cList = cAddressBook.SearchUsername(contactName, Simias.Storage.SearchOp.Equal); foreach(Contact tmpContact in cList) { tmpContact.Delete(); } } } } else if (this.cmd == Commands.listproperties) { if (OpenAddressBook()) { if (this.contactList != null) { IABList cList = cAddressBook.SearchUsername( (string) this.contactList[0], Simias.Storage.SearchOp.Equal); foreach(Contact tmpContact in cList) { this.ListProperties(tmpContact); break; } } } } else if (this.cmd == Commands.deleteproperty) { if (verbose == true) { Console.WriteLine("Command::deleteproperty"); } if (OpenAddressBook()) { if (this.contactList != null) { IABList cList = cAddressBook.SearchUsername( (string) this.contactList[0], Simias.Storage.SearchOp.Equal); foreach(Contact tmpContact in cList) { if (verbose == true) { Console.WriteLine("Contact: " + tmpContact.UserName); } foreach(string propertyString in this.propertyList) { Regex o = new Regex(@"="); IEnumerator enumTokens = o.Split(propertyString).GetEnumerator(); while(enumTokens.MoveNext()) { string token = (string) enumTokens.Current; token.ToLower(); if (verbose == true) { Console.WriteLine("Deleting property: " + token); } if (token == "organization") { tmpContact.Organization = null; } else if (token == "blog") { tmpContact.Blog = null; } else if (token == "url") { tmpContact.Url = null; } else if (token == "title") { tmpContact.Title = null; } else if (token == "role") { tmpContact.Role = null; } else if (token == "workforceid") { tmpContact.WorkForceID = null; } else if (token == "birthday") { tmpContact.Birthday = null; } else if (token == "email") { if (enumTokens.MoveNext()) { IABList eAddresses = cContact.GetEmailAddresses(); foreach (Email tmpMail in eAddresses) { if (tmpMail.Address == (string) enumTokens.Current) { if (verbose == true) { Console.WriteLine(" Deleting e-mail address: " + tmpMail.Address); } tmpMail.Delete(); break; } } } } else if (token == "managerid") { tmpContact.ManagerID = null; } else if (token == "note") { tmpContact.Note = null; } else if (token == "nickname") { tmpContact.Nickname = null; } } } tmpContact.Commit(); break; } } } } else if (this.cmd == Commands.addproperty) { if (verbose == true) { Console.WriteLine("Command::addproperty"); } if (this.displayCommandHelp == true) { this.DisplayAddPropertyUsage(); } else if (OpenAddressBook()) { if (this.contactList != null) { IABList cList = cAddressBook.SearchUsername( (string) this.contactList[0], Simias.Storage.SearchOp.Equal); foreach(Contact tmpContact in cList) { if (verbose == true) { Console.WriteLine("Contact: " + tmpContact.UserName); } this.AddProperties(tmpContact); break; } } } } else if (this.cmd == Commands.addnameproperty) { if (verbose == true) { Console.WriteLine("Command::addnameproperty"); } if (this.displayCommandHelp == true) { this.DisplayAddNamePropertyUsage(); } else if (OpenAddressBook()) { if (this.contactList != null) { IABList cList = cAddressBook.SearchUsername( (string) this.contactList[0], Simias.Storage.SearchOp.Equal); foreach(Contact tmpContact in cList) { if (verbose == true) { Console.WriteLine("Contact: " + tmpContact.UserName); } this.AddNameProperty(tmpContact); break; } } } } else if (this.cmd == Commands.addaddressproperty) { if (verbose == true) { Console.WriteLine("Command::addaddressproperty"); } if (this.displayCommandHelp == true) { this.DisplayAddAddressPropertyUsage(); } else if (OpenAddressBook()) { if (this.contactList != null) { IABList cList = cAddressBook.SearchUsername( (string) this.contactList[0], Simias.Storage.SearchOp.Equal); foreach(Contact tmpContact in cList) { if (verbose == true) { Console.WriteLine("Contact: " + tmpContact.UserName); } this.AddAddressProperty(tmpContact); break; } } } } else if (this.cmd == Commands.exportvcard) { if (verbose == true) { Console.WriteLine("Command::exportvcard"); } if (OpenAddressBook()) { if (this.contactList != null) { string path = ""; if (this.fileList != null) { path = (string) this.fileList[0]; if (path[path.Length - 1] != Path.DirectorySeparatorChar) { path += Path.DirectorySeparatorChar; } if (verbose == true) { Console.WriteLine("Creating vCards at: " + path); } } foreach(string contactName in this.contactList) { IABList cList = cAddressBook.SearchUsername( contactName, Simias.Storage.SearchOp.Equal); foreach(Contact tmpContact in cList) { string vCardFileName = path; if (tmpContact.FN != "") { vCardFileName += tmpContact.FN; vCardFileName += ".vcf"; } else { vCardFileName = tmpContact.ID + ".vcf"; } if (verbose == true) { Console.WriteLine("Exporting vCard: " + vCardFileName); } tmpContact.ExportVCard(vCardFileName); break; } } } } } if (timeIt == true) { DateTime stop = DateTime.Now; TimeSpan ts = stop - start; Console.WriteLine(""); Console.WriteLine("Command(s) completed in: "); Console.WriteLine(" {0} seconds", ts.TotalSeconds); Console.WriteLine(" {0} milliseconds", ts.TotalMilliseconds); } return(true); }