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);
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
        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));
            }
        }
Beispiel #4
0
        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);
        }