public IEnumerable <IRelease> GetReleasesToSearch(string searchQuery) { string[] words = searchQuery.Split(' ', StringSplitOptions.RemoveEmptyEntries); List <IRelease> toReturn = new List <IRelease>(); using (SqlConnection conn = new SqlConnection(connectionstring)) { using (SqlCommand cmd = new SqlCommand(@"GetReleasesToSearch", conn)) { cmd.CommandType = CommandType.StoredProcedure; SqlParameter searchWord = new SqlParameter("@searchWord", SqlDbType.VarChar, 200); conn.Open(); foreach (string word in words) { searchWord.Value = word; if (!cmd.Parameters.Contains(searchWord)) { cmd.Parameters.Add(searchWord); } cmd.Prepare(); using (SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { IRelease tempRelease = new ReleaseDto { Category = new CategoryDto { Name = reader["category"].ToString() }, Title = reader["title"].ToString(), Description = reader["description"].ToString(), Id = Convert.ToInt32(reader["id"]) }; toReturn.Add(tempRelease); } } } } // Removes duplicates from the list toReturn = toReturn.GroupBy(x => x.Id).Select(g => g.FirstOrDefault()).ToList(); return(toReturn); } }
public List <IRelease> GetAll() { List <IRelease> toReturn = new List <IRelease>(); using (SqlConnection conn = new SqlConnection(connectionstring)) { using (SqlCommand cmd = new SqlCommand(@"GetAllReleases", conn)) { cmd.CommandType = CommandType.StoredProcedure; conn.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { IRelease release = new ReleaseDto { Title = reader["releaseName"].ToString(), FollowerCount = (int)reader["followCount"], ReleaseDate = Convert.ToDateTime(reader["releaseDate"]), CreationDate = Convert.ToDateTime(reader["creationDate"]), Id = (int)reader["releaseId"], Description = reader["description"].ToString(), ImgLocation = reader["ReleaseImage"].ToString(), User = new UserDto { ImgLocation = reader["userImage"].ToString(), Username = reader["username"].ToString() }, Category = new CategoryDto { ImgLocation = reader["categoryImage"].ToString(), Name = reader["CategoryName"].ToString() } }; toReturn.Add(release); } } } } return(toReturn); }