private void AnfrageSpeichern(bool annehmen)
        {
            //Dialog vorbereiten
            var w       = new InfoAnRednerUndKoordinatorWindow();
            var data    = (InfoAnRednerUndKoordinatorViewModel)w.DataContext;
            var buchung = new Outside
            {
                Ältester    = SelectedRedner,
                Versammlung = SelectedVersammlung,
                Kw          = Kalenderwoche,
                Reason      = OutsideReason.Talk,
                Vortrag     = SelectedVortrag
            };

            var doppelbuchung = DataContainer.ExternerPlan.Any(x => x.Ältester == SelectedRedner && x.Kw == Kalenderwoche) ||
                                DataContainer.MeinPlan.Where(x => x.Kw == Kalenderwoche && x.Status == EventStatus.Zugesagt).Cast <Invitation>().Any(x => x.Ältester == SelectedRedner);

            if (doppelbuchung)
            {
                if (ThemedMessageBox.Show("Warnung", "Für diesen Redner gibt es an dem Datum schon eine Buchung. Trotzdem Buchung speichern?", System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxImage.Warning) == System.Windows.MessageBoxResult.No)
                {
                    return;
                }
            }

            //Anfrage akzeptieren
            if (annehmen)
            {
                data.Titel = "Buchung bestätigen";
                data.MailTextKoordinator = Templates.GetMailTextAnnehmenKoordinator(buchung);
                data.MailTextRedner      = Templates.GetMailTextAnnehmenRedner(buchung);
                w.ShowDialog();

                if (data.Speichern)
                {
                    DataContainer.ExternerPlan.Add(buchung);
                    ActivityLog.AddActivity.Outside(buchung, data.MailTextKoordinator, data.MailTextRedner, true);
                }
            }
            //Anfrage ablehnen
            else
            {
                data.Titel = "Anfrage ablehnen";
                data.MailTextKoordinator = Templates.GetMailTextAblehnenKoordinator(buchung);
                data.MailTextRedner      = null;
                w.ShowDialog();

                if (data.Speichern)
                {
                    ActivityLog.AddActivity.Outside(buchung, data.MailTextKoordinator, null, false);
                }
            }
        }
Exemple #2
0
        public void ListeVersenden()
        {
            var w    = new InfoAnRednerUndKoordinatorWindow();
            var data = (InfoAnRednerUndKoordinatorViewModel)w.DataContext;

            data.Titel = "Liste der Vortragseinladungen versenden";

            var listeRedner = new List <Speaker>();

            foreach (var einladung in Talks)
            {
                if (!listeRedner.Contains(einladung.Ältester))
                {
                    listeRedner.Add(einladung.Ältester);
                }
            }
            data.MailTextRedner = Templates.GetRednerlisteMailText(listeRedner, Talks);
            data.DisableCancelButton();

            w.ShowDialog();

            var einRedner = listeRedner.Count == 1 ? listeRedner[0] : null;

            ActivityLog.AddActivity.OutsideSendList(einRedner, data.MailTextRedner);
        }
Exemple #3
0
        public void BuchungErinnern()
        {
            var mail = new InfoAnRednerUndKoordinatorWindow();
            var data = (InfoAnRednerUndKoordinatorViewModel)mail.DataContext;

            data.MailTextKoordinator = Templates.GetMailTextRednerErinnerung(Zuteilung as Invitation);
            data.DisableCancelButton();
            mail.ShowDialog();
            ActivityLog.AddActivity.RednerErinnern(Zuteilung as Invitation, data.MailTextKoordinator);
            Einladung.ErinnerungsMailGesendet = true;
            RaisePropertyChanged(nameof(ErinnerungsMailSenden));
        }
Exemple #4
0
        public void Absagen()
        {
            var w    = new InfoAnRednerUndKoordinatorWindow();
            var data = (InfoAnRednerUndKoordinatorViewModel)w.DataContext;

            data.Titel = "Vortrag absagen";
            data.MailTextKoordinator = Templates.GetMailTextAblehnenKoordinator(SelectedTalk);
            data.MailTextRedner      = Templates.GetMailTextAblehnenRedner(SelectedTalk);
            w.ShowDialog();

            if (data.Speichern)
            {
                ActivityLog.AddActivity.Outside(SelectedTalk, data.MailTextKoordinator, data.MailTextRedner, false);
                DataContainer.ExternerPlan.Remove(SelectedTalk);
                Talks.Remove(SelectedTalk);
            }
        }
Exemple #5
0
        public void BuchungLöschen()
        {
            if (Zuteilung.Status == EventStatus.Ereignis)
            {
                DataContainer.MeinPlanRemove(Zuteilung);
                var ereignis = (Zuteilung as SpecialEvent);
                ActivityLog.AddActivity.EreignisBearbeiten(ereignis, ActivityLog.Types.EreignisLöschen);
                Monat.GetWeeks(Jahr);
                return;
            }

            var zuteilung = Zuteilung as Invitation;

            var    w    = new InfoAnRednerUndKoordinatorWindow();
            var    data = (InfoAnRednerUndKoordinatorViewModel)w.DataContext;
            string mailtext;

            if (zuteilung.Ältester.Versammlung == DataContainer.MeineVersammlung)
            {
                data.MailTextRedner = Templates.GetMailTextAblehnenRedner(zuteilung);
                mailtext            = data.MailTextRedner;
            }
            else
            {
                data.MailTextKoordinator = Templates.GetMailTextAblehnenKoordinator(zuteilung);
                mailtext = data.MailTextKoordinator;
            }

            w.ShowDialog();
            if (!data.Speichern)
            {
                return;
            }

            DataContainer.MeinPlanRemove(Zuteilung);
            DataContainer.Absagen.Add(new Cancelation(zuteilung.Kw, zuteilung.Ältester, zuteilung.Status));
            ActivityLog.AddActivity.BuchungLöschen(zuteilung, mailtext);
            Monat.GetWeeks(Jahr);
        }