예제 #1
0
        /// <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
            });
        }
예제 #2
0
        /// <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
            });
        }
예제 #3
0
        /// <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
            });
        }
예제 #4
0
        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
                       ));
        }
예제 #5
0
        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));
        }