private async void BtnDeleteClicked(object sender, RoutedEventArgs e) { var result = ShowMessageBox("Delete ?", "Are you sure to delete selected records ?"); if (result == MessageDialogResult.Affirmative) { var selectedList = pcViewSource.Where(q => q.IsSelected) .AsQueryable() .ProjectTo <Pc>(config); foreach (var item in selectedList) { item.Active = false; db.Pcs.Attach(item); db.Entry(item).State = EntityState.Modified; } await db.SaveChangesAsync(); } LoadDataSource(); }
private async Task UpdateAsync() { var mapper = config.CreateMapper(); try { using (var db = new PCEntities()) { foreach (var item in pcViewSource) { var entity = mapper.Map <Pc>(item); if (item.ID == 0) { //ad new pc entity.Active = true; db.Pcs.Add(entity); } else if (item.IsUpdated) { //update a pc db.Pcs.Attach(entity); db.Entry(entity).State = EntityState.Modified; } } await db.SaveChangesAsync(); } } catch (Exception ex) { await Util.ShowMessageBoxAsync("Error !", "Error occured: " + ex.Message); Util.WriteLog(ex.Message + "\n" + ex.StackTrace); } changesCounts = 0; }