protected override void UploadData()
        {
            try
            {
                LogHelper.doLog(this.ClassName, "==準備發送==\r\n" + StockPricesList.Count.ToString() + "筆");

                for (int i = 0; i < StockPricesList.Count; i = i + 100)
                {
                    var items = StockPricesList.Skip(i).Take(100);

                    ReceiveByDeilyPriceReqModel StockPricesReq = new ReceiveByDeilyPriceReqModel();
                    StockPricesReq.StockPrices = items.ToList();
                    var jsonText = "{\"ReqParam\" : " + JsonConvert.SerializeObject(StockPricesReq) + @"}";
                    LogHelper.doLog(this.ClassName, "==發送(" + StockPricesReq.StockPrices.Count().ToString() + "筆)==\r\n" + jsonText);
                    WebClient client = new WebClient();
                    client.Encoding = Encoding.UTF8;
                    client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                    client.Headers.Add("PowerAdmin", Common.Tools.Setting.AppSettings("PowerAdmin"));
                    var    response  = client.UploadData(UploadUrl, "POST", Encoding.UTF8.GetBytes(jsonText));
                    string resResult = Encoding.UTF8.GetString(response);
                    LogHelper.doLog(this.ClassName, "==接收==\r\n" + resResult);
                }
                System.IO.File.WriteAllText(this.CheckDoneFullPath, "done");
                LogHelper.doLog(this.ClassName, "[Succ]Done");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        /// <summary>
        /// 接收(Json)更新股價
        /// </summary>
        /// <returns></returns>
        public ActionResult ReceiveByDeilyPrice(ReceiveByDeilyPriceReqModel ReqParam)
        {
            BaseResModel<Object> result = new BaseResModel<Object>();
            try
            {
                Common.Tools.AuthHelper.IsPowerAdmin(Request);
                int SuccCount = 0;
                int FailCount = 0;
                // Open database (or create if not exits)
                using (var db = new LiteDatabase(LazyStockDBPath))
                {
                    // Get customer collection
                    var StockInfos = db.GetCollection<StockInfoResModel>("StockInfo");

                    for (int i = 0; i < ReqParam.StockPrices.Count; i++)
                    {
                        StockPriceDataModel items = ReqParam.StockPrices[i];
                        try
                        {
                            var DbStockPrice = StockInfos.FindById(items.StockNum);
                            if (DbStockPrice == null)
                                continue;

                            DbStockPrice.Price = Math.Round(items.StockPrice, 2);
                            DbStockPrice.PriceModifyDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                            StockInfos.Update(items.StockNum, DbStockPrice);
                            SuccCount++;
                        }
                        catch
                        {
                            FailCount++;
                        }
                    }
                }

                result.Message = "成功:" + SuccCount.ToString() + ",失敗:" + FailCount.ToString();
                result.Code = ResponseCodeEnum.Success;
                LogHelper.doLog("ReceiveByDeilyPrice", result.Message);
            }
            catch (Exception e)
            {
                result.Code = ResponseCodeEnum.Failed;
                result.Message = e.Message;
            }
            return Json(result, JsonRequestBehavior.AllowGet);
        }