/// <summary> /// Parses a line following the ElectionFormat and returns an ElectionFormat object /// </summary> /// <param name="line">The line to parse</param> /// <param name="parser">The field parser to use</param> /// <returns>An ElectionFormat object containing the parsed values</returns> public ElectionFormat Parse(string line, FieldParser parser) { string[] fields = parser.ParseLength(line, 7); int year = parser.ParseInt(fields[0], "Year"); string algorithmString = parser.ParseAlgorithmToString(fields[1], "Algorithm"); double firstDivisor = parser.ParseDouble(fields[2], "FirstDivisor"); double threshold = parser.ParseDouble(fields[3], "Threshold"); double areaFactor = parser.ParseDouble(fields[4], "AreaFactor"); int seats = parser.ParseInt(fields[5], "Seats"); int levelingSeats = parser.ParseInt(fields[6], "LevelingSeats"); return(new ElectionFormat { Year = year, AlgorithmString = algorithmString, FirstDivisor = firstDivisor, Threshold = threshold, AreaFactor = areaFactor, Seats = seats, LevelingSeats = levelingSeats }); }
/// <summary> /// Parses a line following the ResultFormat and returns an ResultFormat object /// </summary> /// <param name="line">The line to parse</param> /// <param name="parser">The field parser to use</param> /// <returns>An ResultFormat object containing the parsed values</returns> public ResultFormat Parse(string line, FieldParser parser) { string[] fields = parser.ParseLength(line, 18); string fylkenavn = parser.ParseString(fields[1], "Fylkenavn", 3, -1); string partikode = parser.ParseString(fields[6], "Partikode", 1, 10); string partinavn = parser.ParseString(fields[7], "Partinavn", 1, -1); double oppslutningProsentvis = parser.ParseDouble(fields[8], "Oppslutning prosentvis"); int antallStemmerTotalt = parser.ParseInt(fields[12], "AntallStemmerTotalt"); return(new ResultFormat { Fylkenavn = fylkenavn, Partikode = partikode, Partinavn = partinavn, OppslutningProsentvis = oppslutningProsentvis, AntallStemmerTotalt = antallStemmerTotalt }); }
/// <summary> /// Parses a line following the CountyDataFormat and returns an CountyDataFormat object /// </summary> /// <param name="line">The line to parse</param> /// <param name="parser">The field parser to use</param> /// <returns>An CountyDataFormat object containing the parsed values</returns> public CountyDataFormat Parse(string line, FieldParser parser) { string[] fields = parser.ParseLength(line, 5); int year = parser.ParseInt(fields[0], "Year"); string county = parser.ParseString(fields[1], "County", 3, 35); double areal = parser.ParseDouble(fields[2], "Area"); int population = parser.ParseInt(fields[3], "Population"); int seats = parser.ParseInt(fields[4], "Seats"); return(new CountyDataFormat { Year = year, County = county, Area = areal, Population = population, Seats = seats }); }
public static UpdateSummaryMessage Parse(string message) { var values = message.SplitFeedMessage(); var symbol = values[1]; // field 2 var mostRecentTrade = FieldParser.ParseDouble(values[2]); // field 71 var mostRecentTradeSize = FieldParser.ParseInt(values[3]); // field 72 var mostRecentTradeTime = FieldParser.ParseDate(values[4], UpdateMessageTimeFormat); var mostRecentTradeMarketCenter = FieldParser.ParseInt(values[5]); // field 75 var totalVolume = FieldParser.ParseInt(values[6]); // field 7 var bid = FieldParser.ParseDouble(values[7]); // field 11 var bidSize = FieldParser.ParseInt(values[8]); // field 13 var ask = FieldParser.ParseDouble(values[9]); // field 12 var askSize = FieldParser.ParseInt(values[10]); // field 14 var open = FieldParser.ParseDouble(values[11]); // field 20 var high = FieldParser.ParseDouble(values[12]); // field 9 var low = FieldParser.ParseDouble(values[13]); // field 10 var close = FieldParser.ParseDouble(values[14]); // field 21 var messageContents = values[15]; // field 80 var mostRecentTradeConditions = values[16]; // field 74 return(new UpdateSummaryMessage( symbol, mostRecentTrade, mostRecentTradeSize, mostRecentTradeTime, mostRecentTradeMarketCenter, totalVolume, bid, bidSize, ask, askSize, open, high, low, close, messageContents, mostRecentTradeConditions )); }
public static Level1DynamicFields Parse(string message, DynamicFieldset[] fields) { var values = message.SplitFeedMessage(); #region Variables double sevenDayYield = default; double ask = default; double askChange = default; int askMarketCenter = default; int askSize = default; TimeSpan askTime = default; string availableRegions = default; double averageMaturity = default; double bid = default; double bidChange = default; int bidMarketCenter = default; int bidSize = default; TimeSpan bidTime = default; double change = default; double changeFromOpen = default; double close = default; double closeRange1 = default; double closeRange2 = default; string daysToExpiration = default; string decimalPrecision = default; int delay = default; string exchangeID = default; double extendedTrade = default; DateTime extendedTradeDate = default; int extendedTradeMarketCenter = default; int extendedTradeSize = default; TimeSpan extendedTradeTime = default; double extendedTradingChange = default; double extendedTradingDifference = default; string financialStatusIndicator = default; string fractionDisplayCode = default; double high = default; double last = default; DateTime lastDate = default; int lastMarketCenter = default; int lastSize = default; TimeSpan lastTime = default; double low = default; double marketCapitalization = default; int marketOpen = default; string messageContents = default; double mostRecentTrade = default; int mostRecentTradeAggressor = default; string mostRecentTradeConditions = default; DateTime mostRecentTradeDate = default; int mostRecentTradeDayCode = default; int mostRecentTradeMarketCenter = default; int mostRecentTradeSize = default; TimeSpan mostRecentTradeTime = default; double netAssetValue = default; int numberOfTradesToday = default; double open = default; int openInterest = default; double openRange1 = default; double openRange2 = default; double percentChange = default; double percentOffAverageVolume = default; int previousDayVolume = default; double priceEarningsRatio = default; double range = default; string restrictedCode = default; double settle = default; DateTime settlementDate = default; double spread = default; string symbol = default; int tick = default; int tickID = default; int totalVolume = default; double volatility = default; double vwap = default; #endregion string type = values[0]; for (var i = 0; i < fields.Length; i++) { var field = fields[i]; var value = values[i + 1]; switch (field) { case DynamicFieldset.SevenDayYield: sevenDayYield = FieldParser.ParseDouble(value); break; case DynamicFieldset.Ask: ask = FieldParser.ParseDouble(value); break; case DynamicFieldset.AskChange: askChange = FieldParser.ParseDouble(value); break; case DynamicFieldset.AskMarketCenter: askMarketCenter = FieldParser.ParseInt(value); break; case DynamicFieldset.AskSize: askSize = FieldParser.ParseInt(value); break; case DynamicFieldset.AskTime: askTime = FieldParser.ParseTime(value, UpdateMessageTimeFormat); break; case DynamicFieldset.AvailableRegions: availableRegions = value; break; case DynamicFieldset.AverageMaturity: averageMaturity = FieldParser.ParseDouble(value); break; case DynamicFieldset.Bid: bid = FieldParser.ParseDouble(value); break; case DynamicFieldset.BidChange: bidChange = FieldParser.ParseDouble(value); break; case DynamicFieldset.BidMarketCenter: bidMarketCenter = FieldParser.ParseInt(value); break; case DynamicFieldset.BidSize: bidSize = FieldParser.ParseInt(value); break; case DynamicFieldset.BidTime: bidTime = FieldParser.ParseTime(value, UpdateMessageTimeFormat); break; case DynamicFieldset.Change: change = FieldParser.ParseDouble(value); break; case DynamicFieldset.ChangeFromOpen: changeFromOpen = FieldParser.ParseDouble(value); break; case DynamicFieldset.Close: close = FieldParser.ParseDouble(value); break; case DynamicFieldset.CloseRange1: closeRange1 = FieldParser.ParseDouble(value); break; case DynamicFieldset.CloseRange2: closeRange2 = FieldParser.ParseDouble(value); break; case DynamicFieldset.DaysToExpiration: daysToExpiration = value; break; case DynamicFieldset.DecimalPrecision: decimalPrecision = value; break; case DynamicFieldset.Delay: delay = FieldParser.ParseInt(value); break; case DynamicFieldset.ExchangeID: exchangeID = value; break; case DynamicFieldset.ExtendedTrade: extendedTrade = FieldParser.ParseDouble(value); break; case DynamicFieldset.ExtendedTradeDate: extendedTradeDate = FieldParser.ParseDate(value, UpdateMessageDateFormat); break; case DynamicFieldset.ExtendedTradeMarketCenter: extendedTradeMarketCenter = FieldParser.ParseInt(value); break; case DynamicFieldset.ExtendedTradeSize: extendedTradeSize = FieldParser.ParseInt(value); break; case DynamicFieldset.ExtendedTradeTime: extendedTradeTime = FieldParser.ParseTime(value, UpdateMessageTimeFormat); break; case DynamicFieldset.ExtendedTradingChange: extendedTradingChange = FieldParser.ParseDouble(value); break; case DynamicFieldset.ExtendedTradingDifference: extendedTradingDifference = FieldParser.ParseDouble(value); break; case DynamicFieldset.FinancialStatusIndicator: financialStatusIndicator = value; break; case DynamicFieldset.FractionDisplayCode: fractionDisplayCode = value; break; case DynamicFieldset.High: high = FieldParser.ParseDouble(value); break; case DynamicFieldset.Last: last = FieldParser.ParseDouble(value); break; case DynamicFieldset.LastDate: lastDate = FieldParser.ParseDate(value, UpdateMessageDateFormat); break; case DynamicFieldset.LastMarketCenter: lastMarketCenter = FieldParser.ParseInt(value); break; case DynamicFieldset.LastSize: lastSize = FieldParser.ParseInt(value); break; case DynamicFieldset.LastTime: lastTime = FieldParser.ParseTime(value, UpdateMessageTimeFormat); break; case DynamicFieldset.Low: low = FieldParser.ParseDouble(value); break; case DynamicFieldset.MarketCapitalization: marketCapitalization = FieldParser.ParseDouble(value); break; case DynamicFieldset.MarketOpen: marketOpen = FieldParser.ParseInt(value); break; case DynamicFieldset.MessageContents: messageContents = value; break; case DynamicFieldset.MostRecentTrade: mostRecentTrade = FieldParser.ParseDouble(value); break; case DynamicFieldset.MostRecentTradeAggressor: mostRecentTradeAggressor = FieldParser.ParseInt(value); break; case DynamicFieldset.MostRecentTradeConditions: mostRecentTradeConditions = value; break; case DynamicFieldset.MostRecentTradeDate: mostRecentTradeDate = FieldParser.ParseDate(value, UpdateMessageDateFormat); break; case DynamicFieldset.MostRecentTradeDayCode: mostRecentTradeDayCode = FieldParser.ParseInt(value); break; case DynamicFieldset.MostRecentTradeMarketCenter: mostRecentTradeMarketCenter = FieldParser.ParseInt(value); break; case DynamicFieldset.MostRecentTradeSize: mostRecentTradeSize = FieldParser.ParseInt(value); break; case DynamicFieldset.MostRecentTradeTime: mostRecentTradeTime = FieldParser.ParseTime(value, UpdateMessageTimeFormat); break; case DynamicFieldset.NetAssetValue: netAssetValue = FieldParser.ParseDouble(value); break; case DynamicFieldset.NumberOfTradesToday: numberOfTradesToday = FieldParser.ParseInt(value); break; case DynamicFieldset.Open: open = FieldParser.ParseDouble(value); break; case DynamicFieldset.OpenInterest: openInterest = FieldParser.ParseInt(value); break; case DynamicFieldset.OpenRange1: openRange1 = FieldParser.ParseDouble(value); break; case DynamicFieldset.OpenRange2: openRange2 = FieldParser.ParseDouble(value); break; case DynamicFieldset.PercentChange: percentChange = FieldParser.ParseDouble(value); break; case DynamicFieldset.PercentOffAverageVolume: percentOffAverageVolume = FieldParser.ParseDouble(value); break; case DynamicFieldset.PreviousDayVolume: previousDayVolume = FieldParser.ParseInt(value); break; case DynamicFieldset.PriceEarningsRatio: priceEarningsRatio = FieldParser.ParseDouble(value); break; case DynamicFieldset.Range: range = FieldParser.ParseDouble(value); break; case DynamicFieldset.RestrictedCode: restrictedCode = value; break; case DynamicFieldset.Settle: settle = FieldParser.ParseDouble(value); break; case DynamicFieldset.SettlementDate: settlementDate = FieldParser.ParseDate(value, UpdateMessageDateFormat); break; case DynamicFieldset.Spread: spread = FieldParser.ParseDouble(value); break; case DynamicFieldset.Symbol: symbol = value; break; case DynamicFieldset.Tick: tick = FieldParser.ParseInt(value); break; case DynamicFieldset.TickID: tickID = FieldParser.ParseInt(value); break; case DynamicFieldset.TotalVolume: totalVolume = FieldParser.ParseInt(value); break; case DynamicFieldset.Type: type = value; break; case DynamicFieldset.Volatility: volatility = FieldParser.ParseDouble(value); break; case DynamicFieldset.VWAP: vwap = FieldParser.ParseDouble(value); break; } } return(new Level1DynamicFields( sevenDayYield, ask, askChange, askMarketCenter, askSize, askTime, availableRegions, averageMaturity, bid, bidChange, bidMarketCenter, bidSize, bidTime, change, changeFromOpen, close, closeRange1, closeRange2, daysToExpiration, decimalPrecision, delay, exchangeID, extendedTrade, extendedTradeDate, extendedTradeMarketCenter, extendedTradeSize, extendedTradeTime, extendedTradingChange, extendedTradingDifference, financialStatusIndicator, fractionDisplayCode, high, last, lastDate, lastMarketCenter, lastSize, lastTime, low, marketCapitalization, marketOpen, messageContents, mostRecentTrade, mostRecentTradeAggressor, mostRecentTradeConditions, mostRecentTradeDate, mostRecentTradeDayCode, mostRecentTradeMarketCenter, mostRecentTradeSize, mostRecentTradeTime, netAssetValue, numberOfTradesToday, open, openInterest, openRange1, openRange2, percentChange, percentOffAverageVolume, previousDayVolume, priceEarningsRatio, range, restrictedCode, settle, settlementDate, spread, symbol, tick, tickID, totalVolume, type, volatility, vwap)); }