/// <summary> /// The callback for the <see cref="Clear"/> command. /// </summary> /// <returns>Task to run asynchronously.</returns> protected virtual Task ClearCallback() { ResetStringProperties(); SelectedItems.Clear(); ItemsFound.Clear(); return(Task.CompletedTask); }
/// <summary> /// Attempts to remove item from instance. /// </summary> /// <param name="item">Item to remove.</param> public void Remove(IIdProvider item) { if (item is TDataGridSource) { ItemsFound.Remove((TDataGridSource)item); } }
protected override void Dispose(bool disposing) { if (!_disposed) { if (disposing) { OnDisableChange = null; SearchComplete = null; SearchToBegin = null; ExportId = null; Cleared = null; ItemsFound.Clear(); SelectedItems.Clear(); _formLocker.Dispose(); _synchronizer.StopSynchronizing(); } _disposed = true; } base.Dispose(disposing); }
protected override Task SearchCallback() => LockFormForExecution(async() => { OnSearchToBegin(); ItemsFound.Clear(); await ItemsFoundClearedBeforeSearch(); OperationResult <List <TSearchReturn> > operation = await _dataAccessor.SubmitSearchOrderAsync(DataCollectorConverter(DataCollector)); if (operation.WasSuccessful) { await Perform.CollectionRehydrationAsync(ItemsFound, DataGridSourceConverter(operation.Result)); } await ItemsFoundFillComplete(); if (ItemsFound.Count == 1) { SelectedItem = ItemsFound.First(); } OnSearchComplete(operation); });
protected override Task SearchCallback() => LockFormForExecution(async() => { OnSearchToBegin(); var itemList = new List <TDataGridSource>(); await ItemsFoundToBeCleared(ItemsFound); if (AttemptDisposalAfterClear) { itemList.AddRange(ItemsFound ?? Enumerable.Empty <TDataGridSource>()); } ItemsFound.ToList().ForEach(item => ItemsFound.Remove(item)); await ItemsFoundClearedBeforeSearch(); OperationResult <List <TSearchReturn> > operation = await _dataAccessor.SubmitSearchOrderAsync(DataCollectorConverter(DataCollector)); if (_disposed) { return; } if (operation.WasSuccessful) { await Perform.CollectionRehydrationAsync(ItemsFound, DataGridSourceConverter(operation.Result)); } await ItemsFoundFillComplete(); if (ItemsFound.Count == 1 && SelectIfOnlyOneItemReturned) { SelectedItem = ItemsFound.First(); } OnSearchComplete(operation); });
protected virtual void OnItemsFound(IEnumerable <Item> items) { ItemsFound?.Invoke(this, new ItemsEventArgs { Items = items }); }