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());
        }
Example #2
0
 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();
         }
     }
 }