Example #1
0
        public IActionResult Index(HeaderScript headerScript)
        {
            var scripts = _headerScriptService.GetHeaderScripts();

            if (scripts != null && scripts.Count > 0)
            {
                var script = scripts.FirstOrDefault();
                script.Active = headerScript.Active;
                script.Script = headerScript.Script;
                _headerScriptService.UpdateHeaderScript(script);
            }
            else
            {
                _headerScriptService.AddHeaderScript(headerScript);
            }

            return(View(headerScript));
        }
Example #2
0
 // Use this for initialization
 void Start()
 {
     header      = GameObject.Find("Canvas/Information/Header").GetComponent <HeaderScript>();
     watch       = GameObject.Find("SuperParent").GetComponent <StopWatch>();
     scoreSystem = GameObject.Find("SuperParent").GetComponent <HighScore>();
 }
 // Use this for initialization
 void Start()
 {
     scoreSystem = GameObject.Find("SuperParent").GetComponent <HighScore>();
     headerText  = GameObject.Find("Canvas/Information/Header").GetComponent <HeaderScript>();
     info        = GameObject.Find("Canvas/Information/Info").GetComponent <InfoScript>();
 }
 void Start()
 {
     findMyAreaCode();
     info   = GameObject.Find("Canvas/Information/Info").GetComponent <InfoScript>();
     header = GameObject.Find("Canvas/Information/Header").GetComponent <HeaderScript>();
 }
 void Start()
 {
     watch      = GameObject.Find("SuperParent").GetComponent <StopWatch>();
     headerText = GameObject.Find("Canvas/Information/Header").GetComponent <HeaderScript>();
     info       = GameObject.Find("Canvas/Information/Info").GetComponent <InfoScript>();
 }
Example #6
0
 void Start()
 {
     findMyAreaCode();
     info   = GameObject.Find("Player/Character/OVRCameraController/Canvas/Information/Info").GetComponent <InfoScript>();
     header = GameObject.Find("Player/Character/OVRCameraController/Canvas/Information/Header").GetComponent <HeaderScript>();
 }
Example #7
0
 // Use this for initialization
 void Start()
 {
     header      = GameObject.Find("Player/Character/OVRCameraController/Canvas/Information/Header").GetComponent <HeaderScript>();
     watch       = GameObject.Find("SuperParent").GetComponent <StopWatch>();
     scoreSystem = GameObject.Find("SuperParent").GetComponent <HighScore>();
 }
        /// <summary>
        ///
        /// </summary>
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();
            try
            {
                MenuItemObject menuSelected = null;
                #region InvokeItem
                if (MyInvocation.BoundParameters.ContainsKey("InvokeItem"))
                {
                    menuSelected = Menu.MenuItems[this.InvokeItem];

                    if (menuSelected != null)
                    {
                        WriteVerbose($"Menu: {menuSelected.Name}");
                        if (menuSelected.DisableConfirm.HasValue && !menuSelected.DisableConfirm.Value && !this.ShouldProcess(menuSelected.ConfirmTargetData, $"{menuSelected.Name}"))
                        {
                            WriteWarning($"Execution aborted for [{menuSelected.Name}]");
                        }
                        else if (menuSelected.Script != null)
                        {
                            Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoking [{menuSelected.Name}]");
                            Host.UI.Write($"Args: ");
                            if (menuSelected.ScriptArgs != null)
                            {
                                foreach (var arg in menuSelected.ScriptArgs)
                                {
                                    Host.UI.Write($"{arg} ");
                                }
                            }
                            Host.UI.WriteLine();
                            try
                            {
                                WriteVerbose("Calling Script");
                                var r_objs = menuSelected.Script.InvokeWithContext(null, null, menuSelected.ScriptArgs);
                                foreach (var obj in r_objs)
                                {
                                    WriteObject(obj.BaseObject);
                                }
                                WriteVerbose("Called Script");
                            }
                            catch (RuntimeException ex)
                            {
                                WriteError(ex.ErrorRecord);
                            }
                            Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoke [{menuSelected.Name}] Completed!");
                        }
                        else if (menuSelected.Func != null)
                        {
                            Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoking [{menuSelected.Name}]");
                            Host.UI.Write($"Args: ");
                            if (menuSelected.FuncArgs != null)
                            {
                                foreach (var arg in menuSelected.FuncArgs)
                                {
                                    Host.UI.Write($"{arg} ");
                                }
                            }
                            Host.UI.WriteLine();
                            try
                            {
                                WriteVerbose("Calling Func");
                                var r_objs = menuSelected.Func(menuSelected, menuSelected.FuncArgs ?? new object[0]);
                                if (r_objs != null)
                                {
                                    foreach (var obj in r_objs)
                                    {
                                        WriteObject(obj);
                                    }
                                }
                                WriteVerbose("Called Func");
                            }
                            catch (RuntimeException ex)
                            {
                                WriteError(ex.ErrorRecord);
                            }
                            Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoke [{menuSelected.Name}] Completed!");
                        }
                        else
                        {
                            WriteWarning($"No Script or Func to perform for [{menuSelected.Name}]");
                        }
                    }
                }
                #endregion
                menuSelected = null;
                #region Show Menu
                Stopwatch processingTime = Stopwatch.StartNew();
                Regex     rxOption       = new Regex("^\\d+$");
                var       menuLines      = new ArrayList();

                if (Menu == null)
                {
                    WriteError(new ErrorRecord(new ArgumentNullException("Menu", "Menu parameter must not be null."), "MenuNotGiven", ErrorCategory.InvalidArgument, null));
                    return;
                }

                var menuFrame     = new string(MenuOptions.MenuFillChar, (MenuOptions.MaxWidth - 2));
                var menuEmptyLine = new string(' ', (MenuOptions.MaxWidth - 2));
                // Top Header border
                WriteMenuLine(menuFrame, MenuOptions.MenuFillColor);
                // Menu Display Name
                WriteMenuLine(Menu.DisplayName, MenuOptions.MenuNameColor);
                if (!string.IsNullOrWhiteSpace(Menu.Description))
                {
                    WriteMenuLine(Menu.Description, MenuOptions.MenuNameColor);
                }

                WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor);

                if (HeaderScript != null)
                {
                    try
                    {
                        HeaderScript.InvokeWithContext(null, null);
                    }
                    catch (RuntimeException ex)
                    {
                        WriteError(ex.ErrorRecord);
                    }
                }
                else if (MenuOptions.HeaderScript != null)
                {
                    try
                    {
                        MenuOptions.HeaderScript.InvokeWithContext(null, null);
                    }
                    catch (RuntimeException ex)
                    {
                        WriteError(ex.ErrorRecord);
                    }
                }
                else if (HeaderFunc != null)
                {
                    try
                    {
                        HeaderFunc(this.Menu, MenuOptions);
                    }
                    catch (RuntimeException ex)
                    {
                        WriteError(ex.ErrorRecord);
                    }
                }
                else if (MenuOptions.HeaderFunc != null)
                {
                    try
                    {
                        MenuOptions.HeaderFunc(this.Menu, MenuOptions);
                    }
                    catch (RuntimeException ex)
                    {
                        WriteError(ex.ErrorRecord);
                    }
                }
                else
                {
                    WriteMenuLine(MenuOptions.Heading, MenuOptions.HeadingColor);
                    WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor);
                    WriteMenuLine(MenuOptions.SubHeading, MenuOptions.SubHeadingColor);
                }
                WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor);

                // Bottom Header border
                WriteMenuLine(menuFrame, MenuOptions.MenuFillColor);
                WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor);

                var idxOptions    = this.Menu.MenuItems.Where(i => rxOption.IsMatch($"{i.Option}")).Select(i => int.Parse(i.Option)).ToArray();
                int maxIdxOptions = (idxOptions.Length == 0) ? 0 : idxOptions.OrderBy(i => i).Max();

                bool visible;
                foreach (var item in Menu.MenuItems)
                {
                    ConsoleColor menuColor;
                    if (!string.IsNullOrWhiteSpace(item.Option) && !(item.Func == null && item.Script == null))
                    {
                        menuColor = MenuOptions.MenuItemColor;
                    }
                    else
                    {
                        menuColor = MenuOptions.ViewOnlyColor;
                    }

                    visible = true;
                    if (item.VisibleScript != null)
                    {
                        Collection <PSObject> aOut = null;
                        try
                        {
                            aOut = item.VisibleScript.InvokeWithContext(null, null, item.VisibleScriptArgs);
                        }
                        catch (RuntimeException ex)
                        {
                            WriteError(ex.ErrorRecord);
                        }
                        if (aOut != null && aOut.Count > 0 && aOut[0].BaseObject is bool)
                        {
                            visible = (bool)aOut[0].BaseObject;
                        }
                        else
                        {
                            WriteWarning($"Object returned from VisibleScript script is not a boolean value for menu item [{item.Name}], returned [{aOut}]");
                        }
                    }
                    else if (item.VisibleFunc != null)
                    {
                        try
                        {
                            visible = item.VisibleFunc(item, item.VisibleFuncArgs);
                        }
                        catch (RuntimeException ex)
                        {
                            WriteError(ex.ErrorRecord);
                        }
                    }

                    if (visible)
                    {
                        if (item.ForegroundColor != null)
                        {
                            menuColor = item.ForegroundColor.Value;
                        }

                        if (item.IsSpace.HasValue && item.IsSpace.Value)
                        {
                            WriteMenuLine(" ", menuColor, true);
                        }
                        else if (!string.IsNullOrWhiteSpace(item.Option))
                        {
                            if (DefaultOption == "Q" && (item.Default ?? false)) // We only use the first option that is set as default.
                            {
                                DefaultOption = item.Option;
                            }
                            var Option = item.Option;
                            if (maxIdxOptions >= 10 && rxOption.IsMatch(item.Option) && int.Parse(item.Option) < 10)
                            {
                                Option = $" {Option}";
                            }
                            WriteMenuLine($"{Option}. {item.DisplayName}", menuColor, true);
                        }
                        else
                        {
                            WriteMenuLine($"{item.DisplayName}", menuColor, true);
                        }
                    }
                }

                WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor);
                WriteMenuLine("Q Exit Menu", ConsoleColor.Red, true);

                WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor);
                WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor);

                WriteMenuLine(MenuOptions.FooterText, MenuOptions.FooterTextColor);
                WriteMenuLine(menuEmptyLine, MenuOptions.MenuFillColor);

                // Bottom border
                WriteMenuLine(menuFrame, MenuOptions.MenuFillColor);

                Host.UI.Write($"Please choose a option [{DefaultOption}] ");
                processingTime.Stop();
                LogPerfEvent(processingTime.Elapsed + MetricData.ProcessingTime);
                userSelection = Host.UI.ReadLine();
                WriteVerbose($"Selection: {userSelection}");

                if (string.IsNullOrWhiteSpace(userSelection))
                {
                    userSelection = DefaultOption;
                    WriteVerbose($"Using default option: {userSelection}");
                }
                else
                {
                    WriteVerbose($"Selection: {userSelection}");
                }
                _qosEvent.Selected = userSelection;

                if (userSelection.Equals("Q", StringComparison.CurrentCultureIgnoreCase))
                {
                    WriteVerbose("Exiting Menu");
                    WriteObject("quit");
                    return;
                }

                menuSelected = Menu.MenuItems.Where(i => i.Option != null && i.Option.Equals(userSelection, StringComparison.CurrentCultureIgnoreCase)).SingleOrDefault();
                visible      = true;
                if (menuSelected != null && menuSelected.VisibleScript != null)
                {
                    Collection <PSObject> aOut = null;
                    try
                    {
                        aOut = menuSelected.VisibleScript.InvokeWithContext(null, null, menuSelected.VisibleScriptArgs);
                    }
                    catch (RuntimeException ex)
                    {
                        WriteError(ex.ErrorRecord);
                    }
                    if (aOut != null && aOut.Count > 0 && aOut[0].BaseObject is bool)
                    {
                        visible = (bool)aOut[0].BaseObject;
                    }
                    else
                    {
                        WriteWarning($"Object returned from VisibleScript script is not a boolean value for menu item [{menuSelected.Name}], returned [{aOut}]");
                    }
                }
                else if (menuSelected != null && menuSelected.VisibleFunc != null)
                {
                    try
                    {
                        visible = menuSelected.VisibleFunc(menuSelected, menuSelected.VisibleFuncArgs);
                    }
                    catch (RuntimeException ex)
                    {
                        WriteError(ex.ErrorRecord);
                    }
                }
                if (!visible)
                {
                    menuSelected = null;
                }

                if (menuSelected != null)
                {
                    WriteVerbose($"Menu: {menuSelected.Name}");
                    if (menuSelected.DisableConfirm.HasValue && !menuSelected.DisableConfirm.Value && !this.ShouldProcess(menuSelected.ConfirmTargetData, $"{menuSelected.Name}"))
                    {
                        WriteWarning("Execution aborted");
                    }
                    else if (menuSelected.Script != null)
                    {
                        Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoking [{menuSelected.Name}]");
                        Host.UI.Write($"Args: ");
                        if (menuSelected.ScriptArgs != null)
                        {
                            foreach (var arg in menuSelected.ScriptArgs)
                            {
                                Host.UI.Write($"{arg} ");
                            }
                        }
                        Host.UI.WriteLine();
                        try
                        {
                            WriteVerbose("Calling Script");
                            var r_objs = menuSelected.Script.InvokeWithContext(null, null, menuSelected.ScriptArgs);
                            foreach (var obj in r_objs)
                            {
                                WriteObject(obj.BaseObject);
                            }
                            WriteVerbose("Called Script");
                        }
                        catch (RuntimeException ex)
                        {
                            WriteError(ex.ErrorRecord);
                        }
                        Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoke [{menuSelected.Name}] Completed!");
                    }
                    else if (menuSelected.Func != null)
                    {
                        Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoking [{menuSelected.Name}]");
                        Host.UI.Write($"Args: ");
                        if (menuSelected.FuncArgs != null)
                        {
                            foreach (var arg in menuSelected.FuncArgs)
                            {
                                Host.UI.Write($"{arg} ");
                            }
                        }
                        Host.UI.WriteLine();
                        try
                        {
                            WriteVerbose("Calling Func");
                            var r_objs = menuSelected.Func(menuSelected, menuSelected.FuncArgs ?? new object[0]);
                            if (r_objs != null)
                            {
                                foreach (var obj in r_objs)
                                {
                                    WriteObject(obj);
                                }
                            }
                            WriteVerbose("Called Func");
                        }
                        catch (RuntimeException ex)
                        {
                            WriteError(ex.ErrorRecord);
                        }
                        Host.UI.WriteLine(ConsoleColor.White, ConsoleColor.DarkBlue, $"Invoke [{menuSelected.Name}] Completed!");
                    }
                    else
                    {
                        WriteWarning($"No Script or Func to perform for [{menuSelected.Name}]");
                    }
                }
                else
                {
                    Host.UI.WriteLine(ConsoleColor.Red, Host.UI.RawUI.BackgroundColor, $"Menuitem not found [{userSelection}]");
                    Host.UI.Write("Press enter to continue...");
                    Host.UI.ReadLine();
                }
                #endregion
            }
            catch (Exception ex)
            {
                WriteError(new ErrorRecord(ex, "5000", ErrorCategory.NotSpecified, this));
            }
            finally
            {
            }
        }