Ejemplo n.º 1
0
        public void SelectedOptionsShouldValidateEmptyValuesCorrectly()
        {
            //Arrange
            var options   = new SelectedOptions();
            var localizer = new Mock <IViewLocalizer>();

            localizer.SetupGet(l => l["fieldIsRequiredLabel"]).Returns(new LocalizedHtmlString("fieldIsRequiredLabel", "This field is required my friend!"));
            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider.Setup(c => c.GetService(typeof(IViewLocalizer))).Returns(localizer.Object);
            var context = new ValidationContext(options, serviceProvider.Object, null);
            //Act
            var res = options.Validate(context);

            //Assert
            Assert.Collection(res,
                              (v) => {
                Assert.Equal("SpaceId", v.MemberNames.First());
                Assert.Equal("This field is required my friend!", v.ErrorMessage);
            },
                              (v) => {
                Assert.Equal("AccessToken", v.MemberNames.First());
                Assert.Equal("This field is required my friend!", v.ErrorMessage);
            },
                              (v) => {
                Assert.Equal("PreviewToken", v.MemberNames.First());
                Assert.Equal("This field is required my friend!", v.ErrorMessage);
            }
                              );
        }
Ejemplo n.º 2
0
 public SelectElement(IWebElement element, IWebDriver driver) : base(element, driver)
 {
     if (element.TagName == "select")
     {
         OldStyleSelect       = new OpenQA.Selenium.Support.UI.SelectElement(element);
         LazyAvailableOptions = new Lazy <IList <IWebElement> >(() => OldStyleSelect.Options);
         LazySelectedOptions  = new Lazy <IList <IWebElement> >(() => OldStyleSelect.AllSelectedOptions);
     }
     else
     {
         var listId = element.GetAttribute("list");
         if (string.IsNullOrWhiteSpace(listId))
         {
             throw new Exception("The {element.TagName} is neither a select element nor an element with a list attribute");
         }
         LazyAvailableOptions = new Lazy <IList <IWebElement> >(() => driver.FindElements(By.XPath($"//datalist[@id='{listId}']/option")));
         LazySelectedOptions  = new Lazy <IList <IWebElement> >(() => new List <IWebElement>());
         var value = element.GetAttribute("value");
         if (!string.IsNullOrWhiteSpace(value))
         {
             var selected = AvailableOptions.Where(o => o.GetAttribute("value") == value);
             if (selected.None())
             {
                 throw new Exception($"element with list:{listId} and value:{value} did not find any mathching options in the {AvailableOptions.Count()} options");
             }
             if (selected.Many())
             {
                 throw new Exception($"element with list:{listId} and value:{value} found {selected.Count()} mathching options in the {AvailableOptions.Count()} options");
             }
             SelectedOptions.Add(selected.First());
         }
     }
 }
Ejemplo n.º 3
0
        public void SelectedOptionsShouldValidate404Correctly()
        {
            //Arrange
            var notfoundError = @"{
  ""sys"": {
    ""type"": ""Error"",
    ""id"": ""NotFound""
  },
  ""message"": ""The resource could not be found."",
  ""details"": {
    ""sys"": {
      ""type"": ""Space""
    }
  },
  ""requestId"": ""435""
}";
            var options       = new SelectedOptions();

            options.AccessToken  = "Faulty";
            options.PreviewToken = "Faulty!";
            options.SpaceId      = "Some space";
            var localizer = new Mock <IViewLocalizer>();

            localizer.SetupGet(l => l["deliveryKeyInvalidLabel"]).Returns(new LocalizedHtmlString("deliveryKeyInvalidLabel", "Wrong delivery key!"));
            localizer.SetupGet(l => l["previewKeyInvalidLabel"]).Returns(new LocalizedHtmlString("previewKeyInvalidLabel", "Wrong preview key!"));
            localizer.SetupGet(l => l["spaceOrTokenInvalid"]).Returns(new LocalizedHtmlString("spaceOrTokenInvalid", "Wrong space id!"));
            localizer.SetupGet(l => l["somethingWentWrongLabel"]).Returns(new LocalizedHtmlString("somethingWentWrongLabel", "Error!"));
            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider.Setup(c => c.GetService(typeof(IViewLocalizer))).Returns(localizer.Object);
            var handler = new FakeMessageHandler();

            handler.Responses.Enqueue(new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.NotFound, Content = new StringContent(notfoundError)
            });
            handler.Responses.Enqueue(new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.NotFound, Content = new StringContent(notfoundError)
            });
            var httpClient = new HttpClient(handler);

            serviceProvider.Setup(c => c.GetService(typeof(HttpClient))).Returns(httpClient);
            var context = new ValidationContext(options, serviceProvider.Object, null);
            //Act
            var res = options.Validate(context);

            //Assert
            Assert.Collection(res,
                              (v) => {
                Assert.Equal("SpaceId", v.MemberNames.First());
                Assert.Equal("Wrong space id!", v.ErrorMessage);
            },
                              (v) => {
                Assert.Equal("SpaceId", v.MemberNames.First());
                Assert.Equal("Wrong space id!", v.ErrorMessage);
            }
                              );
        }
Ejemplo n.º 4
0
        public MainViewModel()
        {
            DownloadDepotTools = new CommandHandler {
                Action = OnDownloadDepotTools
            };
            UpdateDepotTools = new CommandHandler {
                Action = OnUpdateDepotTools
            };
            BrowseSource = new CommandHandler {
                Action = OnBrowseSource
            };
            DownloadSource = new CommandHandler {
                Action = OnDownloadSource
            };
            UpdateSource = new CommandHandler {
                Action = OnUpdateSource
            };
            GetOptionsAvailable = new CommandHandler {
                Action = OnUpdateOptions
            };
            OpenReadMe = new CommandHandler {
                Action = OnOpenReadMe
            };
            ExploreConfiguration = new CommandHandler {
                Action = OnExploreConfiguration
            };
            ConfigureBuild = new CommandHandler {
                Action = OnConfigureBuild
            };
            BrowseBuildFolder = new CommandHandler {
                Action = OnBrowseBuild
            };
            MoveAvailable = new CommandHandler {
                Action = OnMoveAvailable
            };
            MoveSelected = new CommandHandler {
                Action = OnMoveSelected
            };
            BrowseWindowsKit = new CommandHandler {
                Action = OnBrowseWindowsKit
            };
            BuildV8 = new CommandHandler {
                Action = OnBuildV8
            };

            // The available options are those that are not selected
            foreach (var option in Config.BuildOptions)
            {
                if (option.Selected)
                {
                    SelectedOptions.Add(option);
                }
                else
                {
                    AvailableOptions.Add(option);
                }
            }
            InvokePropertyChanged(nameof(Config));
        }
Ejemplo n.º 5
0
        private void RemoveItemClick(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
        {
            string text = ((Button)sender).Tag.ToString();

            SelectedOptions = SelectedOptions.Where(x => x != text).ToList();
            SetValue(SelectedOptionsProperty, this.SelectedOptions);
            this.RefreshList();
        }
Ejemplo n.º 6
0
        public void Refresh()
        {
            var opts = SelectedOptions.Split(',');

            var searchName      = opts.Contains("Name");
            var searchLastNames = opts.Contains("Last Names");
            var searchIP        = opts.Contains("IP");
            var searchGuid      = opts.Contains("Guid");
            var searchNotes     = opts.Contains("Notes");
            var searchComment   = opts.Contains("Comment");

            IEnumerable <PlayerDto> result;

            if (!string.IsNullOrEmpty(Filter))
            {
                result = _playerRepository.GetPlayers(x =>
                                                      (searchGuid && (x.GUID == Filter))
                                                      ||
                                                      (searchComment && x.Comment.Contains(Filter))
                                                      ||
                                                      (searchName && x.Name.Contains(Filter))
                                                      ||
                                                      (searchNotes && x.Notes.Any(y => y.Text.Contains(Filter)))
                                                      ||
                                                      (searchIP && x.LastIp.Contains(Filter))
                                                      ||
                                                      (searchLastNames && x.PlayerHistory.Any(y => y.Name.Contains(Filter))));
            }
            else
            {
                result = _playerRepository.GetAllPlayers();
            }

            var r = result.Select(x => new PlayerView
            {
                Id       = x.Id,
                Comment  = x.Comment,
                Guid     = x.GUID,
                Name     = x.Name,
                LastIp   = x.LastIp,
                LastSeen = x.LastSeen
            }).OrderBy(x => x.Name).ToList();

            foreach (var playerView in r)
            {
                playerView.LastSeen = playerView.LastSeen.UtcToLocalFromSettings();
            }

            PlayerCount = r.Count;

            Players = r;


            OnPropertyChanged(nameof(Players));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Creates a new instance of <see cref="HotstringSendMethodSelectedOptions"/> populated with the
        /// values in <paramref name="Options"/>
        /// </summary>
        /// <param name="Options">The Array of Enum Values use to populate the instance</param>
        /// <returns>
        /// Instance of <see cref="HotstringSendMethodSelectedOptions"/>. If <paramref name="Options"/> is null
        /// then return instance will have no values.
        /// </returns>
        public new HotstringSendMethodSelectedOptions FromArray(Enums.HotStringSendEnum[] Options)
        {
            var so = SelectedOptions <Enums.HotStringSendEnum> .FromArray(Options);

            HotstringSendMethodSelectedOptions hs = new HotstringSendMethodSelectedOptions();

            hs.Keys    = so.Keys;
            hs.Options = so.Options;

            return(hs);
        }
Ejemplo n.º 8
0
 private void AddSelectedOption(TOption opt, string input)
 {
     if (SelectedOptions.ContainsKey(opt))
     {
         SelectedOptions[opt] = input;
     }
     else
     {
         SelectedOptions.Add(opt, input);
     }
 }
Ejemplo n.º 9
0
        public FormFieldViewModel(FormField field, string[] languageCodes) : this()
        {
            var names  = field.GetNames(true);
            var values = field.GetValues(false);

            IEnumerable <Option> options = typeof(OptionsField).IsAssignableFrom(field.GetType()) ? ((OptionsField)field).Options : new List <Option>();

            foreach (var name in names)
            {
                if (languageCodes.Contains(name.LanguageCode))
                {
                    Names.Add(name.LanguageCode, name.Value);
                }
            }

            foreach (var value in values)
            {
                if (languageCodes.Contains(value.LanguageCode))
                {
                    if (Values.ContainsKey(value.LanguageCode))
                    {
                        Values = new Dictionary <string, string>();
                        ValuesList.Add(Values);

                        Values.Add(value.LanguageCode, value.Value);
                    }
                    else
                    {
                        Values.Add(value.LanguageCode, value.Value);
                    }
                }
            }


            foreach (string code in languageCodes)
            {
                SelectedOptions.Add(code, new List <string>());
            }

            foreach (var option in options)
            {
                if (option.Selected)
                {
                    foreach (var optionVal in option.Value)
                    {
                        if (languageCodes.Contains(optionVal.LanguageCode))
                        {
                            SelectedOptions[optionVal.LanguageCode].Add(optionVal.Value);
                        }
                    }
                }
            }
        }
Ejemplo n.º 10
0
        public void RemoveSelection(string key)
        {
            var option = ItemsSource.FirstOrDefault(x => x.Key == key);

            if (option == null)
            {
                return;
            }

            CascadedEditContext?.NotifyFieldChanged(FieldIdentifier);

            if (MultiSelect)
            {
                if (!SelectedOptions.Contains(option))
                {
                    throw new Exception("This option was not already selected.");
                }

                if (OnChange.HasDelegate)
                {
                    OnChange.InvokeAsync(new BFUDropdownChangeArgs(option, false));
                }

                SelectedOptions = SelectedOptions.Where(x => x != option).ToList();

                if (SelectedOptionsChanged.HasDelegate)
                {
                    SelectedOptionsChanged.InvokeAsync(SelectedOptions);
                }
            }
            else
            {
                if (SelectedOption != null)
                {
                    SelectedOption = null;
                    if (OnChange.HasDelegate)
                    {
                        OnChange.InvokeAsync(new BFUDropdownChangeArgs(option, false));
                    }

                    if (SelectedOptionChanged.HasDelegate)
                    {
                        SelectedOptionChanged.InvokeAsync(SelectedOption);
                    }
                }
            }
            StateHasChanged();
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Removes the option from specified position.
        /// </summary>
        /// <param name="index">Position of option to be removed.</param>
        public void Remove(int index)
        {
            var options = Options;

            if (index >= 0 && index < options.Length)
            {
                var optionToRemove = options[index];
                RemoveChild(optionToRemove);
                if (SelectedOptions.IndexOf(optionToRemove) != -1)
                {
                    SelectedOptions.Remove(optionToRemove);
                    if (!Multiple && options.Length > 0)
                    {
                        SelectedOptions.Add(options[0]);
                    }
                }
            }
        }
Ejemplo n.º 12
0
        private void AddNewItemClick(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
        {
            // validate
            if (textBox.Text == "")
            {
                return;
            }

            if (SelectedOptions.Contains(textBox.Text))
            {
                this.ShowError("Opties moeten uniek zijn.");
                return;
            }

            SelectedOptions.Add(textBox.Text);
            this.HideError();
            SetValue(SelectedOptionsProperty, this.SelectedOptions);
            textBox.Text = "";
            this.RefreshList();
        }
Ejemplo n.º 13
0
 public SelectElement(IWebElement element, IWebDriver driver) : base(element, driver)
 {
     if (element.TagName == "select")
     {
         OldStyleSelect       = new OpenQA.Selenium.Support.UI.SelectElement(element);
         LazyAvailableOptions = new Lazy <IList <IWebElement> >(() => OldStyleSelect.Options);
         LazySelectedOptions  = new Lazy <IList <IWebElement> >(() => OldStyleSelect.AllSelectedOptions);
     }
     else
     {
         var listId = element.GetAttribute("list");
         LazyAvailableOptions = new Lazy <IList <IWebElement> >(() => driver.FindElements(By.XPath($"//datalist[@id='{listId}']/option")));
         LazySelectedOptions  = new Lazy <IList <IWebElement> >(() => new List <IWebElement>());
         var value = element.GetAttribute("value");
         if (!string.IsNullOrWhiteSpace(value))
         {
             SelectedOptions.Add(AvailableOptions.First(o => o.GetAttribute("value") == value));
         }
     }
 }
Ejemplo n.º 14
0
        /// <summary>
        /// Binds the Send type Drop down list Filtering by Hotstring Type
        /// </summary>
        public void BindSendType()
        {
            if (m_HotStringValue == null)
            {
                return;
            }
            SelectedOptions <HotStringSendEnum> SendOptions = new SelectedOptions <HotStringSendEnum>();

            if (this.HotStringValue.type == hotstringType.Inline)
            {
                EnumRule <HotStringSendEnum> SendExclude = new EnumRule <HotStringSendEnum>();
                SendExclude.Add(HotStringSendEnum.None);

                SendTypes = HotstringSendMethodMap.Instance.ToBindingList(SendOptions, SendExclude);
            }
            else
            {
                SendTypes = HotstringSendMethodMap.Instance.ToBindingList(SendOptions);
            }
            ddlSend.DataSource = null;
            ddlSend.Items.Clear();

            ddlSend.DisplayMember = "DisplayValue";
            ddlSend.ValueMember   = "Key";
            ddlSend.DataSource    = SendTypes;


            if (ddlSend.Items.Count > 0)
            {
                ddlSend.SelectedIndex = 0;
                for (int i = 0; i < ddlSend.Items.Count; i++)
                {
                    AhkKeyMapAhkMapValue mv = (AhkKeyMapAhkMapValue)ddlSend.Items[i];
                    if (mv.Selected == true)
                    {
                        ddlSend.SelectedIndex = i;
                        break;
                    }
                }
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Gets a Instance of <see cref="HotstringSendMethodSelectedOptions"/> From a String value
        /// </summary>
        /// <param name="s">The String to parse for values</param>
        /// <returns>
        /// Instance of <see cref="HotstringSendMethodSelectedOptions"/> if Parse succeeded; Otherwise, null.
        /// </returns>
        /// <exception cref="ArgumentNullException"></exception>
        public new static HotstringSendMethodSelectedOptions Parse(string s)
        {
            if (string.IsNullOrEmpty(s))
            {
                throw new ArgumentNullException();
            }
            try
            {
                // all chars except for `n and `t are single chars
                var opt = new HotstringSendMethodSelectedOptions();
                var so  = SelectedOptions <Enums.HotStringSendEnum> .Parse(s);

                opt.Keys    = so.Keys;
                opt.Options = so.Options;
                return(opt);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Adds new 'OPTION' nodes to the dropdown. Other nodes types are ignored.
        /// </summary>
        public override Node AppendChild(Node node)
        {
            if (node is HtmlOptionElement option)
            {
                if (!Multiple)
                {
                    if (Options.Length == 0 || option.Selected)
                    {
                        SelectedOptions.Clear();
                        SelectedOptions.Add(option);
                    }
                }
                else
                {
                    if (option.Selected)
                    {
                        SelectedOptions.Add(option);
                    }
                }
            }

            return(base.AppendChild(node));
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Invokes this middleware.
        /// </summary>
        /// <param name="context">The HttpContext of the request to extract breadcrumbs from.</param>
        /// <returns></returns>
        public async Task Invoke(HttpContext context)
        {
            var query = context.Request.Query;

            if (query.ContainsKey("space_id") && query.ContainsKey("preview_token") && query.ContainsKey("delivery_token"))
            {
                var currentOptions = new ContentfulOptions();
                currentOptions.DeliveryApiKey = query["delivery_token"];
                currentOptions.SpaceId        = query["space_id"];
                currentOptions.PreviewApiKey  = query["preview_token"];
                currentOptions.UsePreviewApi  = query.ContainsKey("api") && query["api"] == "cpa";
                currentOptions.MaxNumberOfRateLimitRetries = _manager.Options.MaxNumberOfRateLimitRetries;
                currentOptions.ResolveEntriesSelectively   = _manager.Options.ResolveEntriesSelectively;
                currentOptions.ManagementApiKey            = _manager.Options.ManagementApiKey;

                var validateableOptions = new SelectedOptions
                {
                    AccessToken  = currentOptions.DeliveryApiKey,
                    PreviewToken = currentOptions.PreviewApiKey,
                    SpaceId      = currentOptions.SpaceId
                };
                var validationContext = new ValidationContext(validateableOptions, context.RequestServices, null);
                var validationResult  = validateableOptions.Validate(validationContext);

                if (validationResult.Any())
                {
                    var modelStateErrors = new List <ModelStateError>();

                    foreach (var result in validationResult)
                    {
                        foreach (var member in result.MemberNames)
                        {
                            modelStateErrors.Add(new ModelStateError {
                                ErrorMessage = result.ErrorMessage, Key = member
                            });
                        }
                    }

                    context.Session.SetString("SettingsErrors", JsonConvert.SerializeObject(modelStateErrors));
                    context.Session.SetString("SettingsErrorsOptions", JsonConvert.SerializeObject(validateableOptions));
                    context.Response.Redirect("/settings");
                    context.Response.Headers.Add("Cache-Control", "no-cache, no-store");
                    context.Response.Headers.Add("Pragma", "no-cache");
                    return;
                }
                else
                {
                    context.Session.SetString(nameof(ContentfulOptions), JsonConvert.SerializeObject(currentOptions));
                }
            }
            else if (query.ContainsKey("api"))
            {
                var currentOptions = new ContentfulOptions
                {
                    UsePreviewApi  = query["api"] == "cpa",
                    DeliveryApiKey = _manager.Options.DeliveryApiKey,
                    SpaceId        = _manager.Options.SpaceId,
                    PreviewApiKey  = _manager.Options.PreviewApiKey,
                    MaxNumberOfRateLimitRetries = _manager.Options.MaxNumberOfRateLimitRetries,
                    ResolveEntriesSelectively   = _manager.Options.ResolveEntriesSelectively,
                    ManagementApiKey            = _manager.Options.ManagementApiKey
                };

                context.Session.SetString(nameof(ContentfulOptions), JsonConvert.SerializeObject(currentOptions));
            }

            if (query.ContainsKey("editorial_features") && string.Equals(query["editorial_features"], "enabled", StringComparison.InvariantCultureIgnoreCase))
            {
                context.Session.SetString("EditorialFeatures", "Enabled");
            }
            else if (query.ContainsKey("editorial_features"))
            {
                context.Session.SetString("EditorialFeatures", "Disabled");
            }

            await _next(context);
        }
Ejemplo n.º 18
0
        private async void OnUpdateOptions()
        {
            try
            {
                EnableButtons(false);

                var workingFolder = Path.Combine(Config.SourceFolder, "v8");
                var configFolder  = (Application.Current as App).ConfigFolder;
                var genFolder     = Path.Combine(configFolder, "Downloads", "out.gn", "defaults");
                var argsFileName  = Path.Combine(configFolder, "Downloads", "gn_defaults.txt");

                if (!Directory.Exists(workingFolder))
                {
                    MessageBox.Show($"You must select an existing V8 source folder for the depot_tools to be able to produce a list "
                                    + "of available compiler options", $"V8 folder not found - '{workingFolder}'");
                    StatusText = "Updating build options failed";
                    return;
                }
                if (Directory.Exists(genFolder))
                {
                    try
                    {
                        FileSystem.DeleteDirectory(genFolder, UIOption.AllDialogs, RecycleOption.SendToRecycleBin);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show($"Cannot delete '{genFolder}'; is that folder open in another program?"
                                        , $"Building V8 failed");
                        StatusText = $"failed to delete '{genFolder}'";
                        return;
                    }
                }

                var batch = new BatchFile
                {
                    WorkingDirectory = workingFolder,
                    Model            = this,
                    Title            = $"retrieving the list of available build options",
                };
                if (!CheckPython(batch.PythonFileName))
                {
                    return;
                }

                // batch.Commands.Add($"call python tools\\dev\\v8gen.py gen -b {Config.BuildConfiguration} \"{genFolder}\" --no-goma");
                var gnFileName = Path.Combine(Config.DepotToolsFolder, "gn.py");
                batch.Commands.Add($"\"{batch.PythonFileName}\" \"{gnFileName}\" gen \"{genFolder}\"");
                batch.Commands.Add($"\"{batch.PythonFileName}\" \"{gnFileName}\" args \"{genFolder}\" --list >{argsFileName}");
                StatusText = batch.Title;
                StatusText = await batch.Run();

                //var installer = CreateInstaller();
                //StatusText = "Extracting build options";
                //installer.WorkingDirectory = Path.Combine(Config.SourceFolder, "v8");

                //installer.Arguments = $"/k title Generating a list of build options & gn gen \"{genFolder}\" & gn args \"{genFolder}\" --list >{argsFileName}";
                //await Task.Run(() => Process.Start(installer).WaitForExit());

                var existingOptions = new Dictionary <string, BuildOption>(StringComparer.OrdinalIgnoreCase);
                foreach (var option in Config.BuildOptions)
                {
                    existingOptions[option.Name] = option;
                }
                AvailableOptions.Clear();
                SelectedOptions.Clear();

                StatusText = "Parsing build options";
                Config.BuildOptions.Clear();
                var               lines              = File.ReadAllLines(argsFileName);
                BuildOption       currentOption      = null;
                OptionParserState state              = OptionParserState.None;
                StringBuilder     descriptionBuilder = null;
                for (var ii = 0; ii < lines.Length; ++ii)
                {
                    var line = lines[ii];
                    switch (state)
                    {
                    case OptionParserState.None:
                    case OptionParserState.Name:
                        descriptionBuilder = new StringBuilder();
                        var name = line.Trim();
                        if (existingOptions.TryGetValue(name, out currentOption))
                        {
                            existingOptions.Remove(name);
                        }
                        else
                        {
                            currentOption = new Configuration.BuildOption
                            {
                                Name = line
                            };
                        }
                        if (currentOption.Selected)
                        {
                            SelectedOptions.Add(currentOption);
                        }
                        else
                        {
                            AvailableOptions.Add(currentOption);
                        }
                        Config.BuildOptions.Add(currentOption);
                        state = OptionParserState.Current;
                        break;

                    case OptionParserState.Current:
                        currentOption.Default = line.Split('=')[1].Trim();
                        state = OptionParserState.From;
                        break;

                    case OptionParserState.From:
                        state = OptionParserState.Blank;
                        break;

                    case OptionParserState.Blank:
                        state = OptionParserState.Description;
                        break;

                    case OptionParserState.Description:
                        if (!string.IsNullOrEmpty(line) && line[0] != ' ')
                        {
                            --ii;       // Reparse this line, it's the next name
                            currentOption.Description = descriptionBuilder.ToString().Trim();
                            state = OptionParserState.Name;
                        }
                        else
                        {
                            descriptionBuilder.Append(' ');
                            descriptionBuilder.Append(line.Trim());
                        }
                        break;
                    }
                }
                if (currentOption != null && descriptionBuilder != null && (descriptionBuilder.Length > 0))
                {
                    currentOption.Description = descriptionBuilder.ToString();
                }
                StatusText = "Ready";
            }
            finally
            {
                EnableButtons(true);
            }
        }
 /// <summary>
 /// Creates a List of <see cref="AhkKeyMapAhkMapValue"/> objects representing all the Value
 /// in <see cref="EndCharsEnum"/>. The List is Sorted Based upon <see cref="AhkKeyMapAhkMapValue.Sort"/>
 /// </summary>
 /// <param name="SelectedValues">
 /// Instance of <see cref="EndCharsSelectedOptions"/>. Each value in SelectedValues will set the
 /// corresponding <see cref="AhkKeyMapAhkMapValue.Selected"/> to true;
 /// </param>
 /// <returns>
 /// List of <see cref="AhkKeyMapAhkMapValue"/>
 /// </returns>
 /// <remarks>
 /// <see cref="AhkKeyMapAhkMapValue.Parent"/> is set to the List.
 /// </remarks>
 public override List <AhkKeyMapAhkMapValue> ToList(SelectedOptions <EndCharsEnum> SelectedValues)
 {
     return(base.ToList(SelectedValues));
 }
Ejemplo n.º 20
0
        public void AddSelection(string key)
        {
            var option = ItemsSource.FirstOrDefault(x => x.Key == key);

            if (option == null)
            {
                return;
            }

            if (MultiSelect)
            {
                if (SelectedOptions.Contains(option))
                {
                    throw new Exception("This option was already selected somehow.");
                }

                if (OnChange.HasDelegate)
                {
                    OnChange.InvokeAsync(new BFUDropdownChangeArgs(option, true));
                }

                SelectedOptions = SelectedOptions.Append(option).ToList();

                if (SelectedOptionsChanged.HasDelegate)
                {
                    SelectedOptionsChanged.InvokeAsync(SelectedOptions);
                }

                //if (SelectedKeys.Contains(key))
                //    throw new Exception("This key was already selected.");

                //if (OnChange.HasDelegate)
                //    OnChange.InvokeAsync(new BFUDropdownChangeArgs(key, true));

                //SelectedKeys.Add(key);

                //if (SelectedKeysChanged.HasDelegate)
                //    SelectedKeysChanged.InvokeAsync(SelectedKeys);
            }
            else
            {
                if (SelectedOption != option)
                {
                    SelectedOption = option;
                    if (OnChange.HasDelegate)
                    {
                        OnChange.InvokeAsync(new BFUDropdownChangeArgs(option, true));
                    }
                    if (SelectedOptionChanged.HasDelegate)
                    {
                        SelectedOptionChanged.InvokeAsync(SelectedOption);
                    }
                }
                isOpen = false;
                //if (SelectedKey!= key)
                //{
                //    SelectedKey = key;
                //    if (OnChange.HasDelegate)
                //        OnChange.InvokeAsync(new BFUDropdownChangeArgs(key, true));
                //    if (SelectedKeyChanged.HasDelegate)
                //        SelectedKeyChanged.InvokeAsync(SelectedKey);
                //}
                //isOpen = false;
            }
            StateHasChanged();
        }
Ejemplo n.º 21
0
        public void RemoveSelection(string key)
        {
            var option = ItemsSource.FirstOrDefault(x => x.Key == key);

            if (option == null)
            {
                return;
            }

            if (MultiSelect)
            {
                if (!SelectedOptions.Contains(option))
                {
                    throw new Exception("This option was not already selected.");
                }

                if (OnChange.HasDelegate)
                {
                    OnChange.InvokeAsync(new BFUDropdownChangeArgs(option, false));
                }

                SelectedOptions = SelectedOptions.Where(x => x != option).ToList();

                if (SelectedOptionsChanged.HasDelegate)
                {
                    SelectedOptionsChanged.InvokeAsync(SelectedOptions);
                }


                //if (!SelectedKeys.Contains(key))
                //    throw new Exception("This key was not already selected.");

                //if (OnChange.HasDelegate)
                //    OnChange.InvokeAsync(new BFUDropdownChangeArgs(key, false));

                //SelectedKeys.Remove(key);  //this used to be following the next command.  A bug?  I moved it here...

                //if (SelectedKeysChanged.HasDelegate)
                //    SelectedKeysChanged.InvokeAsync(SelectedKeys);
            }
            else
            {
                if (SelectedOption != null)
                {
                    SelectedOption = null;
                    if (OnChange.HasDelegate)
                    {
                        OnChange.InvokeAsync(new BFUDropdownChangeArgs(option, false));
                    }

                    if (SelectedOptionChanged.HasDelegate)
                    {
                        SelectedOptionChanged.InvokeAsync(SelectedOption);
                    }
                }
                //if (SelectedKey != null)
                //{
                //    SelectedKey = null;
                //    if (OnChange.HasDelegate)
                //        OnChange.InvokeAsync(new BFUDropdownChangeArgs(key, false));

                //    if (SelectedKeyChanged.HasDelegate)
                //        SelectedKeyChanged.InvokeAsync(SelectedKey);
                //}
            }
            StateHasChanged();
        }
Ejemplo n.º 22
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (CustomOptions != null)
        {
            SelectedOptions = new List <OptionItem>();
        }
        else
        {
            SelectedOptions = null;
            return;
        }

        int idx = 0;

        foreach (Control ctrl in _controls)
        {
            if (ctrl is DropDownList)
            {
                int id = Convert.ToInt32(((DropDownList)ctrl).SelectedValue);
                SelectedOptions.Add(id > 0 ? CustomOptions[idx].Options.WithId(id) : null);
                idx++;
            }
            else if (ctrl is RadioButtonList)
            {
                int id = Convert.ToInt32(((RadioButtonList)ctrl).SelectedValue);
                SelectedOptions.Add(id > 0 ? CustomOptions[idx].Options.WithId(id) : null);
                idx++;
            }
            else if (ctrl is CheckBox)
            {
                if (((CheckBox)ctrl).Checked)
                {
                    CustomOptions[idx].Options[0].Title = Resource.Client_UserControls_CustomOptions_Yes;
                    SelectedOptions.Add(CustomOptions[idx].Options[0]);
                }
                else
                {
                    if (CustomOptions[idx].IsRequired)
                    {
                        CustomOptions[idx].Options[0].Title   = Resource.Client_UserControls_CustomOptions_No;
                        CustomOptions[idx].Options[0].PriceBc = 0;
                        SelectedOptions.Add(CustomOptions[idx].Options[0]);
                    }
                    else
                    {
                        SelectedOptions.Add(null);
                    }
                }
                idx++;
            }

            else if (ctrl is TextBox)
            {
                if (((TextBox)ctrl).TextMode == TextBoxMode.MultiLine)
                {
                    if (string.IsNullOrEmpty(((TextBox)ctrl).Text))
                    {
                        SelectedOptions.Add(null);
                        if (CustomOptions[idx].IsRequired)
                        {
                            IsValid = false;
                        }
                    }
                    else
                    {
                        CustomOptions[idx].Options = new List <OptionItem>();
                        var opt = new OptionItem {
                            Title = ((TextBox)ctrl).Text
                        };
                        CustomOptions[idx].Options.Add(opt);
                        SelectedOptions.Add(CustomOptions[idx].Options[0]);
                    }
                    idx++;
                }
                else
                {
                    if (string.IsNullOrEmpty(((TextBox)ctrl).Text))
                    {
                        SelectedOptions.Add(null);
                        if (CustomOptions[idx].IsRequired)
                        {
                            IsValid = false;
                        }
                        if (ShowValidation)
                        {
                            ((TextBox)ctrl).CssClass = "valid-required group-cOptions";
                        }
                    }
                    else
                    {
                        CustomOptions[idx].Options = new List <OptionItem>();
                        var opt = new OptionItem {
                            Title = ((TextBox)ctrl).Text
                        };
                        CustomOptions[idx].Options.Add(opt);
                        SelectedOptions.Add(CustomOptions[idx].Options[0]);
                    }
                    idx++;
                }
            }
        }
    }