示例#1
0
        public List <TextLine> GetOutput()
        {
            var output = new List <TextLine>
            {
                new TextLine(string.IsNullOrEmpty(m_textHandler.Text) ? ("Version: " + OpenRepoVersionService.GetCurrentVersion()) : m_textHandler.Text, ConsoleColor.White)
            };

            if (!string.IsNullOrEmpty(LogService.Message))
            {
                output.Add(new TextLine(string.Empty, ConsoleColor.Red));
                output.Add(new TextLine(LogService.Message, ConsoleColor.Red));
                output.Add(new TextLine(string.Empty, ConsoleColor.Red));
            }

            if (m_currentItems.Count > 0)
            {
                var tempTraverser = new IndexTraverser(m_traverser.Current, m_currentItems.Count);
                var visibleItems  = new List <SelectableItem>();
                var max           = m_currentItems.Count > 11 ? 11 : m_currentItems.Count;
                var selected      = max / 3;
                for (var i = 0; i < selected; i++)
                {
                    tempTraverser.MovePrevious();
                }
                for (var i = 0; i < max; i++)
                {
                    visibleItems.Add(m_currentItems[tempTraverser.Current]);
                    tempTraverser.MoveNext();
                }

                for (var i = 0; i < visibleItems.Count; i++)
                {
                    var item = visibleItems[i];
                    if (i == selected)
                    {
                        output.Add(new TextLine($"> {item.Title}", ConsoleColor.Gray));
                    }
                    else
                    {
                        output.Add(new TextLine($"  {item.Title}", ConsoleColor.Gray));
                    }
                }
            }


            return(output);
        }
示例#2
0
 public Task <ConcurrentBag <SelectableItem> > GetItems()
 {
     return(Task.FromResult(new ConcurrentBag <SelectableItem>
     {
         new SelectableItem("OpenRepo - Edit config",
                            () => new SelectableAction[]
         {
             new SelectableAction("Edit", () => StartProgramService.StartProgram(ConfigurationService.ConfigurationPath))
         }),
         new SelectableItem("OpenRepo - Create issue",
                            () => new SelectableAction[]
         {
             new SelectableAction("Open", () => StartProgramService.StartProgram("https://github.com/Illedan/openrepo/issues/new?title=Unhandled+Exception+in+Version:+" +
                                                                                 OpenRepoVersionService.GetCurrentVersion() +
                                                                                 "&body=" + HttpUtility.UrlEncode(LogService.Message)))
         }),
         new SelectableItem("OpenRepo - Update",
                            () => new SelectableAction[]
         {
             new SelectableAction("Open", () => TerminalService.Instance.Term("dotnet tool update openrepo -g", ToolBox.Bridge.Output.Hidden))
         }),
     }));
 }