Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 20 additions & 25 deletions PhoneBookTestApp/PhoneBookTestApp/DatabaseUtil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ namespace PhoneBookTestApp
{
public class DatabaseUtil
{
/// <summary>
/// Create Phone book Table In Database
/// </summary>
public static void initializeDatabase()
{
var dbConnection = new SQLiteConnection("Data Source= MyDatabase.sqlite;Version=3;");
dbConnection.Open();
var dbConnection = GetConnection();

try
{
Expand All @@ -17,19 +19,6 @@ public static void initializeDatabase()
"create table PHONEBOOK (NAME varchar(255), PHONENUMBER varchar(255), ADDRESS varchar(255))",
dbConnection);
command.ExecuteNonQuery();

command =
new SQLiteCommand(
"INSERT INTO PHONEBOOK (NAME, PHONENUMBER, ADDRESS) VALUES('Chris Johnson','(321) 231-7876', '452 Freeman Drive, Algonac, MI')",
dbConnection);
command.ExecuteNonQuery();

command =
new SQLiteCommand(
"INSERT INTO PHONEBOOK (NAME, PHONENUMBER, ADDRESS) VALUES('Dave Williams','(231) 502-1236', '285 Huron St, Port Austin, MI')",
dbConnection);
command.ExecuteNonQuery();

}
catch (Exception)
{
Expand All @@ -41,18 +30,12 @@ public static void initializeDatabase()
}
}

public static SQLiteConnection GetConnection()
{
var dbConnection = new SQLiteConnection("Data Source= MyDatabase.sqlite;Version=3;");
dbConnection.Open();

return dbConnection;
}

/// <summary>
/// Delete Table Phone Book On Application Close
/// </summary>
public static void CleanUp()
{
var dbConnection = new SQLiteConnection("Data Source= MyDatabase.sqlite;Version=3;");
dbConnection.Open();
var dbConnection = GetConnection();

try
{
Expand All @@ -71,5 +54,17 @@ public static void CleanUp()
dbConnection.Close();
}
}

/// <summary>
/// Get Database Connection
/// </summary>
/// <returns>Database Connection Object</returns>
public static SQLiteConnection GetConnection()
{
var dbConnection = new SQLiteConnection("Data Source= MyDatabase.sqlite;Version=3;");
dbConnection.Open();

return dbConnection;
}
}
}
24 changes: 21 additions & 3 deletions PhoneBookTestApp/PhoneBookTestApp/IPhoneBook.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,26 @@
namespace PhoneBookTestApp
using System.Collections.Generic;
namespace PhoneBookTestApp
{
public interface IPhoneBook
{
Person findPerson(string firstName, string lastName);
void addPerson(Person newPerson);
/// <summary>
/// Find Person With Given Name In Phone Boook
/// </summary>
/// <param name="firstName">Person First Name</param>
/// <param name="lastName">Person Last Name</param>
/// <returns>Found Person Information</returns>
Person FindPerson(string firstName, string lastName);

/// <summary>
/// Add Person In Phone Book
/// </summary>
/// <param name="person">Person To Be Added</param>
void AddPerson(Person newPerson);

/// <summary>
/// Get All Person Present In The Phone Boook
/// </summary>
/// <returns>List Of Persons</returns>
IList<Person> GetAllPersons();
}
}
11 changes: 11 additions & 0 deletions PhoneBookTestApp/PhoneBookTestApp/Person.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,19 @@
{
public class Person
{
/// <summary>
/// Person Name
/// </summary>
public string name;

/// <summary>
/// Person Phone Number
/// </summary>
public string phoneNumber;

/// <summary>
/// Person Address
/// </summary>
public string address;
}
}
108 changes: 104 additions & 4 deletions PhoneBookTestApp/PhoneBookTestApp/PhoneBook.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,115 @@
namespace PhoneBookTestApp
using System;
using System.Collections.Generic;
using System.Data.SQLite;
namespace PhoneBookTestApp
{
public class PhoneBook : IPhoneBook
{
/// <summary>
/// Add Person In Phone Book
/// </summary>
/// <param name="person">Person To Be Added</param>
public void AddPerson(Person person)
{
throw new System.NotImplementedException();
var dbConnection = DatabaseUtil.GetConnection();
try
{
SQLiteCommand command =
new SQLiteCommand(
"INSERT INTO PHONEBOOK (NAME, PHONENUMBER, ADDRESS) VALUES(@personName,@personContact, @personAddress)",
dbConnection);
command.Parameters.AddWithValue("@personName", person.name);
command.Parameters.AddWithValue("@personContact", person.phoneNumber);
command.Parameters.AddWithValue("@personAddress", person.address);
command.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
dbConnection.Close();
}
}

public Person findPerson()
/// <summary>
/// Find Person With Given Name In Phone Boook
/// </summary>
/// <param name="firstName">Person First Name</param>
/// <param name="lastName">Person Last Name</param>
/// <returns>Found Person Information</returns>
public Person FindPerson(string firstName, string lastName)
{
throw new System.NotImplementedException();
Person person = new Person();
if (!(string.IsNullOrEmpty(firstName) && string.IsNullOrEmpty(lastName)))
{
var dbConnection = DatabaseUtil.GetConnection();
try
{
string personName = (firstName + " " + lastName).Trim();
SQLiteCommand command =
new SQLiteCommand(
"SELECT NAME, PHONENUMBER, ADDRESS FROM PHONEBOOK WHERE NAME LIKE @personName ORDER BY NAME ASC LIMIT 1", dbConnection);
command.Parameters.AddWithValue("@personName", "%" + personName + "%");
using (var oReader = command.ExecuteReader())
{
while (oReader.Read())
{
person.name = oReader.GetString(0);
person.phoneNumber = oReader.GetString(1);
person.address = oReader.GetString(2);
}
}
}
catch (Exception)
{
throw;
}
finally
{
dbConnection.Close();
}
}

return person;
}

/// <summary>
/// Get All Person Present In The Phone Boook
/// </summary>
/// <returns>List Of Persons</returns>
public IList<Person> GetAllPersons()
{
var dbConnection = DatabaseUtil.GetConnection();
IList<Person> personsList = new List<Person>();
try
{
SQLiteCommand command =
new SQLiteCommand(
"SELECT NAME, PHONENUMBER, ADDRESS FROM PHONEBOOK ", dbConnection);
using (var oReader = command.ExecuteReader())
{
while (oReader.Read())
{
Person pp = new Person();
pp.name = oReader.GetString(0);
pp.phoneNumber = oReader.GetString(1);
pp.address = oReader.GetString(2);
personsList.Add(pp);
}
}
}
catch (Exception)
{
throw;
}
finally
{
dbConnection.Close();
}

return personsList;
}
}
}
4 changes: 3 additions & 1 deletion PhoneBookTestApp/PhoneBookTestApp/PhoneBookTestApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,9 @@
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
<None Include="packages.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.99.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.99.0\build\net46\System.Data.SQLite.Core.targets')" />
Expand Down
65 changes: 60 additions & 5 deletions PhoneBookTestApp/PhoneBookTestApp/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,75 @@ static void Main(string[] args)
try
{
DatabaseUtil.initializeDatabase();
/* TODO: create person objects and put them in the PhoneBook and database
* John Smith, (248) 123-4567, 1234 Sand Hill Dr, Royal Oak, MI
* Cynthia Smith, (824) 128-8758, 875 Main St, Ann Arbor, MI
*/

Program pg = new Program();

// TODO: insert the new person objects into the database
pg.AddNewPersons();

// TODO: print the phone book out to System.out
pg.GetAllPhonebookRecords();

// TODO: find Cynthia Smith and print out just her entry
// TODO: insert the new person objects into the database
pg.FindRecordWithGivenName("", "mi");

Console.WriteLine("\nPress any key to exit.");
Console.ReadKey();
}
finally
{
DatabaseUtil.CleanUp();
}
}

/// <summary>
/// Add new persons to database
/// </summary>
private void AddNewPersons()
{
/* TODO: create person objects and put them in the PhoneBook and database
* John Smith, (248) 123-4567, 1234 Sand Hill Dr, Royal Oak, MI
* Cynthia Smith, (824) 128-8758, 875 Main St, Ann Arbor, MI
*/
phonebook.AddPerson(new Person { name = "Chris Johnson", phoneNumber = "(321) 231-7876", address = "452 Freeman Drive, Algonac, MI" });
phonebook.AddPerson(new Person { name = "Dave Williams", phoneNumber = "(231) 502-1236", address = "285 Huron St, Port Austin, MI" });
phonebook.AddPerson(new Person { name = "John Smith", phoneNumber = "(248) 123-4567", address = "1234 Sand Hill Dr, Royal Oak, MI" });
phonebook.AddPerson(new Person { name = "Cynthia Smith", phoneNumber = "(824) 128-8758", address = "875 Main St, Ann Arbor, MI" });
}

/// <summary>
/// Find Record With Given Name
/// </summary>
/// <param name="firstName">First Name Of Person</param>
/// <param name="lastName">Last Name Of Person</param>
private void FindRecordWithGivenName(string firstName, string lastName)
{
Person person= phonebook.FindPerson(firstName.Trim(), lastName.Trim());
Console.WriteLine(Environment.NewLine);
if (person != null && person.address != null) {
Console.WriteLine("Found below Record");
Console.WriteLine("Name = {0}, PhoneNumber = {1}, Address = {2}", person.name,
person.phoneNumber, person.address);
}
else
{
Console.WriteLine("No Matching Record Found");
}

}

/// <summary>
/// Show All Data Present In phonebok
/// </summary>
private void GetAllPhonebookRecords()
{
var personsList = phonebook.GetAllPersons();
for (int index = 0; index < personsList.Count; index++)
{
Console.WriteLine("{0} ,Name = {1}, PhoneNumber = {2}, Address = {3}", index, personsList[index].name,
personsList[index].phoneNumber, personsList[index].address);
}
}

}
}