private void DelItemThread(ItemToDelete _itemToDelete, int _itemID, int _productType) { Dictionary <ItemToDelete, string[]> valuesDictionaryByDeleteItemType = new Dictionary <ItemToDelete, string[]>(); valuesDictionaryByDeleteItemType.Add(ItemToDelete.Investigation, new string[2] { "Investigation deleted successfully", "Failed to delete investigation\nor its products" }); valuesDictionaryByDeleteItemType.Add(ItemToDelete.Product, new string[2] { "Product deleted successfully", "Failed to delete product" }); SQLRequests SQLReq = new SQLRequests(); bool isActionFinished = false; switch (_itemToDelete) { case ItemToDelete.Investigation: if (SQLReq.DeleteInvestigation(_itemID)) { isActionFinished = true; } break; case ItemToDelete.Product: if (SQLReq.DeleteProduct(_itemID, _productType)) { isActionFinished = true; } break; } if (isActionFinished) { MessageBox.Show(valuesDictionaryByDeleteItemType[_itemToDelete][0]); BeginInvoke((Action) delegate //Invoke at UI thread { LoadOrRefresh(); }); } else { MessageBox.Show(valuesDictionaryByDeleteItemType[_itemToDelete][1]); } }
private bool ConfirmCommandCanExecute() => ItemToDelete.Equals(notification?.Item);