public static void InitData(databases.baseDS.exchangeDetailRow row) { row.code = ""; row.marketCode = ""; row.address = ""; row.isEnabled = true; row.orderId = 0; row.culture = commonTypes.Consts.constDefaultCultureCode; }
protected override bool GetData(databases.baseDS.exchangeDetailRow exchangeDetailRow, ref MarketData vnIdx, ref MarketData vn30Idx) { clientSSI.AjaxWebServiceSoapClient client = null; try { client = new clientSSI.AjaxWebServiceSoapClient(); client.Endpoint.Address = new System.ServiceModel.EndpointAddress(exchangeDetailRow.address); System.ServiceModel.BasicHttpBinding binding = (client.Endpoint.Binding as System.ServiceModel.BasicHttpBinding); binding.OpenTimeout = TimeSpan.FromSeconds(Consts.constWebServiceTimeOutInSecs); binding.CloseTimeout = binding.OpenTimeout; binding.SendTimeout = binding.OpenTimeout; binding.MaxReceivedMessageSize = Consts.constWebServiceMaxReceivedMessageSize; binding.MaxBufferSize = Consts.constWebServiceMaxReceivedMessageSize; binding.ReaderQuotas.MaxStringContentLength = Consts.constWebServiceMaxStringContentLength; binding.ReaderQuotas.MaxBytesPerRead = Consts.constWebServiceMaxBytesPerRead; CultureInfo dataCulture = application.AppLibs.GetCulture(exchangeDetailRow.culture); String s = client.GetMarketAllIndex(0); List <string> tradeList = new List <string>(s.Split('$')); for (int i = 0; i < tradeList.Count; i++) { List <string> tradeData = new List <string>(tradeList[i].Split('|')); if (tradeData[0].Trim() == "" || tradeData[1].Trim() == "" || tradeData[8].Trim() == "" || tradeData[9].Trim() == "") { continue; } vnIdx.Value = decimal.Parse(tradeData[0], dataCulture); vnIdx.TotalQty = decimal.Parse(tradeData[1], dataCulture); vnIdx.TotalAmt = decimal.Parse(tradeData[2], dataCulture); vn30Idx.Value = decimal.Parse(tradeData[11], dataCulture); vn30Idx.TotalQty = decimal.Parse(tradeData[14], dataCulture); vn30Idx.TotalAmt = decimal.Parse(tradeData[15], dataCulture); return(true); } } catch (WebException e) { return(false); } finally { if (client != null && client.State == System.ServiceModel.CommunicationState.Opened) { client.Close(); } } return(true); }
public virtual bool ImportFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow exchangeDetailRow) { databases.baseDS.priceDataDataTable priceTbl = GetImportFromWeb(updateTime, exchangeDetailRow); if (priceTbl == null) { return(false); } // Different culture has different start of week, ie in VN culture : start of week is Monday (not Sunday) CultureInfo exchangeCulture = application.AppLibs.GetExchangeCulture(exchangeDetailRow.marketCode); databases.AppLibs.AggregatePriceData(priceTbl, exchangeCulture, null); return(true); }
public static bool ImportFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow exchangeDetailRow) { bool retVal = true; switch (exchangeDetailRow.code.Trim().ToUpper()) { case "HOSE_MHBS": Stock.hoseImport hoseImport = new Stock.hoseImport(); retVal = hoseImport.ImportFromWeb(updateTime, exchangeDetailRow); break; case "HASTC_MHBS": Stock.htastcImport htastcImport = new Stock.htastcImport(); retVal = htastcImport.ImportFromWeb(updateTime, exchangeDetailRow); break; case "HOSE_SSI": case "HASTC_SSI": Stock.ssi_StockImport ssiStockImport = new Stock.ssi_StockImport(); retVal = ssiStockImport.ImportFromWeb(updateTime, exchangeDetailRow); break; case "VNIDX_SSI": Stock.ssi_vnIdxImport vnIdxSSI = new Stock.ssi_vnIdxImport(); retVal = vnIdxSSI.ImportFromWeb(updateTime, exchangeDetailRow); break; case "VNIDX_VSE": Stock.vnIdxImport vnIdxVSE = new Stock.vnIdxImport(); retVal = vnIdxVSE.ImportFromWeb(updateTime, exchangeDetailRow); break; case "HN_IDX1": //?? Stock.hnIdxImport hnIdxImport = new Stock.hnIdxImport(); retVal = hnIdxImport.ImportFromWeb(updateTime, exchangeDetailRow); break; case "GOLD_FOREX": Gold.forexImport forexImport = new Gold.forexImport(); retVal = forexImport.ImportFromWeb(updateTime, exchangeDetailRow); break; case "GOLD_KITCO": Gold.kitcoImport kitcoImport = new Gold.kitcoImport(); retVal = kitcoImport.ImportFromWeb(updateTime, exchangeDetailRow); break; } return(retVal); }
protected virtual bool GetData(databases.baseDS.exchangeDetailRow exchangeDetailRow, ref MarketData vnIdx, ref MarketData vn30Idx) { CultureInfo dataCulture = common.language.GetCulture("en-US"); //Hose clientHOSE.HoSTC_ServiceSoapClient client = new Imports.clientHOSE.HoSTC_ServiceSoapClient(); client.Endpoint.Address = new System.ServiceModel.EndpointAddress(exchangeDetailRow.address); System.ServiceModel.BasicHttpBinding binding = (client.Endpoint.Binding as System.ServiceModel.BasicHttpBinding); binding.OpenTimeout = TimeSpan.FromSeconds(Consts.constWebServiceTimeOutInSecs); binding.CloseTimeout = binding.OpenTimeout; binding.SendTimeout = binding.OpenTimeout; binding.MaxReceivedMessageSize = Consts.constWebServiceMaxReceivedMessageSize; binding.MaxBufferSize = Consts.constWebServiceMaxReceivedMessageSize; binding.ReaderQuotas.MaxStringContentLength = Consts.constWebServiceMaxStringContentLength; binding.ReaderQuotas.MaxBytesPerRead = Consts.constWebServiceMaxBytesPerRead; string[] arr = client.GetLiveTotalMKT().Split('*'); string content = string.Empty; List <string> rows = new List <string>(); foreach (var item in arr) { if (item.Trim() == "") { continue; } rows.Add(item); content += item + Environment.NewLine; } string[] dRow = rows[8].Split('|'); vnIdx.Value = decimal.Parse(dRow[0], dataCulture); vnIdx.TotalQty = decimal.Parse(dRow[4], dataCulture); vnIdx.TotalAmt = decimal.Parse(dRow[5], dataCulture); vn30Idx.Value = decimal.Parse(dRow[10], dataCulture); vn30Idx.TotalQty = 0; vn30Idx.TotalAmt = 0; return(true); }
public virtual bool ImportFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow exchangeDetailRow) { try { databases.baseDS.priceDataDataTable priceTbl = GetImportFromWeb(updateTime, exchangeDetailRow); if (priceTbl == null) { return(false); } // Different culture has different start of week, ie in VN culture : start of week is Monday (not Sunday) CultureInfo exchangeCulture = application.AppLibs.GetExchangeCulture(exchangeDetailRow.marketCode); databases.AppLibs.AggregatePriceData(priceTbl, exchangeCulture, null); return(true); } catch (Exception er) { //retVal = false; commonClass.SysLibs.WriteSysLog(common.SysSeverityLevel.Error, "SRV004", er); return(false); } }
public override databases.baseDS.priceDataDataTable GetImportFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow exchangeDetailRow) { try { databases.importDS.importPriceDataTable importPriceTbl; metaStock meta = GetMeta(); if (meta == null) { return(null); } //try //{ importPriceTbl = GetPriceFromWeb(updateTime, meta, exchangeDetailRow); Imports.Libs.AddNewCode(exchangeDetailRow.marketCode, importPriceTbl, null); databases.DbAccess.UpdateData(importPriceTbl); ////} //catch (Exception er) //{ // commonClass.SysLibs.WriteSysLog(common.SysSeverityLevel.Error, "SRV004 - Import price error", er); // throw er; //} //try //{ databases.baseDS.priceDataDataTable priceTbl = new databases.baseDS.priceDataDataTable(); Imports.Libs.AddImportPrice(importPriceTbl, priceTbl); databases.DbAccess.UpdateData(priceTbl); return(priceTbl); //} //catch (Exception er) //{ // commonClass.SysLibs.WriteSysLog(common.SysSeverityLevel.Error, "SRV004 - Price Data table", er); // throw er; //} } catch (Exception er) { commonClass.SysLibs.WriteSysLog(common.SysSeverityLevel.Error, "SRV004 - GetImport From Web error", er); return(null); } }
/// <summary> /// Import data from URL to tables : importPrice /// The function also detect and add new companies to the database /// </summary> /// <param name="url">URL to get data</param> /// <param name="priceMeta">meta describe the webpage structure</param> /// <param name="stockExchangeCode">stock exchange code of imported data </param> /// <param name="importPriceTbl"> where to store imported data </param> public databases.importDS.importPriceDataTable GetPriceFromWeb(DateTime updateTime, metaStock priceMeta, databases.baseDS.exchangeDetailRow exchangeDetailRow) { bool bHaveData = false; //Kiem tra xem bang co du lieu hay ko //Data in CultureInfo CultureInfoUS = common.language.GetCulture("en-US"); databases.importDS.importPriceDataTable importPriceTbl = new databases.importDS.importPriceDataTable(); this.mappingList = CreateMapping(priceMeta, importPriceTbl); // Get the URL specified var webGet = new HtmlWeb(); var document = webGet.Load(exchangeDetailRow.address); // Get <a> tags that have a href attribute and non-whitespace inner text var linksOnPage = from item in document.DocumentNode.Descendants() where item.Name == "td" && item.Attributes["id"] == null select new { Text = item.InnerText }; bool fError = false; int igmoreRowCount = 0, columnCount = 0; decimal val = 0; databases.importDS.importPriceRow importRow = null; databases.importDS.importPriceRow oldImportRow; string stockCode; foreach (var item in linksOnPage) { //Check whether to ignore some items at the first if (++igmoreRowCount <= priceMeta.noRowIgnore) { continue; } if (fError) { break; } if (columnCount == priceMeta.startAtColId) { stockCode = item.Text.Trim(); importRow = importPriceTbl.NewimportPriceRow(); databases.AppLibs.InitData(importRow); importRow.onDate = updateTime; importRow.stockCode = stockCode; importRow.isTotalVolume = true; columnCount++; continue; } //Last column if (columnCount == priceMeta.endAtColId) { if (importRow.closePrice > 0) { //Only add new when there are some changes oldImportRow = lastImportData.Find(importRow); if (!lastImportData.IsSameData(importRow, oldImportRow)) { importPriceTbl.AddimportPriceRow(importRow); lastImportData.Update(importRow); } else { importRow.CancelEdit(); } } else { importRow.CancelEdit(); } columnCount = 0; continue; } object obj = this.mappingList.GetValue(columnCount.ToString()); if (obj != null) { val = 0; common.system.StrToDecimal(item.Text, CultureInfoUS, out val); //15/07: Kiem tra gia tri co bang 0 hay ko. Neu co thi se co loi doc du lieu if (val != 0) { bHaveData = true; } importRow[(string)obj] = val; } columnCount++; } //Neu ko co du lieu if (!bHaveData) { throw new Exception(); } return(importPriceTbl); }
public override databases.baseDS.priceDataDataTable GetImportFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow exchangeDetailRow) { if (!Get_IDX_HASTC(exchangeDetailRow.address, ref hastcIdx)) { return(null); } databases.importDS.importPriceDataTable importPriceTbl = new databases.importDS.importPriceDataTable(); AddImportRow(updateTime, hastcIdx, true, importPriceTbl); Imports.Libs.AddNewCode(exchangeDetailRow.marketCode, importPriceTbl, null); databases.DbAccess.UpdateData(importPriceTbl); databases.baseDS.priceDataDataTable priceTbl = new databases.baseDS.priceDataDataTable(); Imports.Libs.AddImportPrice(importPriceTbl, priceTbl); databases.DbAccess.UpdateData(priceTbl); return(priceTbl); }
/// <summary> /// Private - SU dung ASPWebservices /// </summary> /// <param name="updateTime"></param> /// <param name="exchangeDetailRow"></param> /// <returns></returns> private databases.importDS.importPriceDataTable GetPriceFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow exchangeDetailRow) { int idx = 0; clientSSI.AjaxWebServiceSoapClient client = null; try { client = new clientSSI.AjaxWebServiceSoapClient(); //client = new clientSSI.AjaxWebServiceSoapClient(exchangeDetailRow.address); //HoSTC_ServiceSoapClient client.Endpoint.Address = new System.ServiceModel.EndpointAddress(exchangeDetailRow.address); System.ServiceModel.BasicHttpBinding binding = (client.Endpoint.Binding as System.ServiceModel.BasicHttpBinding); binding.OpenTimeout = TimeSpan.FromSeconds(Consts.constWebServiceTimeOutInSecs); binding.CloseTimeout = binding.OpenTimeout; binding.SendTimeout = binding.OpenTimeout; binding.MaxReceivedMessageSize = Consts.constWebServiceMaxReceivedMessageSize; binding.MaxBufferSize = Consts.constWebServiceMaxReceivedMessageSize; binding.ReaderQuotas.MaxStringContentLength = Consts.constWebServiceMaxStringContentLength; binding.ReaderQuotas.MaxBytesPerRead = Consts.constWebServiceMaxBytesPerRead; String s = String.Empty; switch (exchangeDetailRow.code.ToUpper().Trim()) { case "HOSE_SSI": //s = client.GetDataHoSTC2(); s = client.GetHoseStockQuote(0); break; case "HASTC_SSI": //s = client.GetDataHaSTC2(); break; default: return(null); } //Parsing List <string> tradeList = new List <string>(s.Split('#')); databases.importDS.importPriceDataTable importPriceTbl = new databases.importDS.importPriceDataTable(); CultureInfo dataCulture = application.AppLibs.GetCulture(exchangeDetailRow.culture); for (idx = 0; idx < tradeList.Count; idx++) { List <string> tradeData = new List <string>(tradeList[idx].Split('|')); if (tradeData[8].Trim() == "" || tradeData[9].Trim() == "") { continue; } databases.importDS.importPriceRow importRow = importPriceTbl.NewimportPriceRow(); databases.AppLibs.InitData(importRow); importRow.stockCode = tradeData[0].ToString(); importRow.onDate = updateTime; importRow.closePrice = decimal.Parse(tradeData[8], dataCulture); importRow.volume = decimal.Parse(tradeData[9], dataCulture); importRow.isTotalVolume = false;//day ko phai total volume. Cai nay la volume tung thoi diem importPriceTbl.AddimportPriceRow(importRow); } return(importPriceTbl); } catch (Exception er) { common.SysLog.WriteLog("Error : " + er.Message); return(null); } finally { if (client != null && client.State == System.ServiceModel.CommunicationState.Opened) { client.Close(); } } }
/// <summary> /// Override method - /// Import stock data of HOSE and HASTC from http://banggia.ssi.com.vn/AjaxWebService.asmx /// </summary> /// <param name="updateTime"></param> /// <param name="exchangeDetailRow"></param> /// <returns></returns> public override databases.baseDS.priceDataDataTable GetImportFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow exchangeDetailRow) { databases.importDS.importPriceDataTable importPriceTbl = GetPriceFromWeb(updateTime, exchangeDetailRow); if (importPriceTbl == null) { return(null); } Imports.Libs.AddNewCode(exchangeDetailRow.marketCode, importPriceTbl, null); databases.DbAccess.UpdateData(importPriceTbl); databases.baseDS.priceDataDataTable priceTbl = new databases.baseDS.priceDataDataTable(); Imports.Libs.AddImportPrice(importPriceTbl, priceTbl); databases.DbAccess.UpdateData(priceTbl); return(priceTbl); }
public override databases.baseDS.priceDataDataTable GetImportFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow exchangeDetailRow) { if (!GetData(exchangeDetailRow, ref hnIdx, ref hnIdx30)) { return(null); } databases.importDS.importPriceDataTable importPriceTbl = new databases.importDS.importPriceDataTable(); AddImportRow(updateTime, hnIdx, true, importPriceTbl); //AddImportRow(updateTime, vn30Idx, false, importPriceTbl); Imports.Libs.AddNewCode(exchangeDetailRow.marketCode, importPriceTbl, null); databases.DbAccess.UpdateData(importPriceTbl); databases.baseDS.priceDataDataTable priceTbl = new databases.baseDS.priceDataDataTable(); Imports.Libs.AddImportPrice(importPriceTbl, priceTbl); databases.DbAccess.UpdateData(priceTbl); return(priceTbl); }
public override databases.baseDS.priceDataDataTable GetImportFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow exchangeDetailRow) { // Different culture has differebr strt of week, ie in VN culture : start of week is Monday (not Sunday) if (myCulture == null) { myCulture = application.AppLibs.GetCulture(exchangeDetailRow.culture); } databases.importDS.importPriceDataTable importPriceTbl = new databases.importDS.importPriceDataTable(); ForexData goldData = ImportKitco(exchangeDetailRow.address); if (null == goldData) { return(null); } AddImportRow(updateTime, goldData, false, importPriceTbl); Imports.Libs.AddNewCode(exchangeDetailRow.marketCode, importPriceTbl, null); databases.DbAccess.UpdateData(importPriceTbl); databases.baseDS.priceDataDataTable priceTbl = new databases.baseDS.priceDataDataTable(); Imports.Libs.AddImportPrice(importPriceTbl, priceTbl); databases.DbAccess.UpdateData(priceTbl); return(priceTbl); }
public abstract databases.baseDS.priceDataDataTable GetImportFromWeb(DateTime updateTime, databases.baseDS.exchangeDetailRow row);