/// <summary> /// gibt den Raumnamen einer Buchung retour /// </summary> /// <param name="buchung_id"></param> /// <returns></returns> public static string GesuchterRaumName(int buchung_id) { log.Info("RaumVerwaltung - GesuchterRaumName"); string Raumname = ""; Buchung gesBuchung = new Buchung(); try { using (var context = new Innovation4AustriaEntities()) { gesBuchung = context.AlleBuchungen.Where(x => x.Id == buchung_id).Include(y => y.Raum).FirstOrDefault(); Raumname = gesBuchung.Raum.Bezeichnung; } } catch (Exception ex) { log.Error("RaumVerwltung - alleRaeume - Datenbankverbindung fehlgeschlagen"); if (ex.InnerException != null) { log.Info(ex.InnerException); } } return(Raumname); }
/// <summary> /// Setzt das Aktiv bit einer Buchung auf false und storniert sie so /// </summary> /// <param name="id"></param> /// <returns></returns> public static bool Stornieren(int id) { log.Info("BuchungsVerwaltung - Stornieren"); bool storniert = false; //Buchung gesBuchung = new Buchung(); try { using (var context = new Innovation4AustriaEntities()) { Buchung gesBuchung = context.AlleBuchungen.Where(x => x.Id == id).FirstOrDefault(); gesBuchung.Aktiv = false; context.SaveChanges(); storniert = true; } } catch (Exception ex) { log.Error("BuchungsVerwaltung - Buchung - es konnte keine Datenbankverbindung hergestellt werden", ex); if (ex.InnerException != null) { log.Info(ex.InnerException); } } return(storniert); }
/// <summary> /// Erstellt eine Buchung und retouniert die ID /// </summary> /// <param name="raum_id"></param> /// <param name="firma_id"></param> /// <returns></returns> public static int ErstelleBuchung(int raum_id, int firma_id) { Buchung neueBuchung = new Buchung(); neueBuchung.Raum_id = raum_id; neueBuchung.Firma_id = firma_id; neueBuchung.Aktiv = true; log.Info("BuchungsVerwaltung - ErstelleBuchung"); try { using (var context = new Innovation4AustriaEntities()) { context.AlleBuchungen.Add(neueBuchung); context.SaveChanges(); } } catch (Exception ex) { log.Error("BuchungsVerwaltung - BuchungsDetailsVonBuchung - Datenbankverbindung fehlgeschlagen", ex); if (ex.InnerException != null) { log.Info(ex.InnerException); } } return(neueBuchung.Id); }
public static Buchung HoleBuchung(int id) { Buchung gesBuchung = new Buchung(); try { using (var context = new Innovation4AustriaEntities()) { gesBuchung = context.AlleBuchungen.Where(x => x.Id == id).Include(y => y.AlleBuchungsdetails).FirstOrDefault(); } } catch (Exception ex) { throw; } return(gesBuchung); }
/// <summary> /// Reourniert eine Liste von Räumen die in einem in einem Zeitraum frei sind mit der gesuchten Art und Ausstattung /// </summary> /// <param name="startdatum"></param> /// <param name="enddatum"></param> /// <param name="art_id"></param> /// <param name="ausstattung"></param> /// <returns></returns> public static List <Raum> GesuchteRaeume(DateTime startdatum, DateTime enddatum, int art_id, int[] ausstattung) { log.Info("RaumVerwaltung - GesuchteRaueme"); List <Raum> raeume = new List <Raum>(); List <Raum> gesuchteRaeume = new List <Raum>(); List <Raum> temp = new List <Raum>(); try { using (var context = new Innovation4AustriaEntities()) { List <Buchung> buchungen = new List <Buchung>(); List <Raum> belegteRaeume = new List <Raum>(); List <Buchungsdetails> buchungsdetails = context.AlleBuchungsdetails.Where(x => x.Datum >= startdatum && x.Datum <= enddatum).ToList(); raeume = context.AlleRaeume.Where(x => x.Art_id == art_id).Include(y => y.Art).ToList(); if (buchungsdetails != null) { foreach (var buchungsdetail in buchungsdetails) { Buchung buchung = context.AlleBuchungen.Where(x => x.Id == buchungsdetail.Buchung_id).FirstOrDefault(); buchungen.Add(buchung); } } if (buchungen != null) { foreach (var buchung in buchungen) { Raum belegterRaum = context.AlleRaeume.Where(x => x.Id == buchung.Raum_id).FirstOrDefault(); belegteRaeume.Add(belegterRaum); } } // hier wird nach der Art gefiltert, ist der Raum schon in den Zeitraum vergeben, wird er von den anzuzeigenden Räumen entfernt if (belegteRaeume != null) { foreach (var belegterRaum in belegteRaeume) { raeume.RemoveAll(x => x.Id == belegterRaum.Id); } } // hier wird nach der Ausstattung gefiltert. // wenn die Anzahl (in alle AlleRaum_Ausstattungen) Ausstattungs_Id gleich groß ist wie die in ausstattung[], dann soll es in die Liste aufgenommen werden raeume = raeume.Where(x => x.AlleRaum_Ausstattungen.Select(y => y.Ausstattungs_Id) .Intersect(ausstattung).Count() == ausstattung.Count()).ToList(); } } catch (Exception ex) { log.Error("RaumVerwaltung - GesuchteRaeume - DB-Verbindung fehlgeschlagen"); if (ex.InnerException != null) { log.Info(ex.InnerException); } } return(raeume); }