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); } }
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); } } }
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); } }