public MainWindowPlatzAnzeigeViewModel(DateTime?AnzeigeStart) { DateTime Vergleichszeit = AnzeigeStart == null ? Jetzt : (DateTime)AnzeigeStart; List <Buchungen> AlleAktuellenBuchungen = BuchungenRepository.GetInstance().GetAlleAktuellenBuchungen(Vergleichszeit); foreach (Buchungen buchung in AlleAktuellenBuchungen) { AnzeigePlatzViewModel apvm = new AnzeigePlatzViewModel(); apvm.PlatzId = PlatzRepository.GetInstance().GetPlatznummer(buchung.PlatzId); apvm.Titelzeile = buchung.Titel; apvm.AnzeigeUhrzeit = BuchungenRepository.GetInstance().GetUhrzeitPlatzFrei(buchung); apvm.Status = "belegt"; if (String.IsNullOrEmpty(buchung.FesteBuchungGuid) && String.IsNullOrEmpty(buchung.TurnierspielGuid)) { //Platzbuchung eines Spielers apvm.Zeile1 = buchung.Startzeit.ToShortTimeString(); apvm.Zeile2 = Helpers.GetSpielerNameById(buchung.Spieler1Id); apvm.Zeile3 = Helpers.GetSpielerNameById(buchung.Spieler2Id); apvm.Zeile4 = Helpers.GetSpielerNameById(buchung.Spieler3Id); apvm.Zeile5 = Helpers.GetSpielerNameById(buchung.Spieler4Id); } if (String.IsNullOrEmpty(buchung.FesteBuchungGuid) && !String.IsNullOrEmpty(buchung.TurnierspielGuid)) { //Turnierspiel apvm.Zeile1 = buchung.Zeile1; apvm.Zeile2 = buchung.Zeile2; apvm.Zeile3 = buchung.Zeile3; apvm.Zeile4 = buchung.Zeile4; apvm.Zeile5 = buchung.Zeile5; } if (!String.IsNullOrEmpty(buchung.FesteBuchungGuid) && String.IsNullOrEmpty(buchung.TurnierspielGuid)) { //Feste Buchung apvm.Zeile1 = buchung.Zeile1; apvm.Zeile2 = buchung.Zeile2; apvm.Zeile3 = buchung.Zeile3; apvm.Zeile4 = buchung.Zeile4; apvm.Zeile5 = buchung.Zeile5; } Buchungen.Add(apvm); } ListePlatzAnzeige = GetPlatzListe(Buchungen); }
private List <AnzeigePlatzViewModel> GetPlatzListe(List <AnzeigePlatzViewModel> buchungen) { int[] Platzsperren; Platzsperren = PlatzRepository.GetInstance().GetPlatzsperren();; List <AnzeigePlatzViewModel> ReturnList = new List <AnzeigePlatzViewModel>(); List <Plätze> AllePlätze = PlatzRepository.GetInstance().GetPlätze(); foreach (Plätze platz in AllePlätze) { if (Platzsperren.Contains(platz.Id)) { //Platz ist gesperrt AnzeigePlatzViewModel vm = new AnzeigePlatzViewModel(); vm.Titelzeile = "gesperrt"; vm.AnzeigeUhrzeit = "gesperrt"; vm.PlatzId = platz.Platznummer; vm.Status = "gesperrt"; vm.Zeile1 = ""; vm.Zeile2 = ""; vm.Zeile3 = ""; vm.Zeile4 = ""; vm.Zeile5 = ""; ReturnList.Add(vm); } else { AnzeigePlatzViewModel apvm = buchungen.Where(x => x.PlatzId == platz.Id).FirstOrDefault(); if (apvm != null) { //Buchung liegt vor ReturnList.Add(apvm); } else { //es liegt keine Buchung vor AnzeigePlatzViewModel vm = new AnzeigePlatzViewModel(); vm.Titelzeile = "frei"; vm.AnzeigeUhrzeit = "frei"; vm.PlatzId = platz.Platznummer; vm.Status = "frei"; vm.Zeile1 = ""; vm.Zeile2 = ""; vm.Zeile3 = ""; vm.Zeile4 = ""; vm.Zeile5 = ""; //Achtung, es kann sein, dass der Platz innerhalb der nächsten Stunde belegt wird Buchungen buchung = BuchungenRepository.GetInstance().GetBuchungByPlatzUndStartzeit(platz.Id); if (buchung != null) { TimeSpan test = buchung.Startzeit - DateTime.Now; if (test.Hours == 0) { vm.Titelzeile = "In Kürze belegt"; vm.AnzeigeUhrzeit = "-00:" + test.Minutes; vm.Zeile1 = "(" + buchung.Titel + ")"; } } ReturnList.Add(vm); } } } return(ReturnList); }