コード例 #1
0
        private void DeleteButton_OnClick(object sender, RoutedEventArgs e)
        {
            var result = MessageBox.Show("Wollen Sie dieses Konto wirklich Löschen ?", "Löschen",
                                         MessageBoxButton.YesNo);
            var error = false;

            switch (result)
            {
            case MessageBoxResult.Yes:
                using (var db = new BankingContext())
                {
                    var kontoList = db.KontoSet.Where(s => s.KontoNummer == KontoNummerTextbox.Text);
                    foreach (var giro in kontoList)
                    {
                        if (Crypto.DecryptPin(giro.Pin) == PinTextbox.Password)
                        {
                            var transactionlist = db.TransaktionsSet
                                                  .Where(s => s.Empfaenger == KontoNummerTextbox.Text)
                                                  .ToList();
                            foreach (var transaction in transactionlist)
                            {
                                db.TransaktionsSet.Remove(transaction);
                            }
                            db.Remove(giro);
                            error = false;
                        }
                        else
                        {
                            MessageBox.Show("Pin Falsch!");
                            error = true;
                            break;
                        }
                    }

                    //TODO: Fehler im Löschprotokoll Beheben FOREIGN-Key kann nicht gelöscht werden solange objekt noch besteht (Transaktionen werden deswegen nicht gelöscht sonderen besitzen keinen key mehr)
                    try
                    {
                        db.SaveChanges();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Currently not working :D ! I work on a fix for this.");
                    }
                }

                if (error == false)
                {
                    MessageBox.Show("Gelöscht!!");
                    ResetForm();
                }

                break;

            case MessageBoxResult.No:
                ResetForm();
                break;
            }
        }