protected void UpdateTransformersList() { DatabaseCommands.GetTransformersAsync(0, 256).ContinueOnSuccessInTheUIThread(transformers => { Transformers.Clear(); Transformers = new ObservableCollection <TransformerDefinition>(transformers); CleanGroup(); 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); }); }
/// <summary> /// CAUTION: If you're using Read without Execute, make sure you consume enumerable before disposing /// </summary> public void Dispose() { foreach (var transform in Transformers) { transform.Dispose(); } Transformers.Clear(); Reader = null; Writer = null; Updater = null; DeleteHandler = null; }