jeudi 13 décembre 2018

Try catch with if else combined -

Can somone help me with an if combination in try catch. I want to update 3 values to a database. If those values are in the database -> return true. If not -> update to Database. The Problem is, that not every path gives back a value. I can't find the problem in the logic.

public bool DatabaseCheck(string IbanJson, string BnummerJson, string BartJson)
    {
        try
        {
            var hasIBAN = DatabaseData.IBAN.Where(x => x.IBAN1 == IbanJson).SingleOrDefault();
            var hasRechnungsNr = DatabaseData.Rechnungsnummer.Where(x => x.Rechnungsnummer1 == BnummerJson).SingleOrDefault();
            var hasBuchungsArt = DatabaseData.Buchungsart.Where(x => x.Buchungsart1 == BartJson).SingleOrDefault();

            if ((hasIBAN != null) && (hasRechnungsNr != null) && (hasBuchungsArt != null))
            {
                return true;
                //return ID;
            }

        }
        catch
        {

            var newIBAN = new IBAN();
            int ibanId;
            if (DatabaseData.IBAN.ToList().Count == 0)
                ibanId = 1;
            else
            {
                ibanId = DatabaseData.IBAN.Max(i => i.IBAN_ID);
                ibanId++;
            }

            newIBAN.IBAN_ID = ibanId;
            newIBAN.IBAN1 = IbanJson;
            DatabaseData.IBAN.Add(newIBAN);
            DatabaseData.SaveChanges(); //update IBAN

            var newRechnungsNR = new Rechnungsnummer();
            int RechnungsId;
            if (DatabaseData.Rechnungsnummer.ToList().Count == 0)
                RechnungsId = 1;
            else
            {
                RechnungsId = DatabaseData.Rechnungsnummer.Max(i => i.Rechnungsnummer_ID);
                RechnungsId++;
            }

            newRechnungsNR.Rechnungsnummer_ID = RechnungsId;
            newRechnungsNR.Rechnungsnummer1 = BnummerJson;
            DatabaseData.Rechnungsnummer.Add(newRechnungsNR);
            DatabaseData.SaveChanges(); //update Rechnungsnummer

            var newBuchungsArt = new Buchungsart();
            int BuchungsartId;
            if (DatabaseData.Buchungsart.ToList().Count == 0)
                BuchungsartId = 1;
            else
            {
                BuchungsartId = DatabaseData.Buchungsart.Max(i => i.Buchungsart_ID);
                BuchungsartId++;
            }

            newBuchungsArt.Buchungsart_ID = BuchungsartId;
            newBuchungsArt.Buchungsart1 = BartJson;
            DatabaseData.Buchungsart.Add(newBuchungsArt);
            DatabaseData.SaveChanges(); //update Buchungsart
        }
    }

Aucun commentaire:

Enregistrer un commentaire