public async Task <int> Delete(long id) { long stageId = this.DbSet.Single(p => p.Id == id).StageId; HashSet <long> activitiesId = new HashSet <long>(this.DbContext.DealTrackingActivities .Where(p => p.DealId.Equals(id)) .Select(p => p.Id)); List <Task> tasks = new List <Task>(); foreach (long activityId in activitiesId) { tasks.Add(ActivityLogic.Delete(activityId)); } await Task.WhenAll(); await DealLogic.Delete(id); StageLogic.UpdateDealsOrderDelete(stageId, id); return(await DbContext.SaveChangesAsync()); }
private void buttonDelete_Click(object sender, EventArgs e) { if (dataGridViewDeals.SelectedRows.Count == 1) { if (MessageBox.Show("Удалить запись", "Вопрос", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { int id = Convert.ToInt32(dataGridViewDeals.SelectedRows[0].Cells[0].Value); try { logic.Delete(new DealBM { Id = id }); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } LoadData(); } } }