예제 #1
0
        public CsResultParkplatz GetParkplatzsByEtage(string etage)
        {
            try
            {
                var etageI = Convert.ToInt32(etage);

                var entModel = DataModel.getEntities();
                var res      = new CsResultParkplatz {
                    flag = 1
                };

                var resPP = new List <CsParkplatz>();

                var entModelEtage = entModel.ParkplatzSets.Where(pp => pp.Etage == etageI);
                foreach (var ppEnt in entModelEtage)
                {
                    var pp = CreateCsParkplatz(ppEnt);

                    foreach (var resEnt in ppEnt.ReservierungSets)                  //Checkt ab ob Reservierung am heutigen Tage vorhanden ist
                    {
                        if (resEnt.Datum == DateTime.Today && pp.Zustand == "Leer") //KEVin erklären, falls pp bestezt is abert reserivert kommt besetzt zurück nur wenn parkplatz frei is wird gecheckt ob reservierung heute vorhanden ist
                        {
                            pp.Zustand = "Reserviert";
                            break;
                        }
                    }

                    resPP.Add(pp);
                }
                res.Parkplatzs = resPP;

                if (res.Parkplatzs.Count == 0)
                {
                    throw new Exception("Keine Parkplätze in dieser Etage");
                }
                return(res);
            }
            catch (Exception ex)
            {
                var res = new CsResultParkplatz
                {
                    flag      = 0,
                    exception = ex.Message
                };

                return(res);
            }
        }
예제 #2
0
        public CsResultParkplatz GetParkplatzStatus(string id)
        {
            var idI      = Convert.ToInt32(id);
            var entModel = DataModel.getEntities();

            using (entModel)
            {
                try
                {
                    var resPP = new CsResultParkplatz();
                    resPP.Parkplatzs = new List <CsParkplatz>();
                    resPP.flag       = 1;
                    foreach (var ppEnt in entModel.ParkplatzSets.Where(pp => pp.Id == idI))
                    {
                        var pp = CreateCsParkplatz(ppEnt);

                        foreach (var resEnt in ppEnt.ReservierungSets)                  //Checkt ab ob Reservierung am heutigen Tage vorhanden ist
                        {
                            if (resEnt.Datum == DateTime.Today && pp.Zustand == "Leer") //KEVin erklären, falls pp bestezt is abert reserivert kommt besetzt zurück nur wenn parkplatz frei is wird gecheckt ob reservierung heute vorhanden ist
                            {
                                pp.Zustand = "Reserviert";
                                break;
                            }
                        }

                        //In Result-Objekt packen
                        resPP.Parkplatzs.Add(pp);
                    }
                    return(resPP);
                }
                catch (Exception ex)
                {
                    var resPP = new CsResultParkplatz();
                    resPP.flag      = 0;
                    resPP.exception = ex.Message;
                    return(resPP);
                }
            }
        }
예제 #3
0
        public CsResultParkplatz ReserveParkplatz(string datum, string schild, string art, string user)
        {
            //Debug.WriteLine(this.GetType() + " ReserveParkplatz(...) invoked");
            try
            {
                //var date = DateTime.ParseExact(datum, "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture);
                var date     = DateTime.ParseExact(datum, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
                var artI     = Convert.ToInt32(art);
                var entModel = DataModel.getEntities();
                var res      = new CsResultParkplatz();
                using (entModel)
                {
                    var ppsEnt = entModel.ParkplatzSets.Where(pp => pp.Parkplatzart_Id == artI);
                    foreach (var ppEnt in ppsEnt)
                    {
                        if (date == DateTime.Today && ppEnt.Zustand != "Leer")
                        {
                            continue;
                        }


                        if (ppEnt.ReservierungSets.Count == 0)//Gibt keine Reservierungen für diesen Parkplatz
                        {
                            Reserve(entModel, ppEnt, date, schild, user);
                            var pp = CreateCsParkplatz(ppEnt);
                            res.Parkplatzs = new List <CsParkplatz> {
                                pp
                            };
                            res.flag = 1;
                            break;
                        }
                        bool timable = true;
                        foreach (var reEnt in ppEnt.ReservierungSets)//Check obs eine Reservierung gibt
                        {
                            if (reEnt.Datum == date)
                            {
                                timable = false;
                            }
                        }

                        if (timable)
                        {
                            Reserve(entModel, ppEnt, date, schild, user);

                            var pp = CreateCsParkplatz(ppEnt);
                            res.Parkplatzs = new List <CsParkplatz> {
                                pp
                            };
                            res.flag = 1;
                            break;
                        }
                    }

                    entModel.SaveChanges();
                    return(res);
                }
            }
            catch (Exception ex)
            {
                var res = new CsResultParkplatz
                {
                    flag      = 0,
                    exception = ex.Message
                };
                return(res);
            }
        }