示例#1
0
        public async Task <IActionResult> GetPrices([FromBody] Request request,
                                                    [FromQuery(Name = "symbol")] string[] symbols,
                                                    [FromQuery(Name = "type")] string type = "query")
        {
            if (string.IsNullOrEmpty(request.ApiKey))
            {
                return(BadRequest());
            }

            type = type.ToLower() switch
            {
                "sell" => "sell",
                "buy" => "buy",
                _ => "query"
            };

            var query = new PriceQuery
            {
                ApiKey  = request.ApiKey,
                Symbols = symbols,
                Type    = type
            };

            await _mediator.Send(query);

            return(Ok());
        }
    }
 public void Initialize()
 {
     cashRegister = new CashRegister();
     priceQuery   = new PriceQuery(
         ItemReference.aReference().withItemCode("APPLE").withUnitPrice(1.20).build(),
         ItemReference.aReference().withItemCode("BANANA").withUnitPrice(1.90).build());
 }
        /// <summary>
        /// Test Find using the Query class
        /// </summary>
        private void Step_30_TestFindByQuery_Generated()
        {
            using (TransactionManager tm = CreateTransaction())
            {
                //Insert Mock Instance
                Price mock   = CreateMockInstance(tm);
                bool  result = DataRepository.PriceProvider.Insert(tm, mock);

                Assert.IsTrue(result, "Could Not Test FindByQuery, Insert Failed");

                PriceQuery query = new PriceQuery();

                query.AppendEquals(PriceColumn.GoodsId, mock.GoodsId.ToString());
                if (mock.Rtprice != null)
                {
                    query.AppendEquals(PriceColumn.Rtprice, mock.Rtprice.ToString());
                }
                if (mock.Averimppr != null)
                {
                    query.AppendEquals(PriceColumn.Averimppr, mock.Averimppr.ToString());
                }
                if (mock.Lastimppr != null)
                {
                    query.AppendEquals(PriceColumn.Lastimppr, mock.Lastimppr.ToString());
                }
                if (mock.Wsprice != null)
                {
                    query.AppendEquals(PriceColumn.Wsprice, mock.Wsprice.ToString());
                }
                if (mock.Prefprice != null)
                {
                    query.AppendEquals(PriceColumn.Prefprice, mock.Prefprice.ToString());
                }
                if (mock.Discpercent != null)
                {
                    query.AppendEquals(PriceColumn.Discpercent, mock.Discpercent.ToString());
                }
                if (mock.DiscFrdate != null)
                {
                    query.AppendEquals(PriceColumn.DiscFrdate, mock.DiscFrdate.ToString());
                }
                if (mock.DiscTodate != null)
                {
                    query.AppendEquals(PriceColumn.DiscTodate, mock.DiscTodate.ToString());
                }

                TList <Price> results = DataRepository.PriceProvider.Find(tm, query);

                Assert.IsTrue(results.Count == 1, "Find is not working correctly.  Failed to find the mock instance");
            }
        }
示例#4
0
 public static string LoadAllFoodMonitorSites()
 {
     try
     {
         string result = new PriceQuery().GetAllMonitorSites();
         return(result);
     }
     catch (Exception ex)
     {
         LogHelper.GetInstance().Error(ex.ToString());
         var exResult = new { Code = 0, ex.Message };
         return(JsonConvert.SerializeObject(exResult));
     }
 }
示例#5
0
 public static string LoadFoodMonitorCount(string category, string foodname, string site)
 {
     try
     {
         string result = new PriceQuery().GetFoodMonitorCount(string.IsNullOrEmpty(category) ? null : category,
                                                              string.IsNullOrEmpty(foodname) ? null : foodname, string.IsNullOrEmpty(site) ? null : site);
         return(result);
     }
     catch (Exception ex)
     {
         LogHelper.GetInstance().Error(ex.ToString());
         var exResult = new { Code = 0, ex.Message };
         return(JsonConvert.SerializeObject(exResult));
     }
 }
示例#6
0
 public static string LoadFoodByCategory(string category)
 {
     try
     {
         string result =
             new PriceQuery().FilterFoodsByCategory(string.IsNullOrWhiteSpace(category) ? null : category);
         return(result);
     }
     catch (Exception ex)
     {
         LogHelper.GetInstance().Error(ex.ToString());
         var exResult = new { Code = 0, ex.Message };
         return(JsonConvert.SerializeObject(exResult));
     }
 }
示例#7
0
        public async Task <IActionResult> GetPricesDemo([FromQuery(Name = "symbol")] string[] symbols,
                                                        [FromQuery(Name = "type")] string type = "query")
        {
            type = type.ToLower() switch
            {
                "sell" => "sell",
                "buy" => "buy",
                _ => "query"
            };

            var query = new PriceQuery
            {
                Symbols = symbols,
                ApiKey  = _default.ApiKey,
                Type    = type
            };

            await _mediator.Send(query);

            return(Ok());
        }
 void AfterUnload(PriceQuery sch, string TableName, int LastVersion)
 {
     if (sch.InsertStatments == null)
         return;
     using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["apt"].ConnectionString))
     {
         if (conn.State != ConnectionState.Open)
             conn.Open();
         using (SqlCommand cmd = conn.CreateCommand())
         {
             cmd.CommandText = string.Format(sch.InsertStatments, TableName);
             cmd.Parameters.Add("ImportSession", SqlDbType.Int).Value = LastVersion;
             foreach (var variable in sch.Variables)
             {
                 cmd.Parameters.Add(variable.Key, SqlDbType.VarChar).Value = variable.Value;
             }
             cmd.ExecuteNonQuery();
         }
     }
     Log.Info("Изменения сохранены " + scheme.Type + ": " + LastVersion);
 }
 bool Upload(PriceQuery query, DataTable dt, int LastVersion)
 {
     if (!TableCreator.BulkData(scheme, dt, p => AfterUnload(query, p, LastVersion)))
     {
         Log.Error("Изменения не зафиксированы  " + scheme.Type + " " + query.Name);
         return false;
     }
     return true;
 }
示例#10
0
        private void FoodPriceBinding()
        {
            var    query  = new PriceQuery();
            string json   = query.GetFoodMonitorCount("蔬菜", null, null);
            var    source = new List <FoodPriceVo>();
            int    count  = 0;

            if (json.JObjCodeTrue())
            {
                count = json.JobjMessageConvert <int>();
                if (count > 0)
                {
                    json = query.GetFoodMonitorsByPage("蔬菜", null, null, 1, 1);

                    var food1 = (from item in json.JObjMessageToken()
                                 select new FoodPriceVo
                    {
                        Category = "蔬菜",
                        Food = item["FoodName"].ValueOrDefault <string>(),
                        Price = item["Price"].ValueOrDefault <string>(),
                        Unit = item["Unit"].ValueOrDefault <string>(),
                        Site = item["SiteName"].ValueOrDefault <string>(),
                        Count = count
                    }).FirstOrDefault();
                    source.Add(food1);
                }
            }

            json = query.GetFoodMonitorCount("肉", null, null);

            if (json.JObjCodeTrue())
            {
                count = json.JobjMessageConvert <int>();
                if (count > 0)
                {
                    json = query.GetFoodMonitorsByPage("肉", null, null, 1, 1);
                    var food1 = (from item in json.JObjMessageToken()
                                 select new FoodPriceVo
                    {
                        Category = "肉",
                        Food = item["FoodName"].ValueOrDefault <string>(),
                        Price = item["Price"].ValueOrDefault <string>(),
                        Unit = item["Unit"].ValueOrDefault <string>(),
                        Site = item["SiteName"].ValueOrDefault <string>(),
                        Count = count
                    }).FirstOrDefault();
                    source.Add(food1);
                }
            }
            json = query.GetFoodMonitorCount("鱼", null, null);

            if (json.JObjCodeTrue())
            {
                count = json.JobjMessageConvert <int>();
                if (count > 0)
                {
                    json = query.GetFoodMonitorsByPage("鱼", null, null, 1, 1);
                    var food1 = (from item in json.JObjMessageToken()
                                 select new FoodPriceVo
                    {
                        Category = "鱼",
                        Food = item["FoodName"].ValueOrDefault <string>(),
                        Price = item["Price"].ValueOrDefault <string>(),
                        Unit = item["Unit"].ValueOrDefault <string>(),
                        Site = item["SiteName"].ValueOrDefault <string>(),
                        Count = count
                    }).FirstOrDefault();
                    source.Add(food1);
                }
            }

            json = query.GetFoodMonitorCount("蛋", null, null);

            if (json.JObjCodeTrue())
            {
                count = json.JobjMessageConvert <int>();
                if (count > 0)
                {
                    json = query.GetFoodMonitorsByPage("蛋", null, null, 1, 1);
                    var food1 = (from item in json.JObjMessageToken()
                                 select new FoodPriceVo
                    {
                        Category = "蛋",
                        Food = item["FoodName"].ValueOrDefault <string>(),
                        Price = item["Price"].ValueOrDefault <string>(),
                        Unit = item["Unit"].ValueOrDefault <string>(),
                        Site = item["SiteName"].ValueOrDefault <string>(),
                        Count = count
                    }).FirstOrDefault();
                    source.Add(food1);
                }
            }
            json = query.GetFoodMonitorCount("水果", null, null);

            if (json.JObjCodeTrue() && count > 0)
            {
                count = json.JobjMessageConvert <int>();
                if (count > 0)
                {
                    json = query.GetFoodMonitorsByPage("水果", null, null, 1, 1);
                    var food1 = (from item in json.JObjMessageToken()
                                 select new FoodPriceVo
                    {
                        Category = "水果",
                        Food = item["FoodName"].ValueOrDefault <string>(),
                        Price = item["Price"].ValueOrDefault <string>(),
                        Unit = item["Unit"].ValueOrDefault <string>(),
                        Site = item["SiteName"].ValueOrDefault <string>(),
                        Count = count
                    }).FirstOrDefault();
                    source.Add(food1);
                }
            }

            RepeaterFood.DataSource = source;
            RepeaterFood.DataBind();
        }