public IEnumerable <Dvd> Search(DvdSearchParameter parameters) { List <Dvd> dvds = new List <Dvd>(); using (var cn = new SqlConnection(Settings.GetConnectionString())) { string query = "SELECT DvdId, Title, ReleaseYear, DirectorName, RatingName, Notes FROM Dvd WHERE 1=1"; SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; if (!string.IsNullOrEmpty(parameters.Title)) { query += "AND Title LIKE @Title"; cmd.Parameters.AddWithValue("@Title", parameters.Title + '%'); } if (parameters.ReleaseYear.HasValue) { query += "AND ReleaseYear = @ReleaseYear"; cmd.Parameters.AddWithValue("@ReleaseYear", parameters.ReleaseYear); } if (!string.IsNullOrEmpty(parameters.DirectorName)) { query += "AND DirectorName LIKE @DirectorName"; cmd.Parameters.AddWithValue("@DirectorName", parameters.DirectorName + '%'); } if (!string.IsNullOrEmpty(parameters.RatingName)) { query += "AND RatingName = @RatingName"; cmd.Parameters.AddWithValue("@RatingName", parameters.RatingName); } cmd.CommandText = query; cn.Open(); using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { Dvd row = new Dvd(); row.DvdId = (int)dr["DvdId"]; row.Title = dr["Title"].ToString(); row.ReleaseYear = (int)dr["ReleaseYear"]; row.DirectorName = dr["DirectorName"].ToString(); row.RatingName = dr["RatingName"].ToString(); row.Notes = dr["Notes"].ToString(); dvds.Add(row); } } } return(dvds); }
public IHttpActionResult SearchByDirector(string directorName) { try { var parameters = new DvdSearchParameter() { DirectorName = directorName }; var result = repo.Search(parameters); return(Ok(result)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult SearchByTitle(string title) { try { var parameters = new DvdSearchParameter() { Title = title }; var result = repo.Search(parameters); return(Ok(result)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult SearchByYear(int?releaseYear) { try { var parameters = new DvdSearchParameter() { ReleaseYear = releaseYear }; var result = repo.Search(parameters); return(Ok(result)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IEnumerable <Dvd> Search(DvdSearchParameter parameters) { IEnumerable <Dvd> dvds = new List <Dvd>(); string title = parameters.Title; int? year = parameters.ReleaseYear; string directorName = parameters.DirectorName; string ratingName = parameters.RatingName; if (!string.IsNullOrEmpty(title)) { dvds = from d in _dvds where d.Title == title select d; } if (year.HasValue) { dvds = from d in _dvds where d.ReleaseYear == year select d; } if (!string.IsNullOrEmpty(directorName)) { dvds = from d in _dvds where d.DirectorName == directorName select d; } if (!string.IsNullOrEmpty(ratingName)) { dvds = from d in _dvds where d.RatingName == ratingName select d; } return(dvds); }