/// <summary> /// Returns a product given its id, or null if the id does not match a product. /// </summary> /// <param name="productId"></param> /// <returns></returns> public Product GetProductById(int productId) { using (var context = new searchpdEntities()) { Product product = context.Products.Find(productId); return product; } }
/// <summary> /// Returns a category given its id, or null if the id does not match a category. /// </summary> /// <param name="categoryId"></param> /// <returns></returns> public Category GetCategoryById(int categoryId) { using (var context = new searchpdEntities()) { Category category = context.Categories.Find(categoryId); return category; } }
/// <summary> /// Gets all product suggestions from the database. /// </summary> /// <returns></returns> public IEnumerable<ProductSuggestion> GetAllSuggestions() { using (var context = new searchpdEntities()) { IEnumerable<ProductSuggestion> suggestions = context.Products.Select(p => new ProductSuggestion { ProductCode = p.Code, ProductId = p.ProductID }).ToList(); return suggestions; } }
/// <summary> /// Gets all product search results from the database. /// /// This simply retrieves all Products from the database and returns them as /// ProductSearchResults. /// </summary> /// <returns></returns> public IEnumerable<ProductSearchResult> GetAllProductSearchResults() { using (var context = new searchpdEntities()) { IEnumerable<ProductSearchResult> results = context.Products.Select(p => new ProductSearchResult { ProductDescription = p.Description, ProductCode = p.Code, ProductId = p.ProductID }).ToList(); return results; } }
/// <summary> /// Gets all category suggestions from the database. /// </summary> /// <returns></returns> public IEnumerable<CategorySuggestion> GetAllSuggestions() { using (var context = new searchpdEntities()) { // This will not return the top most category WEBONLINE, because its 0 ParentID doesn't join with any other category. IEnumerable<CategorySuggestion> suggestions = context.Categories.Join( context.Categories, c => c.ParentID, p => p.CategoryID, (c, p) => new CategorySuggestion { CategoryName = c.Name, CategoryId = c.CategoryID, ParentName = (p.ParentID == 0) ? "" : p.Name, ParentId = (p.ParentID == 0) ? 0 : p.CategoryID }).ToList(); //TODO: Optimise this by using a left join instead return suggestions; } }