public static void ConnectToDB(SqlConnection connect, string command, SqlCommand sqlCommand, Phone myPhone, List <Address> addList, List <Country> ctryList, string cmd) { switch (cmd) { case "INSERT_PHONE": command = $"INSERT INTO Phone " + "VALUES (@phoneName, @firstName, @lastName, @phoneNumber, @email);"; using (SqlDataAdapter dataAdapter = new SqlDataAdapter()) { connect.Open(); using (sqlCommand = new SqlCommand(command, connect)) { //myPhone = (Phone)myPhone; sqlCommand.Parameters.AddWithValue("@phoneName", myPhone.PhoneName); sqlCommand.Parameters.AddWithValue("@firstName", myPhone.Fname); sqlCommand.Parameters.AddWithValue("@lastName", myPhone.Lname); sqlCommand.Parameters.AddWithValue("@phoneNumber", myPhone.PhoneNumber); sqlCommand.Parameters.AddWithValue("@email", myPhone.Email); sqlCommand.ExecuteNonQuery(); } }; connect.Close(); break; case "READ_PHONE": //connect = new SqlConnection(conString); connect.Open(); command = "SELECT * FROM PHONE"; sqlCommand = new SqlCommand(command, connect); SqlDataReader data = sqlCommand.ExecuteReader(); while (data.Read()) { myPhone.PhoneName = (string)data[0]; myPhone.Fname = (string)data[1]; myPhone.Lname = (string)data[2]; myPhone.PhoneNumber = (long)data[3]; myPhone.Email = (string)data[4]; } connect.Close(); break; case "READ_CONTACTS": CountryDA.read(ctryList); /*connect.Open(); * command = "SELECT * FROM COUNTRY"; * sqlCommand = new SqlCommand(command, connect); * data = sqlCommand.ExecuteReader(); * ctryList.RemoveAll(contact => contact.CountryID >= 0); * while (data.Read()) * { * Country country = new Country(); * country.CountryID = (int)data[0]; * country.CountryName = (string)data[1]; * country.CountryCode = (int)data[2]; * * ctryList.Add(country); * } * connect.Close();*/ AddressDA.read(addList, ctryList); /*connect.Open(); * command = "SELECT * FROM ADDRESS"; * sqlCommand = new SqlCommand(command, connect); * data = sqlCommand.ExecuteReader(); * addList.RemoveAll(address => address.AddressID >= 0); * while (data.Read()) * { * Address address = null; * foreach (var item in ctryList) * { * if(item.CountryID == (int)data[5]) * { * address = new Address( * (string)data[1], * (string)data[2], * (string)data[3], * (int)data[4], * (int)data[5], * item); * } * } * address.AddressID = (int)data[0]; * * addList.Add(address); * } * connect.Close();*/ myPhone.contactList = ContactDA.read(addList); /*connect.Open(); * command = "SELECT * FROM CONTACTS"; * sqlCommand = new SqlCommand(command, connect); * data = sqlCommand.ExecuteReader(); * myPhone.contactList = new List<Contact>(); * while (data.Read()) * { * Contact contact = null; * foreach (var item in addList) * { * if (item.AddressID == (int)data[5]) * { * contact = new Contact(item); * } * } * contact.ContactId = (int)data[0]; * contact.FName = (string)data[1]; * contact.LName = (string)data[2]; * contact.Age = (int)data[3]; * contact.Gender = (string)data[4]; * contact.AddressID = (int)data[5]; * contact.PhoneNumber = (long)data[6]; * * myPhone.contactList.Add(contact); * } * connect.Close();*/ break; default: break; } }
static void Main(string[] args) { //SqlConnection connect = null; try { Phone myPhone = new Phone(); bool phoneCheck = myPhone.read(); //Check if phone data exists if (phoneCheck) { //if data doesn't exist ask use for phone information Console.WriteLine(":::::New Phone Creation:::::"); Console.WriteLine(); Console.WriteLine("First Name*:"); myPhone.Fname = Console.ReadLine(); myPhone.PhoneName = myPhone.Fname + "'s Phone"; Console.WriteLine("Last Name (Optional):"); myPhone.Lname = Console.ReadLine(); Console.WriteLine("Email (Optional):"); myPhone.Email = Console.ReadLine(); Console.WriteLine("Phone Number*:"); myPhone.PhoneNumber = Convert.ToInt64(Console.ReadLine()); //insert into database using ExecuteNonQuery(). myPhone.insert(); } //Declare lists to store Addresses and Countries //Load Contacts myPhone.contactList = ContactDA.read(); //ConnectToDB(myPhone, AddList, CtryList, "READ_CONTACTS"); //Displa Main menu bool display = true; string currDisplay = "main"; string mainMenu = ":::::Main Menu:::::" + System.Environment.NewLine + "(1) Manage Contacts" + System.Environment.NewLine + "(2) Phone Logs" + System.Environment.NewLine + "(3) Factory Reset" + System.Environment.NewLine + "(4) Turn Off" + System.Environment.NewLine + ":::::Main Menu:::::"; string currMenu = mainMenu; string menuSel; bool redisplay = false; int result; while (display == true && currDisplay != null) { Console.Clear(); Console.WriteLine(currMenu); //Console.WriteLine(currDisplay); menuSel = Console.ReadLine(); if (redisplay) { switch (menuSel) { case "1": currMenu = mainMenu; currDisplay = "main"; break; case "2": display = false; break; default: break; } redisplay = false; continue; } switch (currDisplay) { case "main": { switch (menuSel) { case "1": currMenu = ":::::Manage Contacts:::::" + System.Environment.NewLine + "(1) View Contacts" + System.Environment.NewLine + "(2) Add Contacts" + System.Environment.NewLine + "(3) Update Contact" + System.Environment.NewLine + "(4) Delete Contact" + System.Environment.NewLine + "(5) Cancel" + System.Environment.NewLine + ":::::Manage Contacts:::::"; currDisplay = "contacts"; continue; case "2": currMenu = ":::::Phone Logs:::::" + System.Environment.NewLine + "(1) View Phone Logs" + System.Environment.NewLine + "(2) Delete Phone Log Entry" + System.Environment.NewLine + "(3) Clear Phone Logs" + System.Environment.NewLine + "(4) Cancel" + System.Environment.NewLine + ":::::Phone Logs:::::"; currDisplay = "phonelogs"; continue; case "3": currMenu = ":::::Factory Reset:::::" + System.Environment.NewLine + "(1) Reset Phone to Factory Settings" + System.Environment.NewLine + "(2) Cancel" + System.Environment.NewLine + ":::::Factory Reset:::::"; currDisplay = "reset"; continue; case "4": currMenu = ":::::Shut Down:::::" + System.Environment.NewLine + "(1) Are you sure you want to shut down?" + System.Environment.NewLine + "(2) Cancel" + System.Environment.NewLine + ":::::Shut Down:::::"; continue; default: currMenu += "\n \nSelection entered wasn't valid, please select options 1-4."; continue; } } case "contacts": { /* *":::::Manage Contacts:::::" + System.Environment.NewLine + * "(1) View Contacts" + System.Environment.NewLine + * "(2) Add Contacts" + System.Environment.NewLine + * "(3) Update Contact" + System.Environment.NewLine + * "(4) Delete Contact" + System.Environment.NewLine + * "(5) Cancel" + System.Environment.NewLine + * ":::::Manage Contacts:::::"; */ bool reDisplayList; switch (menuSel) { case "1": // Update Contact currMenu = ":::::View Contact::::: \n(1) View All Contacts \n(2) Search Contacts \n(3) Cancel \n:::::View Contact:::::"; currDisplay = "view-contacts"; continue; case "2": //Add Contact Console.Clear(); Console.WriteLine(":::::Add Contact:::::"); Console.WriteLine(); string fname, lname, gender, state, city, countryName, addressSt; int age, zip, countryCode, addressID = 0, countryID = 0; long phoneNum; Console.WriteLine("First Name:"); fname = Console.ReadLine(); Console.WriteLine("Last Name:"); lname = Console.ReadLine(); Console.WriteLine("Gender (Male , Female):"); gender = Console.ReadLine(); Console.WriteLine("Phone Number:"); phoneNum = Convert.ToInt64(Console.ReadLine()); Console.WriteLine("Address:"); addressSt = Console.ReadLine(); Console.WriteLine("State:"); state = Console.ReadLine(); Console.WriteLine("City:"); city = Console.ReadLine(); Console.WriteLine("Age:"); age = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Zip Code:"); zip = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Country:"); countryName = Console.ReadLine(); Console.WriteLine("Country Code:"); countryCode = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Save Contact?: (1) Save, (2) Cancel"); result = Convert.ToInt16(Console.ReadLine()); if (result == 1) { //connect.Open(); Country c = null; bool storeData = true; foreach (var item in CountryDA.CtryList) { if (Convert.ToString(item.CountryName).ToLower() == countryName.ToLower()) { c = item; storeData = false; } } if (storeData) { c = new Country(); c.CountryName = countryName; c.CountryCode = countryCode; //=============================================== //DATA ACCESS METHOD CountryDA.insert(c); //=============================================== } Address a = new Address(addressSt, city, state, zip, c.CountryID, c); AddressDA.insert(a); Contact con = new Contact(fname, lname, age, gender, a.AddressID, phoneNum, a); ContactDA.insert(con); myPhone.contactList.Add(con); currMenu = mainMenu + "\n \n Contact Added!"; currDisplay = "main"; redisplay = true; } else { currMenu = mainMenu; currDisplay = "main"; } continue; case "3": //Update Contacts int contactID = 0; if (myPhone.contactList.Count == 0) { currMenu = mainMenu + "There are no Contacts to Update.\n"; currDisplay = "main"; continue; } Console.Clear(); currMenu = ":::::Update Contact::::: \n Search for a contact to edit by First name or Last name"; reDisplayList = true; while (reDisplayList) { Console.Clear(); Console.WriteLine(currMenu); string search = Console.ReadLine(); var searchQuery = from elements in myPhone.contactList where search.Equals(elements.FName, StringComparison.InvariantCultureIgnoreCase) || search.Equals(elements.LName, StringComparison.InvariantCultureIgnoreCase) select elements; if (searchQuery.Count() == 0) { currMenu += "\n \nThe Search returned no results please try again"; continue; } foreach (var contact in searchQuery) { currMenu += System.Environment.NewLine + contact.displayContact(); } reDisplayList = false; } Console.Clear(); reDisplayList = true; while (reDisplayList) { currMenu += "Please enter the Contact ID of the contact to update."; Console.WriteLine(currMenu); if (int.TryParse(Console.ReadLine(), out contactID)) { Console.WriteLine(contactID); reDisplayList = false; break; } else { currMenu += "\nPlease enter only numeric values for Contact ID.\n"; continue; } } currMenu += "\n \nWhat would you like to update? Press (12) to Cancel \n(1) First Name \n(2) Last Name \n(3) Gender \n(4) Address \n(5) State \n(6) City \n(7) Country \n(8) Age \n(9) Zip Code \n(10) Country Code \n(11) Phone Number"; var updateCol = ""; var updateElement = new Contact(); foreach (var item in myPhone.contactList) { if (item.ContactId == contactID) { updateElement = item; break; } } reDisplayList = true; while (reDisplayList) { Console.Clear(); Console.WriteLine(currMenu); string sel = Console.ReadLine(); string updateResult = ""; switch (sel) { case "1": Console.Write("First Name: "); updateCol = "FIRST_NAME"; break; case "2": Console.Write("Last Name: "); updateCol = "LAST_NAME"; break; case "3": Console.Write("Gender: "); updateCol = "GENDER"; break; case "4": Console.Write("Addres: "); updateCol = "ADDRESS"; break; case "5": Console.Write("State: "); updateCol = "STATE"; break; case "6": Console.Write("City: "); updateCol = "CITY"; break; case "7": Console.Write("Country: "); updateCol = "COUNTRY_NAME"; break; case "8": Console.Write("Age: "); updateCol = "AGE"; break; case "9": Console.Write("Zip Code: "); updateCol = "ZIP_CODE"; break; case "10": Console.Write("Country Code: "); updateCol = "COUNTRY_CODE"; break; case "11": Console.Write("Phone Number: "); updateCol = "PHONE_NUMBER"; break; case "12": currMenu = mainMenu; currDisplay = "main"; reDisplayList = false; continue; default: currMenu += "\n \nSelection entered wasn't valid, please select options 1-11 or 12 to Cancel"; continue; } updateResult = Console.ReadLine(); /*string command; * if (updateCol == "COUNTRY_NAME" || updateCol == "COUNTRY_CODE") * { * command = $"UPDATE dbo.Country " + * $"SET {updateCol} = @{updateCol} " + * $"WHERE COUNTRY_ID = {updateElement.Address.Country.CountryID}"; * }else if(updateCol == "ADDRESS" || updateCol == "CITY" || updateCol == "STATE" || updateCol == "ZIP_CODE") * { * command = $"UPDATE dbo.Address " + * $"SET {updateCol} = @{updateCol} " + * $"WHERE ADDRESS_ID = {updateElement.Address.AddressID}"; * } * else * { * command = $"UPDATE dbo.Contacts " + * $"SET {updateCol} = @{updateCol} " + * $"WHERE CONTACT_ID = {updateElement.ContactId}"; * } * using (SqlDataAdapter dataAdapter = new SqlDataAdapter()) * { * connect.Open(); * using (sqlCommand = new SqlCommand(command, connect)) * { * if(updateCol.Equals("AGE") || updateCol == "ZIP_CODE" || updateCol == "COUNTRY_CODE") * { * sqlCommand.Parameters.AddWithValue($"@{updateCol}", Convert.ToInt32(updateResult)); * }else if (updateCol == "PHONE_NUMBER") * { * sqlCommand.Parameters.AddWithValue($"@{updateCol}", Convert.ToInt64(updateResult)); * } * else * { * sqlCommand.Parameters.AddWithValue($"@{updateCol}", updateResult); * } * sqlCommand.ExecuteNonQuery(); * } * connect.Close(); * };*/ ContactDA.update(updateCol, updateElement, updateResult); myPhone.contactList = ContactDA.read(); Console.WriteLine("Contact Successfully Updated! Press (1) to continue Press (2) to Cancel"); string continueUpdate = Console.ReadLine(); if (continueUpdate == "1") { continue; } else { reDisplayList = false; currMenu = mainMenu + "\nContact Successfully Updated!"; currDisplay = "main"; continue; } } break; case "4": //Delete Contact if (myPhone.contactList.Count == 0) { currMenu = mainMenu + "There are no Contacts to Delete.\n"; currDisplay = "main"; continue; } redisplay = true; while (redisplay) { currMenu = ":::::Delete Contact:::::\n"; foreach (Contact contact in myPhone.contactList) { currMenu += contact.displayContact() + System.Environment.NewLine; } currMenu += "\nSelect a record to Delete by Contact ID:"; reDisplayList = true; Contact delContact = new Contact(); while (reDisplayList) { Console.Clear(); Console.WriteLine(currMenu); if (int.TryParse(Console.ReadLine(), out contactID)) { foreach (var contact in myPhone.contactList) { if (contact.ContactId == contactID) { delContact = contact; reDisplayList = false; break; } } currMenu += "\nThat Contact ID wasn't found please try again.\n"; continue; } else { currMenu += "\nPlease enter only numeric values for Contact ID.\n"; continue; } } /*command = $"DELETE FROM dbo.Contacts " + * $"WHERE CONTACT_ID = @contactID"; * using (SqlDataAdapter dataAdapter = new SqlDataAdapter()) * { * connect.Open(); * using (sqlCommand = new SqlCommand(command, connect)) * { * sqlCommand.Parameters.AddWithValue("@contactID", delContact.ContactId); * sqlCommand.ExecuteNonQuery(); * } * connect.Close(); * };*/ ContactDA.delete(delContact); myPhone.contactList.Remove(delContact); redisplay = true; while (redisplay) { Console.WriteLine("Contact Deleted Press (1) to Continue (2) to Cancel"); if (int.TryParse(Console.ReadLine(), out result)) { if (result == 1) { break; } else if (result == 2) { currMenu = mainMenu; currDisplay = "main"; redisplay = false; break; } else { Console.WriteLine("\nInvalid Entry try again.\n"); continue; } } else { currMenu += "\nPlease enter only numeric values for Contact ID.\n"; continue; } } } break; case "5": currMenu = mainMenu; currDisplay = "main"; continue; default: currMenu += "\n \nSelection entered wasn't valid, please select options 1-5."; continue; } continue; } case "view-contacts": { switch (menuSel) { case "1": if (myPhone.contactList.Count == 0) { currMenu += System.Environment.NewLine + "No Contacts Saved to Display"; currDisplay = "main"; continue; } Console.Clear(); currMenu = ":::::View All Contacts::::: \n"; foreach (Contact contact in myPhone.contactList) { currMenu += contact.displayContact() + System.Environment.NewLine; } currMenu += "Press (1) to return to Main Menu, Press (2) to close app."; redisplay = true; continue; case "2": Console.WriteLine("Search contacts."); string search = Console.ReadLine(); var searchQuery = from elements in myPhone.contactList where search.Equals(elements.FName, StringComparison.InvariantCultureIgnoreCase) || search.Equals(elements.LName, StringComparison.InvariantCultureIgnoreCase) select elements; currMenu = ":::::Search Contacts::::: \n"; foreach (var contact in searchQuery) { currMenu += contact.displayContact() + System.Environment.NewLine; } currMenu += "Press (1) to return to Main Menu, Press (2) to close app."; redisplay = true; continue; case "3": currMenu = mainMenu; currDisplay = "main"; continue; default: break; } break; } } } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } }