Ejemplo n.º 1
0
        private async void OnChangeRulesButtonClick(object sender, EventArgs args)
        {
            using (ActivityIndicatorViewer.Show())
            {
                int n = await ShowRulesListPicker(MainResources.selectTheRules);

                if (n >= 0 && n < RulesVersionsService.RulesSources.Count)
                {
                    if (!await LoadDataAsync(n))
                    {
                        await DisplayAlert(MainResources.error, MainResources.errorLoadingRules, MainResources.ok);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private async void OnAppear(object sender, EventArgs e)
        {
            ActivityIndicatorViewer.page = this;

            if (actualRules == null)
            {
                using (ActivityIndicatorViewer.Show())
                {
                    if (!await LoadDataAsync(RulesVersionsService.RulesSources.Count - 1))
                    {
                        await DisplayAlert(MainResources.error, MainResources.errorLoadingLastRules, MainResources.ok);// MainResources.errorLoadingLastRules);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private void Search(string text, bool addToHistory = true)
        {
            if (actualRules == null || text == null)
            {
                return;
            }

            using (ActivityIndicatorViewer.Show())
            {
                List <Rule> source = new List <Rule>();

                foreach (var rule in actualRules)
                {
                    if (rule.Title.IndexOf(text, StringComparison.OrdinalIgnoreCase) >= 0 ||
                        rule.Text.IndexOf(text, StringComparison.OrdinalIgnoreCase) >= 0)
                    {
                        source.Add(rule);
                    }
                    foreach (var rule2 in rule.SubRules)
                    {
                        if (rule2.Title.IndexOf(text, StringComparison.OrdinalIgnoreCase) >= 0 ||
                            rule2.Text.IndexOf(text, StringComparison.OrdinalIgnoreCase) >= 0)
                        {
                            source.Add(rule2);
                        }
                        source.AddRange(
                            rule2.SubRules.Where(
                                rule3 => rule3.Title.IndexOf(text, StringComparison.OrdinalIgnoreCase) >= 0 ||
                                rule3.Text.IndexOf(text, StringComparison.OrdinalIgnoreCase) >= 0
                                )
                            );
                    }
                }

                if (addToHistory)
                {
                    PushHistoryItem(new HistoryItem(HistoryType.Search, text));
                }

                list.ItemsSource = source;

                LogEvent(EventType.SearchText);
            }
        }
Ejemplo n.º 4
0
        private async void OnExperimentalButtonClick(object sender, EventArgs args)
        {
            using (ActivityIndicatorViewer.Show())
            {
                int n1 = await ShowRulesListPicker(MainResources.selectOldRules);

                if (n1 < 0 || n1 >= RulesVersionsService.RulesSources.Count)
                {
                    return;
                }

                int n2 = await ShowRulesListPicker(MainResources.selectNewRules);

                if (n2 < 0 || n2 >= RulesVersionsService.RulesSources.Count)
                {
                    return;
                }

                List <Rule> from = await GetRulesAsync(RulesVersionsService.RulesSources[n1]),
                            to   = await GetRulesAsync(RulesVersionsService.RulesSources[n2]);

                if (from == null || to == null)
                {
                    await DisplayAlert(MainResources.error, MainResources.errorLoadingRules, MainResources.ok);

                    return;
                }

                List <Rule> li = new List <Rule>();

                Rule rule;

                foreach (Rule r1 in from)
                {
                    rule = Compare(r1, FindRule(to, r1.Title));
                    if (rule != null)
                    {
                        li.Add(rule);
                    }
                    foreach (Rule r2 in r1.SubRules)
                    {
                        rule = Compare(r2, FindRule(to, r2.Title));
                        if (rule != null)
                        {
                            li.Add(rule);
                        }
                        foreach (Rule r3 in r2.SubRules)
                        {
                            rule = Compare(r3, FindRule(to, r3.Title));
                            if (rule != null)
                            {
                                li.Add(rule);
                            }
                        }
                    }
                }

                foreach (Rule r1 in to)
                {
                    rule = FindRule(from, r1.Title);
                    if (rule == null)
                    {
                        li.Add(new Rule("(+) " + r1.Title, r1.Text));
                    }
                    foreach (Rule r2 in r1.SubRules)
                    {
                        rule = FindRule(from, r2.Title);
                        if (rule == null)
                        {
                            li.Add(new Rule("(+) " + r2.Title, r2.Text));
                        }
                        foreach (Rule r3 in r2.SubRules)
                        {
                            rule = FindRule(from, r3.Title);
                            if (rule == null)
                            {
                                li.Add(new Rule("(+) " + r3.Title, r3.Text));
                            }
                        }
                    }
                }

                list.ItemsSource = li;

                PushHistoryItem(null);

                LogEvent(EventType.CompareRules);
            }
        }