public void ZeichneGrid(List <Plätze> sgtPlätze)
        {
            ErstelleGrid(sgtPlätze);
            int counter = 0;



            int[] plId = PlatzRepository.GetInstance().GetPlatzsperren();;

            foreach (Plätze item in sgtPlätze)
            {
                Label lbl = new Label();

                Grid.SetColumn(lbl, 0);
                Grid.SetRow(lbl, counter);
                grdMain.Children.Add(lbl);

                CheckBox chk = new CheckBox();
                chk.Content   = "Platz " + item.Platznummer;
                chk.IsChecked = plId.Contains(item.Platznummer);
                Grid.SetColumn(chk, 1);
                Grid.SetRow(chk, counter);
                grdMain.Children.Add(chk);
                counter++;
            }

            Button btn = new Button();

            btn.Content = "Speichern";
            btn.Click  += BtnSpeichern_Click;
            Grid.SetColumn(btn, 1);
            Grid.SetRow(btn, counter);
            grdMain.Children.Add(btn);
        }
        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);
        }
Пример #3
0
        private void ZeichneMainGrid()
        {
            SpielerRepository.GetInstance().ClearSpielerIstGebucht();
            MainWindowPlatzAnzeigeViewModel model = new MainWindowPlatzAnzeigeViewModel(null);

            //Plätze einlesen, Singleton, ändert sich zur Laufzeit nicht
            sgtPlätze = SgtPlätze.Instance.Plätze;

            //Mit der Anzahl der Plätze das Template mit seinen Rows und Columns ermitteln
            GridInfo info = PlatzRepository.GetInstance().GetGridInfo(sgtPlätze.Count);

            grdMain.Children.Clear();
            grdMain = Helpers.GetMainGrid(info);
            string[] arrayCol = info.PositionsColumn.Split(';');
            string[] arrayRow = info.PositionsRow.Split(';');
            int      trigger  = 0;

            this.Content = grdMain;

            //Bedienleiste oben einblenden
            //Bedienleiste leiste = new Bedienleiste();
            Bedienleiste.SetValue(Grid.ColumnSpanProperty, sgtPlätze.Count > 4 ? 10 : sgtPlätze.Count + 2);
            Grid.SetRow(Bedienleiste, 0);
            Grid.SetColumn(Bedienleiste, 0);
            if (Rechte != null)
            {
                Bedienleiste.SetRechte(Rechte);
            }
            grdMain.Children.Add(Bedienleiste);

            //Einzelne Grids produzieren und Auf dem Maingrid darstellen
            for (int i = 0; i < sgtPlätze.Count; i++)
            {
                //Umbruch der Anzeige nach 6 Plätzen
                if (i == 6)
                {
                    trigger++;
                }
                AnzeigePlatz ap = Helpers.GetAnzeigePlatz(model.ListePlatzAnzeige[i]);
                if (!ap.Status.Equals("gesperrt") && Rechte != null)
                {
                    ap.BtnBuchen.Click += BtnBuchen_Click;
                }
                Grid.SetRow(ap, Int32.Parse(arrayRow[trigger]));
                Grid.SetColumn(ap, Int32.Parse(arrayCol[i]));
                grdMain.Children.Add(ap);
            }
        }
        private void BtnSpeichern_Click(object sender, RoutedEventArgs e)
        {
            List <int> sperren = new List <int>();


            foreach (DependencyObject obj in grdMain.Children)
            {
                if (obj.GetType() == typeof(CheckBox))
                {
                    CheckBox chk = (CheckBox)obj;
                    if ((bool)chk.IsChecked)
                    {
                        string wert    = chk.Content.ToString().Split(' ')[1];
                        int    intwert = Int32.Parse(wert);

                        sperren.Add(intwert);
                    }
                }
            }
            PlatzRepository.GetInstance().SavePlatzsperre(sperren);
        }
        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);
        }
Пример #6
0
 private SgtPlätze()
 {
     Plätze = PlatzRepository.GetInstance().GetPlätze();
 }