Ejemplo n.º 1
0
        protected void UpdateTransformersList()
        {
            DatabaseCommands.GetTransformersAsync(0, 256).ContinueOnSuccessInTheUIThread(transformers =>
            {
                Transformers.Clear();

                CleanGroup();

                if (string.IsNullOrWhiteSpace(SearchText.Value))
                {
                    Transformers = new ObservableCollection <TransformerDefinition>(transformers);
                }

                else
                {
                    Transformers = new ObservableCollection <TransformerDefinition>(transformers
                                                                                    .Where(definition => definition.Name.IndexOf(SearchText.Value, StringComparison.InvariantCultureIgnoreCase) != -1));
                }

                foreach (var transformer in Transformers.OrderBy(definition => definition.Name))
                {
                    var groupName = DetermineName(transformer);
                    var groupItem =
                        GroupedTransformers.FirstOrDefault(
                            @group => string.Equals(@group.GroupName, groupName, StringComparison.OrdinalIgnoreCase));
                    if (groupItem == null)
                    {
                        groupItem = new Group(groupName);
                        GroupedTransformers.Add(groupItem);
                    }

                    groupItem.Items.Add(new TransformerItem {
                        GroupName = groupName, Name = transformer.Name, Transformer = transformer
                    });
                }

                OnPropertyChanged(() => GroupedTransformers);
                OnPropertyChanged(() => Transformers);
            });
        }