private void BtnOk_Click(object sender, RoutedEventArgs e) { double sum; Purse purseElement = purseListCB.SelectedItem as Purse; if (purseElement == null) { errorText.Text = "Не выбран счет"; return; } if (!Double.TryParse(ConvertToStringFormat(accumulationSum.Text), out sum)) { errorText.Text = "Некоректная сумма"; return; } if (sum < 0) { errorText.Text = "Некоректная сумма"; return; } using (PFContext db = new PFContext()) { Purse purseUpdate; Currency currrencyElement = db.Currency.FirstOrDefault(c => c.Id == purseElement.CurrencyId); AccumulationOperation accumulationOperation = new AccumulationOperation { AccumulationId = accumulation.Id, Summa = sum, PurseId = purseElement.Id, CurrencyId = currrencyElement.Id, Purse = purseElement, Currency = currrencyElement, Accumulation = accumulation }; db.Purse.Attach(purseElement); db.Currency.Attach(currrencyElement); db.Accumulation.Attach(accumulation); /* Update Purse */ purseUpdate = db.Purse.FirstOrDefault(p => p.Id == accumulationOperation.PurseId); purseUpdate.Balance = purseUpdate.Balance - accumulationOperation.Summa; db.Purse.Update(purseUpdate); /* Update Accumulation */ accumulation.CurrentSumma += accumulationOperation.Summa; db.Update(accumulation); db.AccumulationOperation.Add(accumulationOperation); db.SaveChanges(); } GoToPreviousPage(); }