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