Beispiel #1
0
        public MainWindowModel()
        {
            var pizzaService = new PizzaService.PizzaServiceClient();

            Neuladen = new Command(() =>
            {
                Pizzen = new ObservableCollection<PizzaViewModel>(pizzaService.Pizzen().Select(p => new PizzaViewModel(p)));
                NotifyChanged("Pizzen");

                Bestellungen = new ObservableCollection<BestellungViewModel>(pizzaService.AlleBestellungen().Select(b => new BestellungViewModel(b)));
                NotifyChanged("Bestellungen");
            });

            Neu = new Command(() =>
            {
                Ausgewählt = new PizzaViewModel();
            });

            Speichern = new Command(() =>
            {
                if (Ausgewählt == null) return;

                Ausgewählt.Name = Name;
                Ausgewählt.Preis = Preis;
                Ausgewählt.Zutaten = PizzaViewModel.Arrayify(Zutaten);

                if (Ausgewählt.Id == 0)
                {
                    Pizzen.Add(Ausgewählt);
                }

                pizzaService.Speichern(Ausgewählt.AsEntity());
            });

            Pdf = new Command(() =>
            {
                if (Bestellung == null) return;

                var dateiname = Bestellung.Name + ".pdf";
                var dateinhalt = "Bestellung von " + Bestellung.Name
                    + " vom " + Bestellung.Datum
                    + " in Höhe " + Bestellung.Gesamtpreis.ToString("C") + "\r\n\r\n"
                    + string.Join("\r\n", Bestellung.Pizzen.Select(p => " - " + p));

                var document = new PdfDocument();
                document.Info.Title = "Created with PDFsharp";
                var page = document.AddPage();
                var gfx = XGraphics.FromPdfPage(page);
                var font = new XFont("Verdana", 15, XFontStyle.Regular);
                var tf = new XTextFormatter(gfx);
                tf.DrawString(dateinhalt, font, XBrushes.Black, new XRect(40, 100, page.Width-40, page.Height-100), XStringFormats.TopLeft);

                document.Save(dateiname);

                System.Diagnostics.Process.Start(dateiname);
            });

            Neuladen.Execute(null);
        }
Beispiel #2
0
        public MainWindowModel()
        {
            var pizzaService = new PizzaService.PizzaServiceClient();

            Neuladen = new Command(() =>
            {
                Pizzen = new ObservableCollection<PizzaViewModel>(pizzaService.Pizzen().Select(p => new PizzaViewModel(p)));
                NotifyChanged("Pizzen");
                Ausgewählt = null;

                var bestellungen = pizzaService.Bestellungen(von: BestellerName);
                Bestellungen = new ObservableCollection<BestellungViewModel>(bestellungen.Select(b => new BestellungViewModel(b)));
                NotifyChanged("Bestellungen");
            });

            Bestellen = new Command(() =>
            {
                if (Ausgewählt != null)
                {
                    Warenkorb.Add(new WarenkorbPizzaViewModel(Ausgewählt));
                }
            });

            Abschicken = new Command(() =>
            {
                if (string.IsNullOrWhiteSpace(BestellerName) == false && Warenkorb.Any())
                {
                    pizzaService.Bestellen(BestellerName, Warenkorb.Select(p => p.Pizza.AsEntity()).ToArray());

                    Neuladen.Execute(null);

                    Warenkorb.Clear();
                }
            });

            Warenkorb = new ObservableCollection<WarenkorbPizzaViewModel>();
            Warenkorb.CollectionChanged += (s, e) => NotifyChanged("WarenkorbGesamtpreis");

            Neuladen.Execute(null);
        }