Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        /// <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);
        }