// MAIN static void Main() { using (var db = new PhonebookDb()) { // Problem 06 var dbContacts = db.Contacts.Select(c => new { c.Name, c.Emails, c.Phones }); foreach (var contact in dbContacts) { var contactName = contact.Name; var contactPhones = string.Join(", ", contact.Phones.Select(p => p.PhoneNumber)); var contactEmails = string.Join(", ", contact.Emails.Select(e => e.EmailAddress)); Console.WriteLine("Name: {0}\r\nPhone(s): {1}\r\nEmail(s): {2}\r\n", contactName, contactPhones == "" ? "no data" : contactPhones, contactEmails == "" ? "no data" : contactEmails); } // Problem 07 var jsonAsText = System.IO.File.ReadAllText("../../../contacts.json"); var contacts = JArray.Parse(jsonAsText); foreach (var contact in contacts) { // CONTACT TO CREATE var newlyContact = new Contact(); // REQUIRED PROPERTY var contactName = contact["name"]?.ToString() ?? ""; // REQUIRED PROPERTY CHECK if (string.IsNullOrWhiteSpace(contactName)) { Console.WriteLine("Error: {0} is required", contactName); continue; } // SET REQUIRED PROPERTY TO CONTACT ContactSetProperty(newlyContact, "name", contactName); // NOT REQUIRED PROPS var company = contact["company"]?.ToString() ?? ""; var position = contact["position"]?.ToString() ?? ""; var site = contact["site"]?.ToString() ?? ""; var notes = contact["notes"]?.ToString() ?? ""; var emails = contact["emails"]; var phones = contact["phones"]; // SET NOT REQUIRED PROPS IF EXIST ContactSetProperty(newlyContact, "company", company); ContactSetProperty(newlyContact, "position", position); ContactSetProperty(newlyContact, "site", site); ContactSetProperty(newlyContact, "notes", notes); ContactSetCollectionPropery(newlyContact, "emails", emails); ContactSetCollectionPropery(newlyContact, "phones", phones); // CONTACT IMPORTED db.Contacts.Add(newlyContact); db.SaveChanges(); Console.WriteLine("Contact {0} imported", contactName); } } }