public List<Person> GetPersons(string firstName, string lastName, string policyNumber)
{
OpenConnection();
_command.CommandText =
string.Format(
"SELECT * FROM Persons WHERE FirstName LIKE @FirstName AND LastName LIKE @LastName AND PolicyNumber LIKE @PolicyNumber");
_command.Parameters.Add(GetParam("@FirstName", string.Format("%{0}%", firstName)));
_command.Parameters.Add(GetParam("@LastName", string.Format("%{0}%", lastName)));
_command.Parameters.Add(GetParam("@PolicyNumber", string.Format("%{0}%", policyNumber)));
var persons = new List<Person>();
try
{
using (DbDataReader dataReader = _command.ExecuteReader())
{
while (dataReader.Read())
{
persons.Add(new Person(
(string) dataReader["FirstName"],
(string) dataReader["LastName"],
(DateTime) dataReader["DateOfBirth"],
(string) dataReader["Address"],
(string) dataReader["PolicyNumber"]));
}
}
//LOGGING
Logger.Info("Persons were obtained from database");
}
catch (Exception ex)
{
//LOGGING
Logger.Error("Can't get persons!",ex);
throw new InvalidOperationException("Can't get persons!");
}
finally
{
CloseConnection();
}
return persons;
}