Пример #1
0
 public ActionDetailRecord(ParseData firstRecord, ParseData secondRecord)
 {
     DateTime firstTime;
     DateTime secondTime;
     if (firstRecord.DateInfo < secondRecord.DateInfo)
     {
         firstTime = firstRecord.DateInfo;
         secondTime = secondRecord.DateInfo;
     }
     else
     {
         firstTime = secondRecord.DateInfo;
         secondTime = firstRecord.DateInfo;
     }
     _actionStart = firstTime;
     _actionName = firstRecord.Action;
     _totalMilliseconds = (long) (secondTime - firstTime).TotalMilliseconds;
 }
Пример #2
0
        public Project.ParseData.correlation processData()
        {
            //File path where data is stored
            string filePath = "..\\..\\..\\..\\Data\\";
            //File path where the life expectancy file is saved
            string lifeExpectancyFilePath = filePath + "LifeExpectancy_Chicago.csv";
            //File path where the Socio Economic indicators file is saved
            string SocioEconomicIndicatorsFilePath = filePath + "SocioEconomic_Indicators_Chicago.csv";

            ParseData pd = new ParseData();
            // Function call to parse Life Expectancy file
            Project.ParseData.lifeExpectancy[] lifeExpectancyData = pd.parselifeExpectancyData(lifeExpectancyFilePath);

            // Function call to parse Socio Economic Indicators file
            Project.ParseData.SocioEconomicIndicators[] socioEconomicData = pd.parsesocioEconomicData(SocioEconomicIndicatorsFilePath);

            //Function call to find correlation between the data
            Project.ParseData.correlation corr = pd.CorrelationAnalysis(lifeExpectancyData, socioEconomicData);
            return corr;
        }
        static void Main(string[] args)
        {
            string filePath = "..\\..\\..\\..\\Data\\";
            int size = 0;
            string groceryFilePath=filePath+ "Grocery_Stores_2013.csv";
            string foodInspFilePath = filePath + "Food_Inspections_2013.csv";
            string buildingViolationPath = filePath + "Building_Violations.csv";

            Console.WriteLine("\n\n Please wait...It may take a few minutes for the data to load");

            ParseData pd = new ParseData();
            // Function call to parse grocery file
            Project.ParseData.Grocery[] groceryStoresData = pd.parseGroceryData(groceryFilePath);

            // Function call to parse Food Inspection file
            Project.ParseData.FoodInspection[] foodInspectionData = pd.parseFoodInspection(foodInspFilePath);

            // Function call to parse Building Violations file
            Project.ParseData.BuildingViolation[] buildingViolationData = pd.parseBuildingInspection(buildingViolationPath);

            //Function call to Analyze data
            Project.ParseData.FinalAnalysis[] finalAnalysis = pd.analysisGroceryFood(groceryStoresData, foodInspectionData, buildingViolationData, ref size);
            pd.displayData(finalAnalysis, ref size);
        }
Пример #4
0
        private void btn_PollStreamer_Click(object sender, RoutedEventArgs e)
        {
            this.clearContent();
                if (tb_PollStreamer.Text == string.Empty)
                {
                    var converter = new System.Windows.Media.BrushConverter();
                    var brushRed = (Brush)converter.ConvertFromString("#FF0000");
                    lbl_ErrorMessage.Foreground = brushRed;
                    lbl_ErrorMessage.Content = "TEXT BOX EMEPTY";
                    SystemSounds.Hand.Play();
                }
                else
                {
                    ParseData classParseData = new ParseData();
                    string doReturnData = classParseData.getData(tb_PollStreamer.Text);

                    var converter = new System.Windows.Media.BrushConverter();
                    var brushRed = (Brush)converter.ConvertFromString("#FF0000");
                    var brushGreen = (Brush)converter.ConvertFromString("#33FF00");

                    lbl_contentGetStreamer.Content = tb_PollStreamer.Text;

                    if (doReturnData.Contains("!(LIVE)"))
                    {
                        lbl_StreamerStatus.Foreground = brushRed;
                        lbl_StreamerStatus.Content = "STREAMER OFFLINE";
                    }
                    else
                    {
                        string finalTitle = doReturnData.Split('$')[0];
                        string finalGame = doReturnData.Split('$')[1];
                        string finalViewers = doReturnData.Split('$')[2];
                        var finalImage = doReturnData.Split('$')[3];
                        lbl_contentGetTitle.Content = finalTitle;
                        lbl_contentGetGame.Content = finalGame;
                        lbl_contentGetViewerCount.Content = finalViewers;

                        if (checkbox_getAvatar.IsChecked == true)
                        {
                            img_streamerOffline.Source = getStreamerImage(finalImage);
                        }

                        lbl_StreamerStatus.Foreground = brushGreen;
                        lbl_StreamerStatus.Content = "STREAMER ONLINE";
                    }
                }
                tb_PollStreamer.Text = string.Empty;
        }
        void LoadBarChart()
        {
            barChart.Series.Clear();
            barChart.BackColor = Color.PowderBlue;
            barChart.Palette = ChartColorPalette.Fire;
            barChart.ChartAreas[0].BackColor = Color.Transparent;
            barChart.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
            barChart.ChartAreas[0].AxisY.MajorGrid.Enabled = false;
            barChart.ChartAreas[0].AxisX.LabelStyle.Angle = 45;
            barChart.ChartAreas[0].AxisX.LabelAutoFitMinFontSize = 5;
            barChart.ChartAreas[0].AxisX.IsStartedFromZero = true;
            barChart.ChartAreas[0].AxisX.LabelStyle.Interval = 1;
            barChart.ChartAreas[0].AxisX.Maximum = 80;

            Series series = new Series
            {
                Name = "series2",
                IsVisibleInLegend = false,
                ChartType = SeriesChartType.Column
            };

            ParseData pd = new ParseData();
            string filePath = "..\\..\\..\\..\\Data\\";
            string SocioEconomicIndicatorsFilePath = filePath + "SocioEconomic_Indicators_Chicago.csv";
            Project.ParseData.SocioEconomicIndicators[] socioEconomicData = pd.parsesocioEconomicData(SocioEconomicIndicatorsFilePath);
            double[] unemployment = new double[78];
            for (int k = 0; k < socioEconomicData.Length; k++)
            {
                unemployment[k] = Convert.ToDouble(socioEconomicData[k].unemployment);
            }
            for (int i = 0; i < socioEconomicData.Length; i++)
            {
                series.Points.Add(unemployment[i]);
                series.Points[i].Label = unemployment[i].ToString();
                series.Points[i].AxisLabel = socioEconomicData[i].communityName;
                series.Points[i].Color = Color.Blue;
            }
            series["PointWidth"] = (0.7).ToString();

            barChart.Series.Add(series);
            barChart.Invalidate();

            panel1.Controls.Add(barChart);
        }
 public SimulationWrapper(ParseData dataObject)
 {
     this.Data = dataObject;
 }
Пример #7
0
        public bool parse(List <byte[]> pages_in)
        {
            if (pages_in is null)
            {
                return(false);
            }

            pages = pages_in;
            if (pages.Count < MAX_PAGES)
            {
                logger.error($"EEPROM.parse: didn't receive {MAX_PAGES} pages");
                return(false);
            }

            format = pages[0][63];

            // corrupted EEPROM test (comms, battery, unprogrammed)
            if (corruptedPage(pages[0]))
            {
                logger.error("EEPROM page 0 is corrupted or unprogrammed");
                return(false);
            }

            try
            {
                model        = ParseData.toString(pages[0], 0, 16);
                serialNumber = ParseData.toString(pages[0], 16, 16);
                baudRate     = ParseData.toUInt32(pages[0], 32);
                hasCooling   = ParseData.toBool(pages[0], 36);
                hasBattery   = ParseData.toBool(pages[0], 37);
                hasLaser     = ParseData.toBool(pages[0], 38);
                // excitationNM = ParseData.toUInt16(pages[0], 39); // changed to FeatureMask
                slitSizeUM = ParseData.toUInt16(pages[0], 41);

                startupIntegrationTimeMS       = ParseData.toUInt16(pages[0], 43);
                startupDetectorTemperatureDegC = ParseData.toInt16(pages[0], 45);
                startupTriggeringMode          = ParseData.toUInt8(pages[0], 47);
                detectorGain      = ParseData.toFloat(pages[0], 48); // "even pixels" for InGaAs
                detectorOffset    = ParseData.toInt16(pages[0], 52); // "even pixels" for InGaAs
                detectorGainOdd   = ParseData.toFloat(pages[0], 54); // InGaAs-only
                detectorOffsetOdd = ParseData.toInt16(pages[0], 58); // InGaAs-only

                wavecalCoeffs[0]           = ParseData.toFloat(pages[1], 0);
                wavecalCoeffs[1]           = ParseData.toFloat(pages[1], 4);
                wavecalCoeffs[2]           = ParseData.toFloat(pages[1], 8);
                wavecalCoeffs[3]           = ParseData.toFloat(pages[1], 12);
                degCToDACCoeffs[0]         = ParseData.toFloat(pages[1], 16);
                degCToDACCoeffs[1]         = ParseData.toFloat(pages[1], 20);
                degCToDACCoeffs[2]         = ParseData.toFloat(pages[1], 24);
                detectorTempMax            = ParseData.toInt16(pages[1], 28);
                detectorTempMin            = ParseData.toInt16(pages[1], 30);
                adcToDegCCoeffs[0]         = ParseData.toFloat(pages[1], 32);
                adcToDegCCoeffs[1]         = ParseData.toFloat(pages[1], 36);
                adcToDegCCoeffs[2]         = ParseData.toFloat(pages[1], 40);
                thermistorResistanceAt298K = ParseData.toInt16(pages[1], 44);
                thermistorBeta             = ParseData.toInt16(pages[1], 46);
                calibrationDate            = ParseData.toString(pages[1], 48, 12);
                calibrationBy = ParseData.toString(pages[1], 60, 3);

                detectorName          = ParseData.toString(pages[2], 0, 16);
                activePixelsHoriz     = ParseData.toUInt16(pages[2], 16); // note: byte 18 unused
                activePixelsVert      = ParseData.toUInt16(pages[2], 19);
                minIntegrationTimeMS  = ParseData.toUInt16(pages[2], 21); // will overwrite if
                maxIntegrationTimeMS  = ParseData.toUInt16(pages[2], 23); //   format >= 5
                actualPixelsHoriz     = ParseData.toUInt16(pages[2], 25);
                ROIHorizStart         = ParseData.toUInt16(pages[2], 27);
                ROIHorizEnd           = ParseData.toUInt16(pages[2], 29);
                ROIVertRegionStart[0] = ParseData.toUInt16(pages[2], 31);
                ROIVertRegionEnd[0]   = ParseData.toUInt16(pages[2], 33);
                ROIVertRegionStart[1] = ParseData.toUInt16(pages[2], 35);
                ROIVertRegionEnd[1]   = ParseData.toUInt16(pages[2], 37);
                ROIVertRegionStart[2] = ParseData.toUInt16(pages[2], 39);
                ROIVertRegionEnd[2]   = ParseData.toUInt16(pages[2], 41);
                linearityCoeffs[0]    = ParseData.toFloat(pages[2], 43);
                linearityCoeffs[1]    = ParseData.toFloat(pages[2], 47);
                linearityCoeffs[2]    = ParseData.toFloat(pages[2], 51);
                linearityCoeffs[3]    = ParseData.toFloat(pages[2], 55);
                linearityCoeffs[4]    = ParseData.toFloat(pages[2], 59);

                // deviceLifetimeOperationMinutes = ParseData.toInt32(pages[3], 0);
                // laserLifetimeOperationMinutes = ParseData.toInt32(pages[3], 4);
                // laserTemperatureMax  = ParseData.toInt16(pages[3], 8);
                // laserTemperatureMin  = ParseData.toInt16(pages[3], 10);

                laserPowerCoeffs[0] = ParseData.toFloat(pages[3], 12);
                laserPowerCoeffs[1] = ParseData.toFloat(pages[3], 16);
                laserPowerCoeffs[2] = ParseData.toFloat(pages[3], 20);
                laserPowerCoeffs[3] = ParseData.toFloat(pages[3], 24);
                maxLaserPowerMW     = ParseData.toFloat(pages[3], 28);
                minLaserPowerMW     = ParseData.toFloat(pages[3], 32);
                laserExcitationWavelengthNMFloat = ParseData.toFloat(pages[3], 36);
                if (format >= 5)
                {
                    minIntegrationTimeMS = ParseData.toUInt32(pages[3], 40);
                    maxIntegrationTimeMS = ParseData.toUInt32(pages[3], 44);
                }

                userData = format < 4 ? new byte[PAGE_LENGTH - 1] : new byte[PAGE_LENGTH];
                Array.Copy(pages[4], userData, userData.Length);

                badPixelSet = new SortedSet <short>();
                for (int i = 0; i < 15; i++)
                {
                    short pixel = ParseData.toInt16(pages[5], i * 2);
                    badPixels[i] = pixel;
                    if (pixel >= 0)
                    {
                        badPixelSet.Add(pixel);
                    }
                }
                badPixelList = new List <short>(badPixelSet);

                if (format >= 5)
                {
                    productConfiguration = ParseData.toString(pages[5], 30, 16);
                }
                else
                {
                    productConfiguration = "";
                }

                if (format >= 6)
                {
                    intensityCorrectionOrder = ParseData.toUInt8(pages[6], 0);
                    uint numCoeffs = (uint)intensityCorrectionOrder + 1;

                    if (numCoeffs > 8)
                    {
                        numCoeffs = 0;
                    }

                    intensityCorrectionCoeffs = numCoeffs > 0 ? new float[numCoeffs] : null;

                    for (int i = 0; i < numCoeffs; ++i)
                    {
                        intensityCorrectionCoeffs[i] = ParseData.toFloat(pages[6], 1 + 4 * i);
                    }
                }
                else
                {
                    intensityCorrectionOrder = 0;
                }

                if (format >= 7)
                {
                    avgResolution = ParseData.toFloat(pages[3], 48);
                }
                else
                {
                    avgResolution = 0.0f;
                }

                if (format >= 9)
                {
                    featureMask = new FeatureMask(ParseData.toUInt16(pages[0], 39));
                }
            }
            catch (Exception ex)
            {
                logger.error("EEPROM: caught exception: {0}", ex.Message);
                return(false);
            }

            enforceReasonableDefaults();

            registerAll();

            return(true);
        }
Пример #8
0
    public void RegisterEvents(BaseMode gameMode)
    {
        gameMode.PlayerConnected += (sender, e) =>
        {
            var player = sender as Player;
            try
            {
                DateTime?expiryDate;
                if ((expiryDate = IsBanned(player)) != null)
                {
                    if (expiryDate > DateTime.Now)
                    {
                        player.SendClientMessage(Color.Red, $"* Esta cuenta está prohíbida. La cuenta quedará desbloqueada en esta fecha y hora: {ParseData.ToStringDateTime((DateTime)expiryDate)}.");
                        player.Kick();
                        return;
                    }
                    DeleteBan(player.Name);
                }

                if (Load(player, out var password))
                {
                    player.Account = AccountState.Login;
                    player.ShowDialogLogin(password);
                }
                else
                {
                    player.Account = AccountState.Register;
                    player.ShowDialogRegister();
                }
            }
            catch (MySqlException ex)
            {
                player.SendErrorMessage(ex);
            }
        };
    }
Пример #9
0
        public object Evaluate(string expr)
        {
            if (string.IsNullOrWhiteSpace(expr))
            {
                return(null);
            }

            try
            {
                myData = new ParseData(expr);
                var state = ParseState.Start;

                for (myData.Tokens.Index = 0; myData.Tokens.Index < myData.Tokens.Count; ++myData.Tokens.Index)
                {
                    var token = myData.Tokens[myData.Tokens.Index];

                    if (state == ParseState.Start)
                    {
                        if (myData.Tokens.LookAhead(1) == "(")
                        {
                            PushFunction();
                            state = ParseState.Start;
                        }
                        else if (token == ")")
                        {
                            PopFunction();
                            state = ParseState.HaveValue;
                        }
                        else
                        {
                            EvaluateWord();
                            state = ParseState.HaveValue;
                        }
                    }
                    else if (state == ParseState.HaveValue)
                    {
                        if (token == ",")
                        {
                            ConsumeFunctionParameter();
                            state = ParseState.Start;
                        }
                        else if (token == ")")
                        {
                            ConsumeFunctionParameter();
                            PopFunction();
                            state = ParseState.HaveValue;
                        }
                        else if (token == ".")
                        {
                            if (IsIncompleteDecimal())
                            {
                                state = ParseState.CompleteDecimal;
                            }
                            else
                            {
                                state = ParseState.CallMember;
                            }
                        }
                        else
                        {
                            throw new InvalidOperationException("Don't know how to handle token '" + token + "'");
                        }
                    }
                    else if (state == ParseState.CompleteDecimal)
                    {
                        CompleteDecimal();
                        state = ParseState.HaveValue;
                    }
                    else if (state == ParseState.CallMember)
                    {
                        CallMember();
                        state = ParseState.HaveValue;
                    }
                    else
                    {
                        throw new NotImplementedException("I missed to implement a state in the parser :(");
                    }
                }

                return(myData.Result);
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException(string.Format("Failed to parse expression '{0}' at token {1}", expr, myData.Tokens.Index), ex);
            }
            finally
            {
                myData = null;
            }
        }
Пример #10
0
 private void HandleAuthAccountChangeProof(ParseData data)
 {
     // TO DO
     BattleNetClientResources.IncomingBufferPool.FreeBuffer(data.Data);
 }
Пример #11
0
 public abstract INode Consume(Parser parser, ParseData data, Lines lines, string scope);
Пример #12
0
        public override INode Consume(Parser parser, ParseData data, Lines lines, string scope)
        {
            var current = lines.Current();
            var arr     = new List <string>();

            var line = lines.Value().Trim();
            var res  = Regex.Match(line, @"\[pre(?:=([a-z ]+))?\]", RegexOptions.IgnoreCase);

            if (!res.Success)
            {
                lines.SetCurrent(current);
                return(null);
            }

            line = line.Substring(0, res.Value.Length);
            string lang = null;
            var    hl   = false;

            if (res.Groups[1].Success)
            {
                var spl = res.Groups[1].Value.Split(' ');
                hl   = spl.Contains("highlight");
                lang = spl.FirstOrDefault(x => x != "highlight");
            }

            if (line.EndsWith("[/pre]"))
            {
                lines.Next();
                arr.Add(line.Substring(0, line.Length - 6));
            }
            else
            {
                var found = false;
                while (lines.Next())
                {
                    var value = lines.Value().TrimEnd();
                    if (value.EndsWith("[/pre]"))
                    {
                        var lastLine = value.Substring(0, value.Length - 6);
                        arr.Add(lastLine);
                        found = true;
                        break;
                    }
                    else
                    {
                        arr.Add(value);
                    }
                }

                if (!found)
                {
                    lines.SetCurrent(current);
                    return(null);
                }
            }

            // Trim blank lines from the start and end of the array
            for (var i = 0; i < 2; i++)
            {
                while (arr.Count > 0 && arr[0].Trim() == "")
                {
                    arr.RemoveAt(0);
                }
                arr.Reverse();
            }

            // Process highlight commands
            var highlight = new List <(int firstLine, int numLines, string color)>();

            if (hl)
            {
                // Highlight commands get their own line so we need to keep track of which lines we're removing as we go
                var newArr    = new List <string>();
                var firstLine = 0;
                foreach (var srcLine in arr)
                {
                    if (srcLine.StartsWith("@@"))
                    {
                        var match = Regex.Match(srcLine, @"^@@(?:(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z]+|\d+)(?::(\d+))?)?$", RegexOptions.IgnoreCase | RegexOptions.Multiline);
                        if (match.Success)
                        {
                            var numLines = 1;
                            var color    = "#FF8000";
                            for (var i = 1; i < match.Groups.Count; i++)
                            {
                                var p = match.Groups[i].Value;
                                if (Colours.IsValidColor(p))
                                {
                                    color = p;
                                }
                                else if (int.TryParse(p, out var iv))
                                {
                                    numLines = iv;
                                }
                            }
                            highlight.Add((firstLine, numLines, color));
                            continue;
                        }
                    }
                    firstLine++;
                    newArr.Add(srcLine);
                }
                arr = newArr;

                // Make sure highlights don't overlap each other or go past the end of the block
                highlight.Add((arr.Count, 0, ""));
                for (var i = 0; i < highlight.Count - 1; i++)
                {
                    var(currFirst, currNum, currCol) = highlight[i];
                    var(nextFirst, _, _)             = highlight[i + 1];
                    var lastLine = currFirst + currNum - 1;
                    if (lastLine >= nextFirst)
                    {
                        highlight[i] = (currFirst, nextFirst - currFirst, currCol);
                    }
                }
                highlight.RemoveAll(x => x.numLines <= 0);
            }

            // Replace all tabs with 4 spaces
            arr = arr.Select(x => x.Replace("\t", "    ")).ToList();

            // Find the longest common whitespace amongst all lines (ignore blank lines)
            var longestWhitespace = arr.Aggregate(9999, (c, i) =>
            {
                if (i.Trim().Length == 0)
                {
                    return(c);
                }
                var wht = i.Length - i.TrimStart().Length;
                return(Math.Min(wht, c));
            });

            // Dedent all lines by the longest common whitespace
            arr = arr.Select(a => a.Substring(Math.Min(longestWhitespace, a.Length))).ToList();

            var highlights = string.Join("", highlight.Select(
                                             h => $"<div class=\"line-highlight\" style=\"top: {h.firstLine}em; height: {h.numLines}em; background: {h.color};\"></div>")
                                         );
            var plain  = new UnprocessablePlainTextNode(String.Join("\n", arr));
            var cls    = string.IsNullOrWhiteSpace(lang) ? "" : $" class=\"lang-{lang}\"";
            var before = $"<pre{cls}><code>{highlights}";
            var after  = "</code></pre>";

            return(new HtmlNode(before, plain, after));
        }
Пример #13
0
 public override INode FormatResult(Parser parser, ParseData data, State state, string scope, Dictionary <string, string> options, string text)
 {
     return(new HtmlNode("<code>", new PlainTextNode(text), "</code>"));
 }
Пример #14
0
        public virtual INode Parse(Parser parser, ParseData data, State state, string scope)
        {
            var index       = state.Index;
            var tokenLength = Token.Length;

            state.Seek(tokenLength + 1, false);
            var optionsString = state.ScanTo("]").Trim();

            if (state.Next() != ']')
            {
                state.Seek(index, true);
                return(null);
            }

            var options = new Dictionary <string, string>();

            if (optionsString.Length > 0)
            {
                if (optionsString[0] == '=' && AllOptionsInMain && MainOption != null)
                {
                    options[MainOption] = optionsString.Substring(1);
                }
                else
                {
                    if (optionsString[0] == '=')
                    {
                        optionsString = MainOption + optionsString;
                    }
                    var matches = Regex.Matches(optionsString, @"(?=\s|^)\s*([^ ]+?)=([^\s]*)\b(?!=)",
                                                RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.Multiline);
                    foreach (Match m in matches)
                    {
                        var name  = m.Groups[1].Value.Trim();
                        var value = m.Groups[2].Value.Trim();
                        options[name] = value;
                    }
                }
            }

            if (IsNested)
            {
                var stack = 1;
                var text  = "";
                while (!state.Done)
                {
                    text += state.ScanTo("[");
                    var tok = state.GetToken();
                    if (tok == Token)
                    {
                        stack++;
                    }
                    if (tok == "/" + Token && state.Peek(tokenLength + 3) == "[/" + Token + "]")
                    {
                        stack--;
                    }
                    if (stack == 0)
                    {
                        state.Seek(Token.Length + 3, false);
                        if (!Validate(options, text))
                        {
                            break;
                        }
                        return(FormatResult(parser, data, state, scope, options, text));
                    }

                    text += state.Next();
                }

                state.Seek(index, true);
                return(null);
            }
            else
            {
                var text = state.ScanTo("[/" + Token + "]");
                if (state.Peek(tokenLength + 3).ToLower() == "[/" + Token + "]" && Validate(options, text))
                {
                    state.Seek(Token.Length + 3, false);
                    return(FormatResult(parser, data, state, scope, options, text));
                }
                else
                {
                    state.Seek(index, true);
                    return(null);
                }
            }
        }
        //Setting properties of the bar chart
        void LoadBarChart()
        {
            barChart.Series.Clear();
            barChart.BackColor = Color.AntiqueWhite;
            barChart.Palette = ChartColorPalette.BrightPastel;
            barChart.ChartAreas[0].BackColor = Color.Transparent;
            barChart.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
            barChart.ChartAreas[0].AxisY.MajorGrid.Enabled = false;
            barChart.ChartAreas[0].AxisX.LabelStyle.Angle = 45;
            barChart.ChartAreas[0].AxisX.LabelAutoFitMinFontSize = 5;
            barChart.ChartAreas[0].AxisX.IsStartedFromZero = true;
            barChart.ChartAreas[0].AxisX.LabelStyle.Interval = 1;
            barChart.ChartAreas[0].AxisX.Maximum = 3;
            barChart.ChartAreas[0].AxisY.Maximum = 100;
            barChart.ChartAreas[0].AxisY.Title = "% Life Expectancy";
            barChart.ChartAreas[0].AxisX.Title = "Year";
            Series series = new Series
            {
                Name = "series2",
                IsVisibleInLegend = false,
                ChartType = SeriesChartType.Line
            };
            //reading life expectancies and populating them in line chart
            ParseData pd = new ParseData();
            string filePath = "..\\..\\..\\..\\Data\\";
            string lifeExpectancyFilePath = filePath + "LifeExpectancy_Chicago.csv";
            Project.ParseData.lifeExpectancy[] lifeExpectancyData = pd.parselifeExpectancyData(lifeExpectancyFilePath);
            double[] expectancy_2010 = new double[78];
            double[] expectancy_2000 = new double[78];
            double[] expectancy_1990 = new double[78];
            for (int k = 0; k < lifeExpectancyData.Length; k++)
            {
                expectancy_2010[k] = Convert.ToDouble(lifeExpectancyData[k].expectancy);
            }
            for (int k = 0; k < lifeExpectancyData.Length; k++)
            {
                expectancy_2000[k] = Convert.ToDouble(lifeExpectancyData[k].expectancy_2000);
            }
            for (int k = 0; k < lifeExpectancyData.Length; k++)
            {
                expectancy_1990[k] = Convert.ToDouble(lifeExpectancyData[k].expectancy_1990);
            }

            for (int i = 0; i < lifeExpectancyData.Length; i++)
            {
                if (lifeExpectancyData[i].communityName.Equals(value_selected))
                {

                    series.Points.Add(expectancy_1990[i]);
                    series.Points.Add(expectancy_2000[i]);
                    series.Points.Add(expectancy_2010[i]);
                    series.Points[0].Label = expectancy_1990[i].ToString();
                    series.Points[1].Label = expectancy_2000[i].ToString();
                    series.Points[2].Label = expectancy_2010[i].ToString();
                    series.Points[0].AxisLabel = "1990";
                    series.Points[1].AxisLabel = "2000";
                    series.Points[2].AxisLabel = "2010";
                }
            }
            series["PointWidth"] = (0.5).ToString();
            barChart.Titles.Add(new Title("Trend of life Expectancies", Docking.Top, new Font("Verdana", 28f, FontStyle.Bold), Color.Black));
            barChart.Series.Add(series);
            barChart.Invalidate();
            panel1.Controls.Add(barChart);
        }
Пример #16
0
        public override INode Parse(Parser parser, ParseData data, State state, string scope)
        {
            var index = state.Index;

            var tag = GetTag(state);

            if (state.ScanTo(":") != $"[{tag}" || state.Next() != ':')
            {
                state.Seek(index, true);
                return(null);
            }

            var str = state.ScanTo("]");

            if (state.Next() != ']')
            {
                state.Seek(index, true);
                return(null);
            }

            var match = Regex.Match(str, @"^([^|\]]*?)(?:\|([^\]]*?))?$", RegexOptions.IgnoreCase);

            if (!match.Success)
            {
                state.Seek(index, true);
                return(null);
            }

            var content = new NodeCollection();

            var image   = match.Groups[1].Value;
            var @params = match.Groups[2].Success ? match.Groups[2].Value.Trim().Split('|') : new string[0];
            var src     = image;

            if (!image.Contains("/"))
            {
                image = System.Web.HttpUtility.HtmlDecode(image);
                content.Nodes.Add(new MetadataNode("WikiUpload", image));
                src = System.Web.HttpUtility.HtmlAttributeEncode($"https://twhl.info/wiki/embed/{WikiRevision.CreateSlug(image)}");
            }

            string url     = null;
            string caption = null;
            var    loop    = false;

            var classes = new List <string> {
                "embedded", "image"
            };

            if (ElementClass != null)
            {
                classes.Add(ElementClass);
            }

            foreach (var p in @params)
            {
                var l = p.ToLower();
                if (IsClass(l))
                {
                    classes.Add(l);
                }
                else if (l == "loop")
                {
                    loop = true;
                }
                else if (l.Length > 4 && l.Substring(0, 4) == "url:")
                {
                    url = p.Substring(4).Trim();
                }
                else
                {
                    caption = p.Trim();
                }
            }

            if (tag == "img" && url != null && ValidateUrl(url))
            {
                if (Regex.IsMatch(url, @"^[a-z]{2,10}://", RegexOptions.IgnoreCase))
                {
                    url = System.Web.HttpUtility.HtmlDecode(url);
                    content.Nodes.Add(new MetadataNode("WikiLink", url));
                    url = System.Web.HttpUtility.HtmlAttributeEncode($"https://twhl.info/wiki/page/{WikiRevision.CreateSlug(url)}");
                }
            }
            else
            {
                url = "";
            }

            var el = "span";

            // Non-inline images should eat any whitespace after them
            if (!classes.Contains("inline"))
            {
                state.SkipWhitespace();
                el = "div";
            }

            var embed = GetEmbedObject(tag, src, caption, loop);

            if (embed != null)
            {
                content.Nodes.Add(embed);
            }
            if (caption != null)
            {
                content.Nodes.Add(new HtmlNode("<span class=\"caption\">", new PlainTextNode(caption), "</span>")
                {
                    PlainAfter = "\n"
                });
            }

            var before = $" <{el} class=\"{string.Join(" ", classes)}\"" + (caption?.Length > 0 ? $" title=\"{caption}\"" : "") + ">"
                         + (url.Length > 0 ? "<a href=\"" + System.Web.HttpUtility.HtmlAttributeEncode(url) + "\">" : "")
                         + "<span class=\"caption-panel\">";
            var after = "</span>"
                        + (url.Length > 0 ? "</a>" : "")
                        + $"</{el}> ";

            return(new HtmlNode(before, content, after));
        }
Пример #17
0
        private ParseData ParseVerse(string reference, bool select)
        {
#if DEMO
            if (searchExpired)
            {
                ResetBibleVerses();
                new DemoVersionOnly("Bible searching").ShowDialog();
                return(null);
            }
#endif
            if (Program.Presenter.bwBibleInit.IsBusy)
            {
                return(null);
            }

            loadingSuspendCount++;

            string    bibVersion = Program.ConfigHelper.BiblePrimaryTranslation;
            string    text       = reference;
            ParseData pd         = new ParseData();
            int       state      = 0;

            // TODO: redo this code to be a real FSM like it should be
            foreach (char c in text)
            {
                if (c == '\'' || c == '*' || c == '%')
                {
                    continue;
                }

                #region IsSeperator

                if (char.IsSeparator(c) || char.IsWhiteSpace(c) || char.IsPunctuation(c))
                {
                    switch (state)
                    {
                    case 0:
                        if (pd.book.Length == 0)
                        {
                            continue;
                        }
                        if (pd.book.Length > 0 && pd.book.Length < 3 && char.IsDigit(pd.book, 0))
                        {
                            pd.book = pd.book.Trim() + c.ToString();
                            continue;
                        }
                        state++;
                        break;

                    case 1:
                        if (pd.chap.Length == 0)
                        {
                            continue;
                        }
                        state++;
                        break;

                    case 2:
                        if (pd.verse.Length == 0)
                        {
                            continue;
                        }
                        state++;
                        if (c == '-')
                        {
                            state++;
                        }
                        break;

                    case 3:
                        if (c == '-')
                        {
                            state++;
                        }
                        else
                        {
                            continue;
                        }
                        break;

                    case 4:
                        if (pd.endVerse.Length == 0)
                        {
                            continue;
                        }
                        goto label_Finish;

                    default:
                        break;
                    }
                }

                #endregion

                #region Is Letter

                else if (char.IsLetter(c))
                {
                    switch (state)
                    {
                    case 0:
                        pd.book += c.ToString();
                        break;

                    case 1:
                        if (pd.chap.Length != 0)
                        {
                            break;
                        }
                        if (pd.book.Length == 0)
                        {
                            pd.book += c.ToString();
                        }
                        else
                        {
                            pd.book += " " + c;
                        }
                        state = 0;
                        break;

                    case 2:
                        if (pd.verse.Length == 0)
                        {
                            continue;
                        }
                        goto label_Finish;

                    default:
                        break;
                    }
                }

                #endregion

                #region Is Digit

                else if (char.IsDigit(c))
                {
                    switch (state)
                    {
                    case 0:
                        if (pd.book.Length == 0)
                        {
                            pd.book += c.ToString() + " ";
                        }
                        else
                        {
                            state++;
                            pd.chap = c.ToString();
                        }
                        break;

                    case 1:
                        pd.chap += c.ToString();
                        break;

                    case 2:
                        pd.verse += c.ToString();
                        break;

                    case 4:
                        pd.endVerse += c.ToString();
                        break;

                    default:
                        break;
                    }
                }
                #endregion
            }

label_Finish:
            if (select)
            {
                if (pd.book.Length > 0)
                {
                    dvBibBooks.RowFilter = "(VersionId = '" + bibVersion + "') AND " +
                                           "(MappingBook LIKE '" + pd.book + "*' OR " +
                                           "Book LIKE '" + pd.book + "*' OR " +
                                           "DisplayBook LIKE '" + pd.book + "*')";
                    UpdateBookList();

                    lbBibleBook.SelectedIndex = 0;
                    UpdateChapterList();

                    if (pd.chap.Length > 0)
                    {
                        int chap = int.Parse(pd.chap);
                        if (lbBibleChapter.Items.Count < chap)
                        {
                            lbBibleChapter.SelectedIndex = -1;
                        }
                        else
                        {
                            lbBibleChapter.SelectedIndex = chap - 1;
                            UpdateVerseList();

                            if (pd.verse.Length > 0)
                            {
                                int v = int.Parse(pd.verse);
                                if (lbBibleVerse.Items.Count < v)
                                {
                                    lbBibleVerse.SelectedIndex = -1;
                                }
                                else
                                {
                                    lbBibleVerse.SelectedIndex = v - 1;
                                    UpdateStartButtons();
                                }
                            }
                        }
                    }
                    else
                    {
                        lbBibleVerse.Items.Clear();
                    }
                }
                else
                {
                    ResetBibleVerses();
                }
            }
            loadingSuspendCount--;

            return(pd);
        }
Пример #18
0
        private void HandleChatEvent(ParseData data)
        {
            DataReader    dr    = new DataReader(data.Data);
            ChatEventType type  = (ChatEventType)dr.ReadInt32();
            int           flags = dr.ReadInt32();
            int           ping  = dr.ReadInt32();

            dr.Seek(12);
            string user = dr.ReadCString();

            byte[] userInfo = dr.ReadNullTerminatedByteArray();
            string text     = Encoding.ASCII.GetString(userInfo);

            switch (type)
            {
            case ChatEventType.UserInChannel:
            case ChatEventType.UserJoinedChannel:
                ChatUser newUser = new ChatUser(user, ping, (UserFlags)flags, UserStats.Parse(user, userInfo));
                if (m_namesToUsers.ContainsKey(user))
                {
                    m_namesToUsers.Remove(user);
                }
                m_namesToUsers.Add(user, newUser);
                UserEventArgs uArgs = new UserEventArgs(type, newUser);
                HandleUserChatEvent(uArgs);
                break;

            case ChatEventType.UserFlagsChanged:
                if (m_namesToUsers.ContainsKey(user))
                {
                    ChatUser changedUser = m_namesToUsers[user];
                    changedUser.Flags = (UserFlags)flags;
                    UserEventArgs updatedArgs = new UserEventArgs(type, changedUser);
                    HandleUserChatEvent(updatedArgs);
                }
                else if (m_channelName.Equals("The Void", StringComparison.OrdinalIgnoreCase))
                {
                    ChatUser voidUser = new ChatUser(user, ping, (UserFlags)flags, UserStats.Parse(user, userInfo));
                    m_namesToUsers.Add(user, voidUser);
                    UserEventArgs voidArgs = new UserEventArgs(type, voidUser);
                    HandleUserChatEvent(voidArgs);
                }
                break;

            case ChatEventType.UserLeftChannel:
                if (m_namesToUsers.ContainsKey(user))
                {
                    ChatUser      goneUser = m_namesToUsers[user];
                    UserEventArgs leftArgs = new UserEventArgs(type, goneUser);
                    HandleUserChatEvent(leftArgs);
                }
                break;

            case ChatEventType.Emote:
            case ChatEventType.Talk:
            case ChatEventType.WhisperReceived:
            case ChatEventType.WhisperSent:
                ChatMessageEventArgs cmArgs = new ChatMessageEventArgs(type, (UserFlags)flags, user, Encoding.UTF8.GetString(userInfo));
                HandleChatMessageEvent(cmArgs);
                break;

            case ChatEventType.NewChannelJoined:
                ServerChatEventArgs joinArgs = new ServerChatEventArgs(type, flags, text);
                m_channelName = text;
                m_namesToUsers.Clear();
                OnJoinedChannel(joinArgs);
                break;

            case ChatEventType.Broadcast:
            case ChatEventType.ChannelDNE:
            case ChatEventType.ChannelFull:
            case ChatEventType.ChannelRestricted:
            case ChatEventType.Error:
            case ChatEventType.Information:
                ServerChatEventArgs scArgs = new ServerChatEventArgs(type, flags, text);
                HandleServerChatEvent(scArgs);
                break;
            }

            BattleNetClientResources.IncomingBufferPool.FreeBuffer(data.Data);
        }
Пример #19
0
        /// <summary>
        /// Converts lines into list items for a given prefix until the prefix no longer matches a line
        /// </summary>
        private IEnumerable <ListItemNode> CreateListItems(ListItemNode lastItemNode, string prefix, Parser parser, ParseData data, Lines lines, string scope)
        {
            do
            {
                var value = lines.Value().TrimEnd();

                if (!value.StartsWith(prefix))
                {
                    // No longer valid for this list
                    lines.Back();
                    yield break;
                }

                value = value.Substring(prefix.Length); // strip the prefix off the line

                // Possibilities:
                // empty string : not valid - stop parsing
                // first character is whitespace : trim and create list item
                // first character is list token, second character is whitespace: create sublist
                // anything else : not valid - stop parsing

                if (value.Length > 1 && value[0] == ' ' && prefix.Length > 0) // don't allow this if we're parsing at level 0
                {
                    // List item
                    value = value.Trim();
                    var pt = parser.ParseTags(data, value.Trim(), scope, "inline");
                    lastItemNode = new ListItemNode(pt);
                    yield return(lastItemNode);
                }
                else if (value.Length > 2 && IsListToken(value[0]) && value[1] == ' ' && lastItemNode != null)
                {
                    // Sublist
                    var tag     = IsSortedToken(value[0]) ? "ol" : "ul";
                    var sublist = new ListNode(tag, CreateListItems(lastItemNode, prefix + value[0], parser, data, lines, scope));
                    lastItemNode.Subtrees.Add(sublist);
                }
                else
                {
                    // Cannot parse this line, list is complete
                    lines.Back();
                    yield break;
                }
            } while (lines.Next());
        }
Пример #20
0
 private void HandleWarcraftRequestLadderMap(ParseData data, DataReader dr)
 {
     BattleNetClientResources.IncomingBufferPool.FreeBuffer(data.Data);
 }
Пример #21
0
        public override INode Parse(Parser parser, ParseData data, State state, string scope)
        {
            var index = state.Index;

            if (state.ScanTo(":") != "[youtube" || state.Next() != ':')
            {
                state.Seek(index, true);
                return(null);
            }

            var str = state.ScanTo("]");

            if (state.Next() != ']')
            {
                state.Seek(index, true);
                return(null);
            }

            var regs = Regex.Match(str, @"^([^|\]]*?)(?:\|([^\]]*?))?$", RegexOptions.IgnoreCase);

            if (!regs.Success)
            {
                state.Seek(index, true);
                return(null);
            }

            var id      = regs.Groups[1].Value;
            var @params = regs.Groups[2].Value.Trim().Split('|');

            if (!ValidateID(id))
            {
                state.Seek(index, true);
                return(null);
            }

            state.SkipWhitespace();

            string caption = null;
            var    classes = new List <string> {
                "embedded", "video"
            };

            if (ElementClass != null)
            {
                classes.Add(ElementClass);
            }
            foreach (var p in @params)
            {
                var l = p.ToLower();
                if (IsClass(l))
                {
                    classes.Add(l);
                }
                else
                {
                    caption = p.Trim();
                }
            }

            var captionNode = new HtmlNode(
                caption != null ? "<span class=\"caption\">" : "",
                new PlainTextNode(caption ?? ""),
                caption != null ? "</span>" : ""
                )
            {
                PlainBefore = "[YouTube video] ", PlainAfter = "\n"
            };

            var before = $"<div class=\"{string.Join(" ", classes)}\">" +
                         $" <div class=\"caption-panel\">" +
                         $"  <div class=\"video-container caption-body\">" +
                         $"   <div class=\"video-content\">" +
                         $"    <div class=\"uninitialised\" data-youtube-id=\"{id}\" style=\"background-image: url('https://i.ytimg.com/vi/{id}/hqdefault.jpg');\"></div>" +
                         $"   </div>" +
                         $"  </div>";
            var after = $"</div></div>";

            return(new HtmlNode(before, captionNode, after));
        }
Пример #22
0
        private void HandleAuthInfo(ParseData data)
        {
            try
            {
                DataReader dr = new DataReader(data.Data);
                if (m_pingPck != null)
                {
                    Send(m_pingPck);
                    m_pingPck = null;
                }
                m_received0x50 = true;

                m_loginType          = dr.ReadUInt32();
                m_srvToken           = dr.ReadUInt32();
                m_udpVal             = dr.ReadUInt32();
                m_mpqFiletime        = dr.ReadInt64();
                m_versioningFilename = dr.ReadCString();
                m_usingLockdown      = m_versioningFilename.StartsWith("LOCKDOWN", StringComparison.OrdinalIgnoreCase);

                int    crResult = -1, exeVer = -1;
                string exeInfo = null;

                if (!m_usingLockdown)
                {
                    m_valString = dr.ReadCString();
                    int mpqNum = CheckRevision.ExtractMPQNumber(m_versioningFilename);
                    crResult = CheckRevision.DoCheckRevision(m_valString, new string[] { m_settings.GameExe, m_settings.GameFile2, m_settings.GameFile3 }, mpqNum);
                    exeVer   = CheckRevision.GetExeInfo(m_settings.GameExe, out exeInfo);
                }
                else
                {
                    m_ldValStr = dr.ReadNullTerminatedByteArray();
                    string dllName = m_versioningFilename.Replace(".mpq", ".dll");

                    BnFtpVersion1Request req = new BnFtpVersion1Request(m_settings.Client, m_versioningFilename, null);
                    req.Server        = m_settings.Gateway.ServerHost;
                    req.LocalFileName = Path.Combine(Path.GetTempPath(), m_versioningFilename);
                    req.ExecuteRequest();

                    string ldPath = null;
                    using (MpqArchive arch = MpqServices.OpenArchive(req.LocalFileName))
                    {
                        if (arch.ContainsFile(dllName))
                        {
                            ldPath = Path.Combine(Path.GetTempPath(), dllName);
                            arch.SaveToPath(dllName, Path.GetTempPath(), false);
                        }
                    }

                    m_ldDigest = CheckRevision.DoLockdownCheckRevision(m_ldValStr, new string[] { m_settings.GameExe, m_settings.GameFile2, m_settings.GameFile3 },
                                                                       ldPath, m_settings.ImageFile, ref exeVer, ref crResult);
                }

                m_prodCode = m_settings.Client;

                if (m_prodCode == "WAR3" ||
                    m_prodCode == "W3XP")
                {
                    m_w3srv = dr.ReadByteArray(128);

                    if (!NLS.ValidateServerSignature(m_w3srv, RemoteEP.Address.GetAddressBytes()))
                    {
                        OnError(new ErrorEventArgs(ErrorType.Warcraft3ServerValidationFailure, Strings.War3ServerValidationFailed, false));
                        //Close();
                        //return;
                    }
                }

                BattleNetClientResources.IncomingBufferPool.FreeBuffer(data.Data);

                CdKey key1, key2 = null;
                key1 = new CdKey(m_settings.CdKey1);
                if (m_prodCode == "D2XP" || m_prodCode == "W3XP")
                {
                    key2 = new CdKey(m_settings.CdKey2);
                }

                m_clientToken = unchecked ((uint)new Random().Next());

                byte[] key1Hash = key1.GetHash(m_clientToken, m_srvToken);
                if (m_warden != null)
                {
                    try
                    {
                        if (!m_warden.InitWarden(BitConverter.ToInt32(key1Hash, 0)))
                        {
                            m_warden.UninitWarden();
                            OnError(new ErrorEventArgs(ErrorType.WardenModuleFailure, "The Warden module failed to initialize.  You will not be immediately disconnected; however, you may be disconnected after a short period of time.", false));
                            m_warden = null;
                        }
                    }
                    catch (Win32Exception we)
                    {
                        OnError(new ErrorEventArgs(ErrorType.WardenModuleFailure, "The Warden module failed to initialize.  You will not be immediately disconnected; however, you may be disconnected after a short period of time.", false));
                        OnError(new ErrorEventArgs(ErrorType.WardenModuleFailure, string.Format(CultureInfo.CurrentCulture, "Additional information: {0}", we.Message), false));
                        m_warden.UninitWarden();
                        m_warden = null;
                    }
                }

                BncsPacket pck0x51 = new BncsPacket((byte)BncsPacketId.AuthCheck);
                pck0x51.Insert(m_clientToken);
                pck0x51.Insert(exeVer);
                pck0x51.Insert(crResult);
                if (m_prodCode == "D2XP" || m_prodCode == "W3XP")
                {
                    pck0x51.Insert(2);
                }
                else
                {
                    pck0x51.Insert(1);
                }
                pck0x51.Insert(false);
                pck0x51.Insert(key1.Key.Length);
                pck0x51.Insert(key1.Product);
                pck0x51.Insert(key1.Value1);
                pck0x51.Insert(0);
                pck0x51.Insert(key1Hash);
                if (key2 != null)
                {
                    pck0x51.Insert(key2.Key.Length);
                    pck0x51.Insert(key2.Product);
                    pck0x51.Insert(key2.Value1);
                    pck0x51.Insert(0);
                    pck0x51.Insert(key2.GetHash(m_clientToken, m_srvToken));
                }

                if (m_usingLockdown)
                {
                    pck0x51.InsertByteArray(m_ldDigest);
                    pck0x51.InsertByte(0);
                }
                else
                {
                    pck0x51.InsertCString(exeInfo);
                }

                pck0x51.InsertCString(m_settings.CdKeyOwner);

                Send(pck0x51);
            }
            catch (Exception ex)
            {
                OnError(new ErrorEventArgs(ErrorType.General, "There was an error while initializing your client.  Refer to the exception message for more information.\n" + ex.ToString(), true));
                Close();
            }
        }
        //Setting properties of the bar chart
        void LoadBarChart()
        {
            barChart.Series.Clear();
            barChart.BackColor = Color.PowderBlue;
            barChart.Palette = ChartColorPalette.Fire;
            barChart.ChartAreas[0].BackColor = Color.Transparent;
            barChart.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
            barChart.ChartAreas[0].AxisY.MajorGrid.Enabled = false;
            barChart.ChartAreas[0].AxisX.LabelStyle.Angle = 45;
            barChart.ChartAreas[0].AxisX.LabelAutoFitMinFontSize = 5;
            barChart.ChartAreas[0].AxisX.IsStartedFromZero = true;
            barChart.ChartAreas[0].AxisX.LabelStyle.Interval = 1;
            barChart.ChartAreas[0].AxisX.Maximum = 80;
            barChart.ChartAreas[0].AxisY.Title = "Per Capita Incomes";
            barChart.ChartAreas[0].AxisX.Title = "Community Name";

            Series series = new Series
            {
                Name = "series2",
                IsVisibleInLegend = false,
                ChartType = SeriesChartType.Column
            };
            //reading socio economic indicators and populating them in bar chart
            ParseData pd = new ParseData();
            string filePath = "..\\..\\..\\..\\Data\\";
            string SocioEconomicIndicatorsFilePath = filePath + "SocioEconomic_Indicators_Chicago.csv";
            Project.ParseData.SocioEconomicIndicators[] socioEconomicData = pd.parsesocioEconomicData(SocioEconomicIndicatorsFilePath);
            double[] perCapitaIncome = new double[78];
            for (int k = 0; k < socioEconomicData.Length; k++)
            {
                perCapitaIncome[k] = Convert.ToDouble(socioEconomicData[k].perCapitaIncome);
            }
            for (int i = 0; i < socioEconomicData.Length; i++)
            {
                series.Points.Add(perCapitaIncome[i]);
                series.Points[i].Label = perCapitaIncome[i].ToString();
                series.Points[i].AxisLabel = socioEconomicData[i].communityName;
                series.Points[i].Color = Color.DarkSlateGray;
            }
            series["PointWidth"] = (0.7).ToString();
            barChart.Titles.Add(new Title("Per Capita Incomes of different communities in Chicago", Docking.Top, new Font("Verdana", 28f, FontStyle.Bold), Color.Black));
            barChart.Series.Add(series);
            barChart.Invalidate();
            panel1.Controls.Add(barChart);
        }
        // Drop Down to select different communities
        private void ComboBox_Loaded(object sender, RoutedEventArgs e)
        {
            List<string> data = new List<string>();

            ParseData pd = new ParseData();
            string filePath = "..\\..\\..\\..\\Data\\";
            string lifeExpectancyFilePath = filePath + "LifeExpectancy_Chicago.csv";
            Project.ParseData.lifeExpectancy[] lifeExpectancyData = pd.parselifeExpectancyData(lifeExpectancyFilePath);
            data.Add("Community Name");
            //Added different coummunities to drop down
            for (int i = 0; i < lifeExpectancyData.Length; i++)
            {
                data.Add(lifeExpectancyData[i].communityName);
            }

            var comboBox = sender as System.Windows.Controls.ComboBox;
            comboBox.ItemsSource = data;
            comboBox.SelectedIndex = 0;
        }
Пример #25
0
 public Task <string> Parse([FromBody] ParseData data)
 {
     return(MediaWikis.Create(data.Wiki, _identity).Parse(data.Text, data.Title));
 }
        //Setting properties of the pie chart
        void LoadPieChart()
        {
            pieChart.Series.Clear();
            pieChart.Palette = ChartColorPalette.Fire;
            pieChart.BackColor = Color.LightYellow;
            pieChart.ChartAreas[0].BackColor = Color.Transparent;
            Series series = new Series
            {
                Name = "Socio Economic Indicators",
                IsVisibleInLegend = true,
                ChartType = SeriesChartType.Pie
            };
            pieChart.Series.Add(series);
            //reading life expectancies and populating them in pie chart
            ParseData pd = new ParseData();
            string filePath = "..\\..\\..\\..\\Data\\";
            string SocioEconomicIndicatorsFilePath = filePath + "SocioEconomic_Indicators_Chicago.csv";
            Project.ParseData.SocioEconomicIndicators[] socioEconomicData = pd.parsesocioEconomicData(SocioEconomicIndicatorsFilePath);
            double[] housingCrowded = new double[78];
            double[] poverty = new double[78];
            double[] unemployment = new double[78];
            double[] noDiploma = new double[78];
            double[] under18over65 = new double[78];
            for (int k = 0; k < socioEconomicData.Length; k++)
            {
                poverty[k] = Convert.ToDouble(socioEconomicData[k].poverty);
            }
            for (int k = 0; k < socioEconomicData.Length; k++)
            {
                unemployment[k] = Convert.ToDouble(socioEconomicData[k].unemployment);
            }
            for (int k = 0; k < socioEconomicData.Length; k++)
            {
                noDiploma[k] = Convert.ToDouble(socioEconomicData[k].noDiploma);
            }
            for (int k = 0; k < socioEconomicData.Length; k++)
            {
                under18over65[k] = Convert.ToDouble(socioEconomicData[k].under18over65);
            }
            for (int k = 0; k < socioEconomicData.Length; k++)
            {
                housingCrowded[k] = Convert.ToDouble(socioEconomicData[k].housingCrowded);
            }

            for (int i = 0; i < socioEconomicData.Length; i++)
            {
                if (socioEconomicData[i].communityName.Equals(value_selected))
                {
                    series.Points.Add(poverty[i]);
                    series.Points.Add(unemployment[i]);
                    series.Points.Add(noDiploma[i]);
                    series.Points.Add(under18over65[i]);
                    series.Points.Add(housingCrowded[i]);
                    series.Points[0].LegendText = "Poverty";
                    series.Points[1].LegendText = "Unemployment";
                    series.Points[2].LegendText = "Percent people with no Diploma";
                    series.Points[3].LegendText = "Percent people under the age 18 and over 65";
                    series.Points[4].LegendText = "Percent housing crowded";
                    series.Points[0].Label = poverty[i].ToString();
                    series.Points[1].Label = unemployment[i].ToString();
                    series.Points[2].Label = noDiploma[i].ToString();
                    series.Points[3].Label = under18over65[i].ToString();
                    series.Points[4].Label = housingCrowded[i].ToString();
                    //pieChart.Titles.Add("Socio Economic Indicators for " + value_selected);
                    pieChart.Titles.Add(new Title("Socio Economic Indicators for " + value_selected, Docking.Top, new Font("Verdana", 28f, FontStyle.Bold), Color.Black));
                }
            }
            series["PointWidth"] = (0.5).ToString();
            pieChart.Invalidate();
            panel1.Controls.Add(pieChart);
        }
Пример #27
0
        public override INode Consume(Parser parser, ParseData data, Lines lines, string scope)
        {
            var current = lines.Current();

            var meta  = lines.Value().Substring(3);
            var title = "";

            var found = false;
            var arr   = new List <string>();

            while (lines.Next())
            {
                var value = lines.Value().TrimEnd();
                if (value == "~~~")
                {
                    found = true;
                    break;
                }

                if (value.Length > 1 && value[0] == ':')
                {
                    title = value.Substring(1).Trim();
                }
                else
                {
                    arr.Add(value);
                }
            }

            if (!found)
            {
                lines.SetCurrent(current);
                return(null);
            }

            string cls;

            if (meta == "message")
            {
                cls = "card-success";
            }
            else if (meta == "info")
            {
                cls = "card-info";
            }
            else if (meta == "warning")
            {
                cls = "card-warning";
            }
            else if (meta == "error")
            {
                cls = "card-danger";
            }
            else
            {
                cls = "card-default";
            }

            var before = $"<div class=\"embed-panel card {cls}\">" +
                         (title != "" ? $"<div class=\"card-header\">{System.Web.HttpUtility.HtmlEncode(title)}</div>" : "") +
                         "<div class=\"card-body\">";
            var content = parser.ParseElements(data, string.Join("\n", arr), scope);
            var after   = "</div></div>";

            return(new HtmlNode(before, content, after)
            {
                PlainBefore = title == "" ? "" : title + "\n" + new string('-', title.Length) + "\n"
            });
        }
Пример #28
0
        public IEnumerable <INode> Process(Parser parser, ParseData data, INode node, string scope)
        {
            var text = ((PlainTextNode)node).Text;

            /*
             * Like everything else here, this isn't exactly markdown, but it's close.
             * _underline_
             * /italics/
             * *bold*
             * ~strikethrough~
             * `code`
             * Very simple rules: no nesting, no newlines, must start/end on a word boundary
             */

            // pre-condition: start of a line OR one of: !?^()+=[]{}"'<>,. OR whitespace
            // first and last character is NOT whitespace. everything else is fine except for newlines
            // post-condition: end of a line OR one of: !?^()+=[]{}"'<>,.:; OR whitespace

            var tracker = new int[Tokens.Length];

            void ResetTracker()
            {
                for (var j = 0; j < tracker.Length; j++)
                {
                    tracker[j] = -1;
                }
            }

            ResetTracker();

            var plainStart = 0;
            int i;

            for (i = 0; i < text.Length; i++)
            {
                var c = text[i];

                // No newlines in tokens
                if (c == '\n' || c == '\r')
                {
                    ResetTracker();
                    continue;
                }

                var tokenIndex = GetTokenIndex(c);
                if (tokenIndex < 0)
                {
                    continue;
                }

                // Check if we're in this token, and we can close it out
                if (tracker[tokenIndex] >= 0 && (i + 1 == text.Length || IsEndBreakChar(text[i + 1])) && !Char.IsWhiteSpace(text, i - 1))
                {
                    var start = tracker[tokenIndex];
                    var end   = i;
                    if (plainStart < start)
                    {
                        yield return(new PlainTextNode(text.Substring(plainStart, start - plainStart)));
                    }
                    yield return(new HtmlNode(OpenTags[tokenIndex], new PlainTextNode(text.Substring(start + 1, end - start - 1)), CloseTags[tokenIndex]));

                    ResetTracker();
                    plainStart = i + 1;
                }

                // Check if we can open a new token
                else if ((i == 0 || IsStartBreakChar(text[i - 1])) && i + 1 < text.Length && !Char.IsWhiteSpace(text, i + 1))
                {
                    tracker[tokenIndex] = i;
                }
            }

            // Return the rest of the text as plain
            if (plainStart < text.Length)
            {
                yield return(new PlainTextNode(text.Substring(plainStart)));
            }
        }
        void LoadBarChart()
        {
            barChart.Series.Clear();
            barChart.BackColor = Color.PowderBlue;
            barChart.Palette = ChartColorPalette.Fire;
            barChart.ChartAreas[0].BackColor = Color.Transparent;
            barChart.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
            barChart.ChartAreas[0].AxisY.MajorGrid.Enabled = false;
            barChart.ChartAreas[0].AxisX.LabelStyle.Angle = 45;
            barChart.ChartAreas[0].AxisX.LabelAutoFitMinFontSize = 5;
            barChart.ChartAreas[0].AxisX.IsStartedFromZero = true;
            barChart.ChartAreas[0].AxisX.LabelStyle.Interval= 1;
            barChart.ChartAreas[0].AxisX.Maximum = 79;

            Series series = new Series
            {
                Name = "series2",
                IsVisibleInLegend = false,
                ChartType = SeriesChartType.Column
            };

            ParseData pd = new ParseData();
            string filePath = "..\\..\\..\\..\\Data\\";
            string lifeExpectancyFilePath = filePath + "LifeExpectancy_Chicago.csv";
            Project.ParseData.lifeExpectancy[] lifeExpectancyData = pd.parselifeExpectancyData(lifeExpectancyFilePath);
            double[] expectancy = new double[78];
            for (int k = 0; k < lifeExpectancyData.Length; k++)
            {
                expectancy[k] = Convert.ToDouble(lifeExpectancyData[k].expectancy);
            }
            for (int i = 0; i < lifeExpectancyData.Length; i++)
            {
                series.Points.Add(expectancy[i]);
                series.Points[i].Label = lifeExpectancyData[i].expectancy;
                series.Points[i].AxisLabel = lifeExpectancyData[i].communityName;
                series.Points[i].Color = Color.Green;
            }
            series["PointWidth"] = (0.7).ToString();

            barChart.Series.Add(series);
            barChart.Invalidate();

            panel2.Controls.Add(barChart);
        }
Пример #30
0
 private static void DateTimeServer(Player player) =>
 player.SendClientMessage(Color.Orange, $"--> Fecha y hora local del servidor: {Color.White}{ParseData.ToStringDateTime(DateTime.Now)}");
Пример #31
0
        private void pollStreamerMainTab(string streamName)
        {
            ParseData classParseData = new ParseData();
                string doReturnData = classParseData.getData(streamName);

                var converter = new System.Windows.Media.BrushConverter();
                var brushRed = (Brush)converter.ConvertFromString("#FF0000");
                var brushGreen = (Brush)converter.ConvertFromString("#33FF00");

                lbl_contentGetStreamer.Content = streamName;

                if (doReturnData.Contains("!(LIVE)"))
                {
                    lbl_StreamerStatus.Foreground = brushRed;
                    lbl_StreamerStatus.Content = "STREAMER OFFLINE";
                }
                else
                {
                    string finalTitle = doReturnData.Split('$')[0];
                    string finalGame = doReturnData.Split('$')[1];
                    string finalViewers = doReturnData.Split('$')[2];
                    var finalImage = doReturnData.Split('$')[3];
                    lbl_contentGetTitle.Content = finalTitle;
                    lbl_contentGetGame.Content = finalGame;
                    lbl_contentGetViewerCount.Content = finalViewers;

                    if (checkbox_getAvatar.IsChecked == true)
                    {
                        img_streamerOffline.Source = getStreamerImage(finalImage);
                    }

                    lbl_StreamerStatus.Foreground = brushGreen;
                    lbl_StreamerStatus.Content = "STREAMER ONLINE";
                }
        }
Пример #32
0
        private static ParseData ParseParameters(string format, bool parseValue)
        {
            ParseData parseData = new ParseData();

            parseData.RefParamStack  = new Stack <CommandReferenceParam>();
            parseData.ValParamStack  = new Stack <CommandParam>();
            parseData.Tokens         = new List <string>();
            parseData.Token          = "";
            parseData.IsParsingValue = parseValue;

            // Create the root parameter.
            if (parseData.IsParsingValue)
            {
                parseData.ValParamStack.Push(new CommandParam(CommandParamType.Array));
            }
            else
            {
                parseData.RefParamStack.Push(new CommandReferenceParam(CommandParamType.Array));
            }

            // Parse the format, character by character.
            bool quotes = false;

            for (int i = 0; i < format.Length; i++)
            {
                char c = format[i];

                // Parse strings between quotes.
                if (quotes)
                {
                    if (c == '"')
                    {
                        quotes = false;
                        CompleteToken(parseData);
                    }
                    else
                    {
                        parseData.Token += c;
                    }
                }
                else if (c == '"')
                {
                    quotes = true;
                }

                // Whitespace.
                else if (c == ' ' || c == '\t')
                {
                    CompleteToken(parseData);
                }

                // Parameter delimiter (comma)
                else if (c == ',')
                {
                    CompleteToken(parseData);
                    CompleteDefaultValue(parseData);
                }

                // Parameter array begin
                else if (c == '(')
                {
                    if (parseData.IsParsingValue)
                    {
                        if (parseData.IsParsingDefaultValue)
                        {
                            parseData.RefParamStack.Push(parseData.RefParamStack.Peek()
                                                         .GetChildren().ElementAt(parseData.ValParamStack.Peek().ChildCount));
                        }
                        parseData.ValParamStack.Push(parseData.ValParamStack.Peek()
                                                     .AddChild(new CommandParam(CommandParamType.Array)));
                    }
                    else
                    {
                        parseData.RefParamStack.Push(parseData.RefParamStack.Peek()
                                                     .AddChild(new CommandReferenceParam(CommandParamType.Array)));
                    }
                }

                // Parameter array end.
                else if (c == ')')
                {
                    CompleteToken(parseData);
                    if (parseData.IsParsingValue)
                    {
                        parseData.ValParamStack.Pop();
                    }
                    if (!parseData.IsParsingValue || (parseData.IsParsingValue && parseData.IsParsingDefaultValue))
                    {
                        parseData.RefParamStack.Pop();
                    }
                }

                // Default parameter value.
                else if (c == '=')
                {
                    parseData.IsParsingValue        = true;
                    parseData.IsParsingDefaultValue = true;
                    CommandReferenceParam refParent = new CommandReferenceParam(CommandParamType.Array);
                    refParent.AddChild(parseData.RefParamStack.Peek().GetChildren().Last());
                    parseData.RefParamStack.Push(refParent);
                    parseData.ValParamStack.Push(new CommandParam(CommandParamType.Array));
                }
                //else if (c == '.') { TODO: variadic parameters.
                //}
                else
                {
                    parseData.Token += c;
                }
            }

            CompleteToken(parseData);
            CompleteDefaultValue(parseData);

            return(parseData);
        }