示例#1
0
        public void PrintUsage(ServerResponse response)
        {
            response.AddData(HTML.CreateOutputLine("<br/><br/>", Color.Get("orange", "WebCMD Issue DB"), " -- Version 2.2 -- Team Icelane (c) 2015 <br/><br/>"));

            response.AddData(HTML.CreateOutputLine("Command to manage the WebCMD issue database.<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("  Aliases: "), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("    "), Color.Get("orange", HTML.Encode(String.Join(", ", this.Aliase))), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("  Usage:"), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("    "), Color.Get("orange", "issues"), " [list|add|remove|fixed|invalid|new|work|priority] <br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange", HTML.Encode("      list [state]"))));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Get a list of issues based on the given issue-state."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Available issue-states:")));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), Color.Get("green-light", Issue.IssueState.FIXED.ToString())));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), Color.Get("green-light", Issue.IssueState.DONE.ToString())));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), Color.Get("blue-light", Issue.IssueState.NEW.ToString())));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), Color.Get("red", Issue.IssueState.INVALID.ToString())));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), Color.Get("orange", Issue.IssueState.WORK.ToString()), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange", HTML.Encode("      add|report <description>"))));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Add a issue/todo or report a bug with the given description text."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Use the command alias "), Color.Get("orange", "\"bug\""), HTML.Encode(" to report the issue or add "), Color.Get("orange", HTML.Encode("\"Bug:\""))));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          at the beginning of the description text to mark the issue as a bug.")));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Add "), Color.Get("orange", HTML.Encode("\"Add:\"")), HTML.Encode(" at the beginning of the description text to mark the issue as an addition."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Text within square brackets ("), Color.Get("blue-light", HTML.Encode("[]")), HTML.Encode(") at the beginning of the description text")));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          will be highlighted with a color."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange", HTML.Encode("      remove|-rm <id>"))));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Remove the issue with the given id."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange", HTML.Encode("      fixed|-f <id>"))));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Mark the issue with the given id as "), Color.Get("green-light", Issue.IssueState.FIXED.ToString()), " / ", Color.Get("green-light", "DONE"), ".", "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange", HTML.Encode("      invalid|-i <id>"))));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Mark the the issue with the given id as an "), Color.Get("red", Issue.IssueState.INVALID.ToString()), " issue.", "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange", HTML.Encode("      new|-n <id>"))));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Mark the issue with the given id as a "), Color.Get("blue-light", Issue.IssueState.NEW.ToString()), " issue.", "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange", HTML.Encode("      work|assig|-w|-as <id>"))));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Mark the issue with the given id as "), Color.Get("orange", Issue.IssueState.WORK.ToString()), ", wich means someone is working on it.", "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange", HTML.Encode("      priority|prio|-p <id> <priority>"))));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Set the issue priority."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("          Available priority:")));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), Color.Get("red", "!"), " (critical)"));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), Color.Get("orange", "+"), " (heigh)"));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), ".", " (normal)"));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), Color.Get("blue-light", "-"), " (low)"));
            response.AddData(HTML.CreateOutputLine(HTML.Encode("           - "), Color.Get("green-light", "?"), " (suggestion)", "<br/><br/>"));
        }
        public void PrintUsage(ServerResponse response)
        {
            response.AddData(HTML.CreateOutputLine("<br/><br/>", Color.Get("orange", "WebCMD Issue DB"), " -- Version 2.2 -- Team Icelane (c) 2015 <br/><br/>"));

            response.AddData(HTML.CreateOutputLine("Command to manage the WebCMD issue database.<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("  Aliases: "), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("    "), Color.Get("orange", HTML.Encode(String.Join(", ", this.Aliase))), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("  Usage:"), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(HTML.Encode("    "), Color.Get("orange", "issues"), " [list|add|remove|fixed|invalid|new|work|priority] <br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange",     HTML.Encode("      list [state]"))));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Get a list of issues based on the given issue-state."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Available issue-states:")));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), Color.Get("green-light", Issue.IssueState.FIXED.ToString())));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), Color.Get("green-light", Issue.IssueState.DONE.ToString())));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), Color.Get("blue-light", Issue.IssueState.NEW.ToString())));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), Color.Get("red", Issue.IssueState.INVALID.ToString())));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), Color.Get("orange", Issue.IssueState.WORK.ToString()), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange",     HTML.Encode("      add|report <description>"))));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Add a issue/todo or report a bug with the given description text."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Use the command alias "), Color.Get("orange", "\"bug\""), HTML.Encode(" to report the issue or add "), Color.Get("orange", HTML.Encode("\"Bug:\""))));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          at the beginning of the description text to mark the issue as a bug.")));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Add "), Color.Get("orange", HTML.Encode("\"Add:\"")), HTML.Encode(" at the beginning of the description text to mark the issue as an addition."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Text within square brackets ("), Color.Get("blue-light", HTML.Encode("[]")), HTML.Encode(") at the beginning of the description text")));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          will be highlighted with a color."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange",     HTML.Encode("      remove|-rm <id>"))));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Remove the issue with the given id."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange",     HTML.Encode("      fixed|-f <id>"))));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Mark the issue with the given id as "), Color.Get("green-light", Issue.IssueState.FIXED.ToString()), " / ", Color.Get("green-light", "DONE"), ".", "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange",     HTML.Encode("      invalid|-i <id>"))));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Mark the the issue with the given id as an "), Color.Get("red", Issue.IssueState.INVALID.ToString()), " issue.", "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange",     HTML.Encode("      new|-n <id>"))));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Mark the issue with the given id as a "), Color.Get("blue-light", Issue.IssueState.NEW.ToString()), " issue.", "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange",     HTML.Encode("      work|assig|-w|-as <id>"))));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Mark the issue with the given id as "), Color.Get("orange", Issue.IssueState.WORK.ToString()), ", wich means someone is working on it.", "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(Color.Get("orange",     HTML.Encode("      priority|prio|-p <id> <priority>"))));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Set the issue priority."), "<br/><br/>"));

            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("          Available priority:")));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), Color.Get("red", "!"), " (critical)"));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), Color.Get("orange", "+"), " (heigh)"));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), ".", " (normal)"));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), Color.Get("blue-light", "-"), " (low)"));
            response.AddData(HTML.CreateOutputLine(                        HTML.Encode("           - "), Color.Get("green-light", "?"), " (suggestion)", "<br/><br/>"));
        }
示例#3
0
        protected override bool _Execute(CommandRequest e)
        {
            string[]       args     = e.ArgumentList;
            ServerResponse response = ResponseHandler.NewOutputResponse;

            try
            {
                // 0
                if (args.Length <= 0)
                {
                    List <Issue> l = GetIssueList();

                    foreach (Issue o in l)
                    {
                        if (o.State == Issue.IssueState.NEW || o.State == Issue.IssueState.WORK)
                        {
                            response.AddData(CreateHtmlEntry(o));
                        }
                    }
                }
                // 3
                //PRIORITY
                else if (check(args, 3, "prio", "priority", "-p"))
                {
                    Issue o = GetObject(Int32.Parse(args[1]));
                    if (o != null)
                    {
                        o.Priority = Issue.GetPriority(args[2].ToLower().Trim());

                        response.AddData(HTML.CreateCssClassOutputLine("blue-light", "Changed: "));
                        response.AddData(CreateHtmlEntry(UpdateObject(o)));
                    }
                    else
                    {
                        response.AddData(CmdMessage.Get(CmdMessage.Type.Error, HTML.Encode("Error: ID Not found!")));
                    }
                }
                // 2
                //ADD
                else if (check(args, 2, "add", "report"))
                {
                    List <Issue> l = GetIssueList();

                    string          desc      = Regex.Replace(e.ArgumentString.Substring(args[0].Length), "\\s+", " ").Trim();
                    string          highlight = "";
                    Issue.IssueType type      = Issue.IssueType.TODO;

                    //prio
                    Issue.IssuePriority prio = Issue.GetPriority(desc.ToLower().Trim().Substring(0, 1));

                    if (prio != Issue.IssuePriority.NORMAL)
                    {
                        desc = desc.Trim().Substring(1).Trim();
                    }

                    //heightlight (e.g. "[JS] ...")
                    if (desc.ToLower().StartsWith("[") && desc.ToLower().Contains("]"))
                    {
                        highlight = desc.Substring(0, desc.IndexOf("]") + 1).Trim();
                        desc      = desc.Substring(highlight.Length).Trim();
                    }

                    //bug
                    string b = e.Command.ToLower();
                    if (b.Contains("bug"))
                    {
                        type = Issue.IssueType.BUG;
                    }
                    if (desc.ToLower().StartsWith("bug:"))
                    {
                        type = Issue.IssueType.BUG;
                        desc = desc.Substring(4).Trim();
                    }
                    //add
                    if (desc.ToLower().StartsWith("add:"))
                    {
                        type = Issue.IssueType.ADD;
                        desc = desc.Substring(4).Trim();
                    }

                    Issue o = new Issue(type, String.Concat(highlight, " ", desc));
                    o.ID       = l[l.Count - 1].ID + 1;
                    o.State    = Issue.IssueState.NEW;
                    o.Priority = prio;

                    l.Add(o);
                    SaveIssueList(l);
                    response.AddData(HTML.CreateCssClassOutputLine("green", "Added: "));
                    response.AddData(CreateHtmlEntry(o));
                }
                //REMOVE
                else if (check(args, 2, "remove", "-rm"))
                {
                    List <Issue> l     = GetIssueList();
                    int          n     = Int32.Parse(args[1]);
                    bool         match = false;

                    foreach (Issue o in l)
                    {
                        if (o.ID == n)
                        {
                            match = true;
                            l.Remove(o);
                            response.AddData(HTML.CreateCssClassOutputLine("red", "Removed: "));
                            response.AddData(CreateHtmlEntry(o));
                            break;
                        }
                    }

                    if (match)
                    {
                        SaveIssueList(l);
                    }
                    else
                    {
                        response.AddData(CmdMessage.Get(CmdMessage.Type.Error, HTML.Encode("Error: ID Not found!")));
                    }
                }
                //FIXED
                else if (check(args, 2, "fixed", "-f", "done"))
                {
                    Issue o = GetObject(Int32.Parse(args[1]));
                    if (o != null)
                    {
                        o.State = Issue.IssueState.DONE;
                        if (o.Type == Issue.IssueType.BUG)
                        {
                            o.State = Issue.IssueState.FIXED;
                        }

                        response.AddData(HTML.CreateCssClassOutputLine("blue-light", "Changed: "));
                        response.AddData(CreateHtmlEntry(UpdateObject(o)));
                    }
                    else
                    {
                        response.AddData(CmdMessage.Get(CmdMessage.Type.Error, HTML.Encode("Error: ID Not found!")));
                    }
                }
                //INVALID
                else if (check(args, 2, "invalid", "-i"))
                {
                    Issue o = GetObject(Int32.Parse(args[1]));
                    if (o != null)
                    {
                        o.State = Issue.IssueState.INVALID;
                        response.AddData(HTML.CreateCssClassOutputLine("blue-light", "Changed: "));
                        response.AddData(CreateHtmlEntry(UpdateObject(o)));
                    }
                    else
                    {
                        response.AddData(CmdMessage.Get(CmdMessage.Type.Error, HTML.Encode("Error: ID Not found!")));
                    }
                }
                //NEW
                else if (check(args, 2, "new", "-n"))
                {
                    Issue o = GetObject(Int32.Parse(args[1]));
                    if (o != null)
                    {
                        o.State = Issue.IssueState.NEW;
                        response.AddData(HTML.CreateCssClassOutputLine("blue-light", "Changed: "));
                        response.AddData(CreateHtmlEntry(UpdateObject(o)));
                    }
                    else
                    {
                        response.AddData(CmdMessage.Get(CmdMessage.Type.Error, HTML.Encode("Error: ID Not found!")));
                    }
                }
                //IN PROGRESS
                else if (check(args, 2, "work", "assign", "-w", "-as"))
                {
                    Issue o = GetObject(Int32.Parse(args[1]));
                    if (o != null)
                    {
                        o.State = Issue.IssueState.WORK;
                        response.AddData(HTML.CreateCssClassOutputLine("blue-light", "Changed: "));
                        response.AddData(CreateHtmlEntry(UpdateObject(o)));
                    }
                    else
                    {
                        response.AddData(CmdMessage.Get(CmdMessage.Type.Error, HTML.Encode("Error: ID Not found!")));
                    }
                }
                // 1
                //LIST
                else if (check(args, 1, "list"))
                {
                    List <Issue> l = GetIssueList();

                    List <Issue.IssueState> filters = new List <Issue.IssueState>();

                    if (args.Length >= 2)
                    {
                        for (int i = 1; i < args.Length; i++)
                        {
                            try
                            {
                                filters.Add((Issue.IssueState)Enum.Parse(typeof(Issue.IssueState), args[i], true));
                            }
                            catch { filters.Clear(); }
                        }
                    }

                    foreach (Issue o in l)
                    {
                        if (filters.Count <= 0)
                        {
                            response.AddData(CreateHtmlEntry(o));
                        }
                        foreach (Issue.IssueState filter in filters)
                        {
                            if (o.State == filter)
                            {
                                response.AddData(CreateHtmlEntry(o));
                            }
                        }
                    }
                }
                else
                {
                    PrintUsage(response);
                }
            }
            catch (Exception ex2)
            {
                PrintUsage(response);
                response.AddData("ERROR: ", ex2.ToString());
            }

            e.Source.Response.Send(response);

            return(true);
        }