我希望按关键字搜索并按日期范围获取所有出售的产品

时间:2017-08-26 00:48:20

标签: c# api ebay

我在我的应用程序中添加搜索。我希望获得所有已售产品的清单,并按价格计算平均值。

例如:

我可以写:

关键字:Iphone 7初始日期:2017年8月1日最终日期:201/08/13

我希望在两个日期之间使用Iphone 7计算所有销售的产品。

1 个答案:

答案 0 :(得分:0)

在最简单的实施中,您需要 1.解析逻辑 - 将字符串放入可以使用的对象中的东西    来自:关键字:Iphone 7初始日期:2017年8月1日最终日期:201/08/13

为:

// this is an example
public class SearchCriteria
{
   public string Keyword {get;set;}
   public string From {get;set;}
   public string To {get;set;}
}

public class Parser
{

   public SearchCriteria Parse(string searchExpression)
   {
       var keyword = string.Empty;
       var from = DateTime.Min;
       var to = DateTime.Max;
       // To do
       // ... parse your string here
       //
       return new SearchCriteria(){Keyword = keyword, From = from, To = to};
   }

}

2。用于查询转换和执行的对象。你有很多可能的选择,ADO,Linq,EF,ORM,Micro-ORM ......任何可以为你提供记录集/集合的东西

public class ProductsAndAveragePrice
{
    public List<Products> Products {get;set;}
    public decimal AveragePrice {get;set;}
}

 public ProductsAndAveragePrice GetProducts(SearchCriteria criteria)
 {
      // pretend SQL String Based repo
      var sb = new StringBuilder();
      sb.AppendLine("SELECT ProductName, Price ");
      sb.AppendLine("FROM MyProductsTable");
      sb.AppendLine("WHERE Keyword = @keyword");
      sb.AppendLine("AND From >= @from");
      sb.AppendLine("AND To <= @to");

      // To do
      // ...supply the parameters and execute the query

      var products = new List<Product>();
      foreach(var row in rows)
      {
           products.Add(new Product() {Name = row["ProductName"], Price = row["Price"]};
      }

      return new ProductsAndAveragePrice(){
                 Products = products,
                 Price = products.Select(m => m.Price).Ave();
             };
 }

你得到漂移。