Ejemplo n.º 1
0
 public IEnumerable<Stacky.Question> GetQuestions(Stacky.Site site, string[] tags)
 {
     var siteClient = new StackyClient("1.0", "", site, new UrlClient(), new JsonProtocol());
     QuestionOptions qo = new QuestionOptions();
     qo.IncludeBody = true;
     qo.Max = 1000;
     qo.Tags = tags;
     return siteClient.GetQuestions(qo);
 }
Ejemplo n.º 2
0
        public static void Main()
        {
            var stack = new Stacky<int>();

            stack.Push(50);
            Console.WriteLine("Pop: " + stack.Pop());

            stack.Push(12);
            stack.Push(200);
            stack.Push(65);
            stack.Push(35);
            Console.WriteLine("Peek: " + stack.Peek());

            Console.WriteLine(string.Join(" --> ", stack));
        }
Ejemplo n.º 3
0
 private void btnStackoverflow_Click(object sender, EventArgs e)
 {
     Stacky stack = new Stacky();
 }
Ejemplo n.º 4
0
        public static Stacky PrettifyStackTrace(string stackTrace, Type exceptionType)
        {
            var stacky = new Stacky
            {
                ExceptionType = exceptionType.ToString()
            };

            if (!string.IsNullOrEmpty(stackTrace))
            {
                stacky.StackLines = new List <string>();

                var lines = stackTrace.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

                var stackCount = 0;

                try // Try to Prettify
                {
                    for (int i = 0; i < lines.Length; i++)
                    {
                        var line = lines[i];

                        if (i == 0)
                        {
                            var subStrings    = line.Split(new string[] { " in " }, StringSplitOptions.RemoveEmptyEntries);
                            var methodStrings = subStrings[0].Split(new string[] { "   at " }, StringSplitOptions.RemoveEmptyEntries);
                            var fileStrings   = (subStrings.Length > 1) ? subStrings[1].Split(new string[] { ":line " }, StringSplitOptions.RemoveEmptyEntries) : new string[] { subStrings[0], string.Empty };
                            stacky.Method   = methodStrings[methodStrings.Length - 1];
                            stacky.FileName = fileStrings[0].Contains(".cs") ? fileStrings[0] : "System/NET Exception";
                            stacky.Line     = int.Parse(fileStrings[1]);

                            stacky.StackLines.Add(stacky.Method);
                        }
                        else if (line.StartsWith("---"))
                        {
                            stackCount++;
                            stacky.StackLines.Add($"=== Sub-stack {stackCount} ===");
                        }
                        else
                        {
                            stacky.StackLines.Add(line.Replace("   at ", " @ "));
                        }
                    }
                }
                catch // Else just print the lines as is.
                {
                    stackCount = 0;
                    stacky.StackLines.Clear();

                    for (int i = 0; i < lines.Length; i++)
                    {
                        var line = lines[i];

                        if (line.StartsWith("---"))
                        {
                            stackCount++;
                            stacky.StackLines.Add($"=== Sub-stack {stackCount} ===");
                        }
                        else
                        {
                            stacky.StackLines.Add(line.Replace("   at ", " @ "));
                        }
                    }
                }
            }

            return(stacky);
        }