Пример #1
0
        // validate --duration based on --run-loop
        static string ValidateDuration(CommandResult result)
        {
            OptionResult runLoop  = null;
            OptionResult duration = null;

            foreach (OptionResult c in result.Children)
            {
                if (c.Symbol.Name == "duration")
                {
                    duration = c;
                }
                else if (c.Symbol.Name == "run-loop")
                {
                    runLoop = c;
                }
            }

            if (runLoop == null || runLoop.Token == null || (runLoop.Tokens.Count > 0 && !bool.Parse(runLoop.Tokens[0].Value)))
            {
                if (duration != null && duration.Tokens != null && duration.Tokens.Count > 0 && int.TryParse(duration.Tokens[0].Value, out int d) && d > 0)
                {
                    return("--run-loop must be true to use --duration");
                }
            }

            return(string.Empty);
        }
Пример #2
0
        // this could be further broken down into another class (IntegerSettingOption) but not right now
        protected override OptionResult Run(GameHitParameters <GameObject> parameters)
        {
            OptionResult result = base.Run(parameters);

            if (result != OptionResult.Failure)
            {
                string text = StringInputDialog.Show(Name, Common.Localize(GetTitlePrefix() + ":Prompt", false), ""); // def

                if (string.IsNullOrEmpty(text))
                {
                    return(OptionResult.Failure);
                }

                int value;
                if (!int.TryParse(text, out value))
                {
                    SimpleMessageDialog.Show(Name, Common.Localize("Numeric:Error"));
                    return(OptionResult.Failure);
                }

                foreach (OccupationNames name in base.mPicks)
                {
                    NRaas.CareerSpace.PersistedSettings.CareerSettings settings = NRaas.Careers.Settings.GetCareerSettings(name, true);
                    settings.minCoworkers = value;
                    NRaas.Careers.Settings.UpdateCareerSettings(settings);
                }

                Common.Notify("Generic:Success");
                return(OptionResult.SuccessLevelDown);
            }

            return(result);
        }
Пример #3
0
        // validate --random based on --run-loop
        static string ValidateRandom(CommandResult result)
        {
            OptionResult runLoop = null;
            OptionResult random  = null;


            foreach (OptionResult c in result.Children)
            {
                if (c.Symbol.Name == "run-loop")
                {
                    runLoop = c;
                }
                else if (c.Symbol.Name == "random")
                {
                    random = c;
                }
            }

            if (runLoop == null || runLoop.Token == null || (runLoop.Tokens.Count > 0 && !bool.Parse(runLoop.Tokens[0].Value)))
            {
                if (random != null && random.Token != null && random.Tokens != null && (random.Tokens.Count == 0 || bool.Parse(random.Tokens[0].Value)))
                {
                    return("--run-loop must be true to use --random");
                }
            }

            return(string.Empty);
        }
Пример #4
0
 /// <summary>
 /// Validates that the specified option result is an unsigned integer.
 /// </summary>
 private static void ValidateOptionValueIsUnsignedInteger(OptionResult result)
 {
     if (result.Tokens.Select(token => token.Value).Where(v => !uint.TryParse(v, out _)).Any())
     {
         result.ErrorMessage = $"Please give a positive integer to option '{result.Option.Name}'.";
     }
 }
Пример #5
0
        private string?GetValueForOption(string parameterName, OptionResult optionResult)
        {
            //if default value is used, no need to return it - it will be populated in template engine edge instead.
            if (optionResult.IsImplicit)
            {
                return(null);
            }

            var optionValue = optionResult.GetValueOrDefault();

            if (optionValue == null)
            {
                return(null);
            }

            if (!Template.CliParameters.TryGetValue(parameterName, out CliTemplateParameter? parameter))
            {
                throw new InvalidOperationException($"Parameter {parameterName} is not defined for {Template.Identity}.");
            }
            if (parameter.Type == ParameterType.Hex && optionResult.Option.ValueType == typeof(long))
            {
                var intValue = (long)optionValue;
                return($"0x{intValue.ToString("X")}");
            }
            return(optionValue.ToString());
        }
Пример #6
0
        // this could be further broken down into another class (IntegerSettingOption) but not right now
        protected override OptionResult Run(GameHitParameters <GameObject> parameters)
        {
            OptionResult result = base.Run(parameters);

            if (result != OptionResult.Failure)
            {
                foreach (OccupationNames name in base.mPicks)
                {
                    string defaultText = string.Empty;
                    if (name != OccupationNames.Any)
                    {
                        NRaas.CareerSpace.PersistedSettings.CareerSettings settings = NRaas.Careers.Settings.GetCareerSettings(name, true);

                        defaultText = settings.mMaxCoworkers.ToString();
                    }

                    string text = StringInputDialog.Show(Name, Common.Localize(GetTitlePrefix() + ":Prompt", false), defaultText);

                    if (string.IsNullOrEmpty(text))
                    {
                        return(OptionResult.Failure);
                    }

                    int value;
                    if (!int.TryParse(text, out value))
                    {
                        SimpleMessageDialog.Show(Name, Common.Localize("InputError:Numeric"));
                        return(OptionResult.Failure);
                    }

                    if (name == OccupationNames.Any)
                    {
                        foreach (Career career in CareerManager.CareerList)
                        {
                            PersistedSettings.CareerSettings settings = NRaas.Careers.Settings.GetCareerSettings(career.Guid, true);

                            settings.mMaxCoworkers = value;

                            NRaas.Careers.Settings.SetCareerData(settings);
                        }

                        Common.Notify(GetTitlePrefix() + " " + Common.Localize("Selection:All") + " " + value);
                    }
                    else
                    {
                        PersistedSettings.CareerSettings settings = NRaas.Careers.Settings.GetCareerSettings(name, true);
                        settings.mMaxCoworkers = value;

                        NRaas.Careers.Settings.SetCareerData(settings);

                        Common.Notify(GetTitlePrefix() + " " + CareerManager.GetStaticCareer(name).Name + " " + value);
                    }
                }

                Common.Notify(Common.Localize("Generic:Success"));
                return(OptionResult.SuccessLevelDown);
            }

            return(result);
        }
Пример #7
0
        protected override OptionResult Run(GameHitParameters <Sim> parameters)
        {
            OptionResult result = OptionResult.Failure;

            if (mCategory == OutfitCategories.PrimaryCategories)
            {
                List <AddOutfit> outfits = new List <AddOutfit> ();
                GetOptions(outfits);

                foreach (AddOutfit outfit in outfits)
                {
                    if (outfit.mCategory == OutfitCategories.PrimaryCategories)
                    {
                        continue;
                    }

                    ApplyOutfit(parameters.mTarget.SimDescription, outfit.mCategory);
                }

                result = OptionResult.SuccessClose;
            }
            else
            {
                result = ApplyOutfit(parameters.mTarget.SimDescription, mCategory);

                if (result != OptionResult.Failure)
                {
                    CommonSpace.Helpers.SwitchOutfits.SwitchNoSpin(parameters.mTarget, new CASParts.Key(mCategory, 0));
                }
            }

            return(result);
        }
Пример #8
0
        internal static OptionResult CreateImplicit(
            IOption option,
            CommandResult parent)
        {
            var result = new OptionResult(option,
                                          option.Token());

            result.IsImplicit = true;

            if (option.Argument.HasDefaultValue)
            {
                var value = option.Argument.GetDefaultValue();

                switch (value)
                {
                case string arg:
                    result.TryTakeToken(new Token(arg, TokenType.Argument));
                    break;

                default:
                    result.Result = ArgumentParseResult.Success(value);
                    break;
                }
            }

            return(result);
        }
Пример #9
0
    public void SetEventData()
    {
        currentEvent = database.GetEventData();
        InGameUI.Instance.skyText.text = currentEvent.eventText;

        if (!string.IsNullOrEmpty(currentEvent.choiceOne.choice))
        {
            InGameUI.Instance.leftChoiceText.text = "[ " + currentEvent.choiceOne.choice;
            InGameUI.Instance.leftChoice.onClick.AddListener(() =>
            {
                result = currentEvent.choiceOne.result;
                ShowPanel(currentEvent.choiceOne.detail);
                ClearUIText();
            });
        }

        if (!string.IsNullOrEmpty(currentEvent.choiceTwo.choice))
        {
            InGameUI.Instance.rightChoiceText.text = currentEvent.choiceTwo.choice + " ]";
            InGameUI.Instance.rightChoice.onClick.AddListener(() =>
            {
                result = currentEvent.choiceTwo.result;
                ShowPanel(currentEvent.choiceTwo.detail);
                ClearUIText();
            });
        }
    }
Пример #10
0
        protected override OptionResult Run(GameHitParameters <GameObject> parameters)
        {
            RecipeSelection recipeSelection = RecipeSelection.Create(new List <string>(Cupcake.Settings.mRandomRestockSettings.Keys));
            OptionResult    recipeResult    = recipeSelection.Perform();

            if (recipeResult != OptionResult.SuccessClose)
            {
                return(OptionResult.Failure);
            }

            QualitySelection qualitySelection = QualitySelection.Create(new List <Quality>(Cupcake.Settings.RandomRestockQualitiesAsList()));
            OptionResult     qualityResult    = qualitySelection.Perform();

            if (qualityResult != OptionResult.SuccessClose)
            {
                return(OptionResult.Failure);
            }

            foreach (Recipe recipe in recipeSelection.selectedItems)
            {
                Cupcake.Settings.AddRandomRestockRecipe(recipe.Key, qualitySelection.selectedItems);
            }

            Common.Notify(Common.Localize("General:Success"));

            return(OptionResult.SuccessClose);
        }
Пример #11
0
        protected override OptionResult Run(GameHitParameters <GameObject> parameters)
        {
            OptionResult result = base.Run(parameters);

            if (result != OptionResult.Failure)
            {
                switch (Value)
                {
                case SaveStyle.RealTime:
                    if (Saver.Settings.mRealMinutesBetweenSaves <= 0)
                    {
                        Saver.Settings.mRealMinutesBetweenSaves = 30;
                    }
                    break;

                case SaveStyle.SimTime:
                    if (Saver.Settings.mSimMinutesBetweenSaves <= 0)
                    {
                        Saver.Settings.mSimMinutesBetweenSaves = 1440;
                    }
                    break;

                case SaveStyle.SimHour:
                    if (Saver.Settings.mSimSaveHour.Count == 0)
                    {
                        Saver.Settings.mSimSaveHour.Add(5);
                    }
                    break;
                }

                Saver.RestartTimers();
            }

            return(result);
        }
        public void UpdateOptionResult(Guid id, OptionResult updatedResult)
        {
            var result = _context.OptionResults.FirstOrDefault(u => u.Id == id);

            result.IsChecked = updatedResult.IsChecked;
            _context.SaveChanges();
        }
Пример #13
0
 private static bool IsNotImplicit(SymbolResult symbolResult)
 {
     return(symbolResult switch
     {
         ArgumentResult argumentResult => !argumentResult.IsImplicit,
         OptionResult optionResult => !optionResult.IsImplicit,
         _ => true
     });
Пример #14
0
 private static MemberResultValueFrom GetValueFrom(OptionResult optionResult)
 {
     return(optionResult is null
         ? MemberResultValueFrom.DefaultFromType
         : optionResult.Token is null
             ? MemberResultValueFrom.DefaultFromCli
             : MemberResultValueFrom.UserEntry);
 }
Пример #15
0
 /// <summary>
 /// Validates that the specified option result has an allowed value.
 /// </summary>
 private static void ValidateOptionValueIsAllowed(OptionResult result, IEnumerable <string> allowedValues)
 {
     if (result.Tokens.Select(token => token.Value).Where(v => !allowedValues.Contains(v)).Any())
     {
         result.ErrorMessage = $"Please give an allowed value to option '{result.Option.Name}': " +
                               $"{string.Join(", ", allowedValues)}.";
     }
 }
Пример #16
0
        /// <summary>
        /// Validates that the specified exclusive option is available.
        /// </summary>
        private static void ValidateExclusiveOptionValueIsAvailable(OptionResult result, Option exclusive)
        {
            OptionResult exclusiveResult = result.FindResultFor(exclusive);

            if (!result.IsImplicit && exclusiveResult != null && !exclusiveResult.IsImplicit)
            {
                result.ErrorMessage = $"Setting options '{result.Option.Name}' and '{exclusive.Name}' at the same time is not allowed.";
            }
        }
 internal static Token Token(this SymbolResult symbolResult)
 {
     return(symbolResult switch
     {
         CommandResult commandResult => commandResult.Token,
         OptionResult optionResult => optionResult.Token ??
         new Token($"--{optionResult.Option.Name}", TokenType.Option),
         _ => null
     });
Пример #18
0
        private static string OutputValidiator(OptionResult optionResult)
        {
            ArgumentNullException.ThrowIfNull(optionResult);

            var outPath = optionResult?.GetValueOrDefault <string>();

            if (outPath is null)
            {
                return(default);
Пример #19
0
        /// <summary>
        /// Validates that the specified prerequisite option is available.
        /// </summary>
        private static void ValidatePrerequisiteOptionValueIsAvailable(OptionResult result, Option prerequisite)
        {
            OptionResult prerequisiteResult = result.FindResultFor(prerequisite);

            if (!result.IsImplicit && (prerequisiteResult is null || prerequisiteResult.IsImplicit))
            {
                result.ErrorMessage = $"Setting option '{result.Option.Name}' requires option '{prerequisite.Name}'.";
            }
        }
Пример #20
0
        protected override OptionResult Run(GameHitParameters <GameObject> parameters)
        {
            OptionResult result = base.Run(parameters);

            if (result != OptionResult.Failure)
            {
                Item selection = new CommonSelection <Item>(Name, this.GetCarOptions()).SelectSingle();

                if (selection == null)
                {
                    return(OptionResult.Failure);
                }

                foreach (CareerLevelSettingOption.LevelData level in base.mPicks)
                {
                    if (level.mLevel == -1)
                    {
                        foreach (Career career in CareerManager.CareerList)
                        {
                            foreach (string branch in career.CareerLevels.Keys)
                            {
                                foreach (KeyValuePair <int, Sims3.Gameplay.Careers.CareerLevel> levelData in career.CareerLevels[branch])
                                {
                                    PersistedSettings.CareerSettings      settings      = NRaas.Careers.Settings.GetCareerSettings(level.mCareer, true);
                                    PersistedSettings.CareerLevelSettings levelSettings = settings.GetSettingsForLevel(level.mBranchName, level.mLevel, true);
                                    levelSettings.mCarpoolType = selection.Value;

                                    levelData.Value.CarpoolType = selection.Value;
                                }
                            }
                        }
                    }
                    else
                    {
                        PersistedSettings.CareerSettings      settings      = NRaas.Careers.Settings.GetCareerSettings(level.mCareer, true);
                        PersistedSettings.CareerLevelSettings levelSettings = settings.GetSettingsForLevel(level.mBranchName, level.mLevel, true);
                        levelSettings.mCarpoolType = selection.Value;

                        NRaas.Careers.Settings.SetCareerData(settings);
                    }
                }

                foreach (Sim sim in LotManager.Actors)
                {
                    if (sim.Occupation != null)
                    {
                        sim.Occupation.RescheduleCarpool();
                    }
                }

                Common.Notify(Common.Localize("Generic:Success"));
                return(OptionResult.SuccessLevelDown);
            }

            return(result);
        }
Пример #21
0
        public TradeOptionViewModel(BindingList <PortfolioData> portfolioList, OptionResult selectedOption)
        {
            this.TradeOptionCommand = new DelegateCommand <object>(this.TradeOption);
            this.CloseWindowCommand = new DelegateCommand <object>(this.Close);

            this.selectedOption       = selectedOption;
            this.portfolioList        = portfolioList;
            this.actionWarningLabel   = new WarningLabel();
            this.notionalWarningLabel = new WarningLabel();
        }
Пример #22
0
        public ActionResult CollaborateList(SearchCollaborateModel model, OptionResult option)
        {
            if (Session["loginid"].ToString() != "admin")
            {
                model.NguoiDi = Int32.Parse(Session["userid"].ToString());
            }
            var result = _dataService.CollaborateMany(model, option);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Пример #23
0
        public static string Validator <T>(OptionResult result, Func <T, bool> validator)
        {
            var value = result.GetValueOrDefault <T>();

            if (!validator(value))
            {
                return($"Option {result.Token?.Value} cannot be set to {value}");
            }
            return(string.Empty);
        }
Пример #24
0
        protected override OptionResult Run(GameHitParameters <GameObject> parameters)
        {
            OptionResult result = base.Run(parameters);

            if (result != OptionResult.Failure)
            {
                PersistedSettings.ResetSpeeds();
            }
            return(result);
        }
Пример #25
0
        protected override OptionResult Run(GameHitParameters <GameObject> parameters)
        {
            OptionResult result = base.Run(parameters);

            if (result != OptionResult.Failure)
            {
                PriorValues.sFactorChanged = true;
            }
            return(result);
        }
Пример #26
0
 internal static Token Token(this SymbolResult symbolResult)
 {
     return(symbolResult switch
     {
         CommandResult commandResult => commandResult.Token,
         OptionResult optionResult => optionResult.Token ??
         new Token($"--{optionResult.Option.Name}", TokenType.Option),
         ArgumentResult argResult => new Token(argResult.GetValueOrDefault <string>(), TokenType.Argument),
         _ => null
     });
Пример #27
0
        protected override OptionResult Run(GameHitParameters <GameObject> parameters)
        {
            OptionResult result = base.Run(parameters);

            if (result != OptionResult.Failure)
            {
                Saver.RestartTimers();
            }

            return(result);
        }
        public void An_option_with_a_default_value_and_no_explicitly_provided_argument_has_an_empty_arguments_property()
        {
            var option = new Option(
                "-x",
                "",
                new Argument <string>("default"));

            var result = new OptionResult(option);

            result.Arguments.Should().BeEmpty();
        }
Пример #29
0
        protected override OptionResult Run(GameHitParameters <GameObject> parameters)
        {
            OptionResult result = base.Run(parameters);

            if (result != OptionResult.Failure)
            {
                UpdateTrafficTaskEx.ApplyTrafficDelta();
            }

            return(result);
        }
Пример #30
0
        private static void ValidateAllowedValues(OptionResult optionResult, string[] allowedValues, string?allowedHiddenValue = null)
        {
            var invalidArguments = optionResult.Tokens.Where(token => !allowedValues.Append(allowedHiddenValue).Contains(token.Value, StringComparer.OrdinalIgnoreCase)).ToList();

            if (invalidArguments.Any())
            {
                optionResult.ErrorMessage = string.Format(
                    LocalizableStrings.Commands_Validator_WrongArgumentValue,
                    string.Join(", ", invalidArguments.Select(arg => $"'{arg.Value}'")),
                    string.Join(", ", allowedValues.Select(allowedValue => $"'{allowedValue}'")));
            }
        }