public static bool IsEquals(this OptionQuoteInfo optionQuote1, OptionQuoteInfo optionQuote2) { foreach (PropertyInfo significantProperty in SignificantProperties) { if (!significantProperty.GetValue(optionQuote1).Equals(significantProperty.GetValue(optionQuote2))) { return(false); } } return(true); }
public static List <OptionQuoteInfo> ParseTxtFile(byte[] fileData) { List <OptionQuoteInfo> result = new List <OptionQuoteInfo>(); try { string fileString = Encoding.UTF8.GetString(fileData); //string fileString=System.Text.Encoding.UTF8.GetString(System.Text.Encoding.Convert(System.Text.Encoding.Unicode, System.Text.Encoding.UTF8, fileData)); List <string> lines = fileString.Split(new[] { "\n" }, StringSplitOptions.RemoveEmptyEntries).ToList(); // delete header line //lines.RemoveAt(0); // delete footer line Logger.Debug("lines count: " + lines.Count); lines.RemoveAt(lines.Count - 1); foreach (string line in lines) { List <string> data = line.Split('|').Select(m => m.Trim()).ToList(); OptionQuoteInfo optionQuoteInfo = new OptionQuoteInfo(); for (int i = 0; i < data.Count; i++) { PropertyInfo prop; bool success = TxtFileMapping.TryGetValue(i, out prop); if (!success) { continue; } string currentData = data[i]; Type propType = prop.PropertyType; if (currentData == string.Empty && propType.IsNumericType()) { currentData = "0"; } object value = Convert.ChangeType(currentData, prop.PropertyType); prop.SetValue(optionQuoteInfo, value, null); } result.Add(optionQuoteInfo); } return(result); } catch (Exception ex) { Logger.Debug("file parsing error:" + ex.StackTrace); return(result); } }
private static OptionQuotation ConvertToOptionQuotation(OptionQuoteInfo info) { OptionQuotation result = new OptionQuotation(info.OptionNumber) { PreviousSettlementPrice = (double)info.PreviousSettlementPrice, UncoveredPositionQuantity = info.UncoveredPositionQuantity, Turnover = (double)info.Turnover, OpeningPrice = (double)info.OpeningPrice, AuctionReferencePrice = (double)info.AuctionReferencePrice, AuctionReferenceQuantity = info.AuctionReferenceQuantity, HighestPrice = (double)info.HighestPrice, LowestPrice = (double)info.LowestPrice, LatestTradedPrice = (double)info.LatestTradedPrice, Volume = info.TradeQuantity, Ask = (double)info.SellPrice1, AskVolume = info.SellQuantity1, Bid = (double)info.BuyPrice1, BidVolume = info.BuyQuantity1, Ask2 = (double)info.SellPrice2, AskVolume2 = info.SellQuantity2, Bid2 = (double)info.BuyPrice2, BidVolume2 = info.BuyQuantity2, Ask3 = (double)info.SellPrice3, AskVolume3 = info.SellQuantity3, Bid3 = (double)info.BuyPrice3, BidVolume3 = info.BuyQuantity3, Ask4 = (double)info.SellPrice4, AskVolume4 = info.SellQuantity4, Bid4 = (double)info.BuyPrice4, BidVolume4 = info.BuyQuantity4, Ask5 = (double)info.SellPrice5, AskVolume5 = info.SellQuantity5, Bid5 = (double)info.BuyPrice5, BidVolume5 = info.BuyQuantity5, TradeDate = info.TradeDate, }; return(result); }
public OptionQuotationInformationViewModel GetOptionQuotationInformation(string optionNo) { OptionQuoteInfo res = _marketDataService.GetOption5LevelQuotation(optionNo); return(AutoMapper.Mapper.Map <OptionQuotationInformationViewModel>(res)); }
private EntityResponse <OptionQuoteInfo> GetOptionQuote(string optionNumber) { OptionQuoteInfo result = _uow.OptionQuotesInfo.GetAll().FirstOrDefault(item => item.OptionNumber.Equals(optionNumber)); return(result); }