Пример #1
0
 public void btnAceptarCancel_Click(object sender, RoutedEventArgs e)
 {
     if ((sender as SimpleButton).Name == "btnAceptar")
     {
         if (todosMetodosCorrectos())
         {
             try
             {
                 USUARIOS user = new USUARIOS(uow);
                 user.Nombre    = nombre;
                 user.Apellidos = apellidos;
                 user.DNI       = dni;
                 user.TlfFijo   = tlfFijo;
                 user.TlfMovil  = tlfMovil;
                 user.Email     = email;
                 user.Username  = username;
                 user.Password  = ComunClass.Encriptar(password);
                 uow.CommitChanges();
                 ThemedMessageBox.Show("Nuevo registro", "Usuario creado correctamente.", MessageBoxButton.OK, MessageBoxImage.Information);
                 ventana.Close();
             }
             catch (Exception ex)
             {
                 ThemedMessageBox.Show("Nuevo registro", "Ha ocurrido un error a la hora de crear el nuevo usuario. Por favor, vuelva a intentarlo.", MessageBoxButton.OK, MessageBoxImage.Error);
             }
         }
     }
     else
     {
         ventana.Close();
     }
 }
        public static void CalculateRoute(bool alle)
        {
            var start = DataContainer.MeineVersammlung;
            var end   = DataContainer.Versammlungen.Where(x => x != start);

            if (!alle)
            {
                end = end.Where(x => x.Entfernung == 0);
            }
            var erfolgreich = 0;
            var fehler      = 0;

            foreach (var ziel in end)
            {
                var km = GeoApi.GetDistance(start, ziel);
                if (km != null)
                {
                    ziel.Entfernung = (int)km;
                    erfolgreich++;
                }
                else
                {
                    fehler++;
                }
            }
            ThemedMessageBox.Show("Entfernungsberechnung", $"Es wurden {erfolgreich} Entfernungen berechnet und eingetragen. {fehler} Berechnungen haben nicht geklappt, es wurde die Entfernung 0km eingetragen.");
        }
Пример #3
0
        private static void UpdaterFinished(object sender, RunWorkerCompletedEventArgs e)
        {
            Log.Info(nameof(UpdaterFinished));
            _updateWorker.DoWork             -= new DoWorkEventHandler(UpdaterDoWork);
            _updateWorker.RunWorkerCompleted -= new RunWorkerCompletedEventHandler(UpdaterFinished);
            if (ServerDate == new DateTime(2000, 1, 1))
            {
                return;
            }
            if (LocalDate >= ServerDate)
            {
                if (!_silent)
                {
                    ThemedMessageBox.Show("Information",
                                          "Neueste Version ist bereits installiert",
                                          System.Windows.MessageBoxButton.OK,
                                          System.Windows.MessageBoxImage.Information);
                }
                return;
            }

            ServerVersions = (Ini)e.Result;

            var w    = new UpdateDialog();
            var data = (UpdateDialogViewModel)w.DataContext;

            data.LocalVersion  = LocalDate;
            data.ServerVersion = ServerDate;
            data.ServerIni     = ServerVersions;
            w.ShowDialog();
        }
Пример #4
0
        private static Ini ReadNewestVersion()
        {
            Log.Info(nameof(ReadNewestVersion));
            var iniString = string.Empty;

            try
            {
                using (WebClient client = new WebClient())
                {
                    client.Encoding    = Encoding.UTF8;
                    client.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.Reload);
                    iniString          = client.DownloadString(Properties.Settings.Default.ChangelogPfad);
                }
                if (string.IsNullOrEmpty(iniString))
                {
                    if (!_silent)
                    {
                        ThemedMessageBox.Show(Properties.Resources.Achtung,
                                              "Fehler beim suchen nach der neuesten Version. Kein Zugriff auf Webseite",
                                              System.Windows.MessageBoxButton.OK,
                                              System.Windows.MessageBoxImage.Error);
                    }
                    return(null);
                }
            }
            catch (Exception ex)
            {
                if (!_silent)
                {
                    ThemedMessageBox.Show(Properties.Resources.Achtung,
                                          "Fehler beim suchen nach der neuesten Version\n" + ex.Message,
                                          System.Windows.MessageBoxButton.OK,
                                          System.Windows.MessageBoxImage.Error);
                }
                return(null);
            }

            var ServerVersions = new Ini();

            ServerVersions.Load(iniString);

            var versionen = ServerVersions.GetSections();

            ServerDate = new DateTime(2000, 1, 1);
            foreach (var version in versionen)
            {
                var v = DateTime.Parse(version, Helper.German);
                if (v > ServerDate)
                {
                    ServerDate = v;
                }
            }
            return(ServerVersions);
        }
        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);
                }
            }
        }
Пример #6
0
            private bool todosMetodosCorrectos()
            {
                Regex reg = new Regex(@"^[0-9]{8,8}[A-Za-z]$");

                if (nombre?.Length > 2 && apellidos?.Length > 2 &&
                    username?.Length >= 5 && password?.Length >= 8 &&
                    email?.Length >= 0 && dni?.Length >= 0)
                {
                    if (uow.FindObject <USUARIOS>(CriteriaOperator.Parse("Username == ?", username)) == null)
                    {
                        if (uow.FindObject <USUARIOS>(CriteriaOperator.Parse("Email == ?", email)) == null)
                        {
                            if (dni != null && reg.IsMatch(dni))
                            {
                                reg = new Regex(@"^[a-zA-Z0-9._%-]{5,}@[a-zA-Z0-9.-]{2,}\.[a-zA-Z]{2,4}$");
                                if (reg.IsMatch(email))
                                {
                                    string encriptado = ComunClass.Encriptar(password);
                                    Console.WriteLine(encriptado);
                                    Console.WriteLine(ComunClass.DesEncriptar(encriptado));
                                    return(true);
                                }
                                else
                                {
                                    ThemedMessageBox.Show("Nuevo registro", "Por favor, rellene el email correctamente. Ej. [email protected].", MessageBoxButton.OK, MessageBoxImage.Information);
                                    return(false);
                                }
                            }
                            else
                            {
                                ThemedMessageBox.Show("Nuevo registro", "Por favor, rellene el DNI correctamente. Ej. 1111111-A.", MessageBoxButton.OK, MessageBoxImage.Information);
                                return(false);
                            }
                        }
                        else
                        {
                            ThemedMessageBox.Show("Nuevo registro", "El email introducido ya está registrado. Por favor, introduzca otro.", MessageBoxButton.OK, MessageBoxImage.Information);
                            return(false);
                        }
                    }
                    else
                    {
                        ThemedMessageBox.Show("Nuevo registro", "El username ya está registrado. Por favor, introduzca otro.", MessageBoxButton.OK, MessageBoxImage.Information);
                        return(false);
                    }
                }
                else
                {
                    ThemedMessageBox.Show("Nuevo registro", "Debes rellenar todos los campos obligatorios.", MessageBoxButton.OK, MessageBoxImage.Information);
                    return(false);
                }
            }
Пример #7
0
        public static int?GetDistance(string startAdress, string endAdress)
        {
            Log.Info(nameof(GetDistance), $"start={startAdress}, end={endAdress}");

            if (string.IsNullOrWhiteSpace(startAdress))
            {
                return(0);
            }
            if (string.IsNullOrWhiteSpace(endAdress))
            {
                return(0);
            }

            startAdress = startAdress.Replace(" ", "+");
            endAdress   = endAdress.Replace(" ", "+");
            var myUrl = url
                        .Replace("{START}", startAdress)
                        .Replace("{ZIEL}", endAdress)
                        .Replace("{KEY}", Security.GoogleApiKey);
            var gString = string.Empty;

            using (WebClient client = new WebClient())
            {
                gString = client.DownloadString(myUrl);
            }

            var json = JObject.Parse(gString);

            if (json["status"].Value <string>() == "OK")
            {
                var routes   = json["routes"];
                var legs     = routes[0]["legs"];
                var distance = legs[0]["distance"];
                var value    = distance["value"];
                var km       = ((int)value + 500) / 1000;
                return(km);
            }
            else
            {
                ThemedMessageBox.Show(
                    "Fehler bei der Routenberechnung",
                    "Es konnte keine Route berechnet werden. " + Environment.NewLine +
                    $"von: {startAdress}" + Environment.NewLine +
                    $"nach: {endAdress}" + Environment.NewLine +
                    "Bitte später nochmal versuchen",
                    MessageBoxButton.OK,
                    MessageBoxImage.Warning);
                return(null);
            }
        }
Пример #8
0
        public MainWindow()
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");
            LanguageProperty.OverrideMetadata(
                typeof(FrameworkElement),
                new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

            Log.Start();

            AppDomain.CurrentDomain.FirstChanceException += (sender, eventArgs) =>
            {
                Log.Error("FirstChanceException", eventArgs.Exception.Message);
                Log.Error("FirstChanceExceptionStackTrace", eventArgs.Exception.StackTrace);
            };

#if DEBUG
            Settings.Default.sqlite = "demo.sqlite3";
#endif

            if (Settings.Default.sqlite == "vortragsmanager.sqlite3" || Settings.Default.sqlite == "demo.sqlite3")
            {
                Settings.Default.sqlite = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + Settings.Default.sqlite;
            }
            var filename = Settings.Default.sqlite;

            if (File.Exists(filename))
            {
                IoSqlite.ReadContainer(filename);
            }
            else
            {
                Initialize.NewDatabase();
            }

            if (!DataContainer.IsInitialized)
            {
                ThemedMessageBox.Show("Fehler", "Vortragsmanager ist nicht initialisiert. Das Programm wird beendet", MessageBoxButton.OK, MessageBoxImage.Error);
                Close();
            }

            InitializeComponent();

            Helper.GlobalSettings = new MyGloabalSettings();
            DataContext           = Helper.GlobalSettings;

            Helper.GlobalSettings.RefreshTitle();

            Updater.CheckForUpdates();
        }
Пример #9
0
 public static void insertarDatosAdmin()
 {
     try
     {
         UnitOfWork uow   = getNewUnitOfWork();
         USUARIOS   admin = new USUARIOS(uow);
         admin.Nombre    = "Administrador";
         admin.Apellidos = "Admin";
         admin.Email     = "*****@*****.**";
         admin.Username  = "******";
         admin.Password  = ComunClass.Encriptar("1234");
         uow.CommitChanges();
     }
     catch (Exception ex)
     {
         ThemedMessageBox.Show("Datos del administrador", "No se han podido insertarlos datos del administrador.", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
        public void Zusagen()
        {
            Log.Info(nameof(Zusagen));
            Sichtbar = false;
            var vortrag = _redner.Vorträge.FirstOrDefault(x => x.Vortrag.Nummer == _vortrag.Nummer);

            if (vortrag == null)
            {
                vortrag = _redner.Vorträge.First();
                ThemedMessageBox.Show("Fehler",
                                      $"Der gewählte Vortrag ist für den Redner nicht mehr verfügbar!" + Environment.NewLine +
                                      $"Als gewählter Vortrag wurde statt dessen Vortrag #{vortrag.Vortrag.Nummer} ausgewählt." + Environment.NewLine +
                                      "Bitte Prüfen und ggfs. korrigieren",
                                      MessageBoxButton.OK,
                                      MessageBoxImage.Warning);
            }
            var i = new Invitation
            {
                Kw           = _selectedKw,
                LetzteAktion = DateTime.Today,
                Status       = EventStatus.Zugesagt,
                Vortrag      = vortrag,
                Ältester     = _redner
            };

            DataContainer.MeinPlanAdd(i);

            _base.BaseAnfrage.RednerVortrag.Remove(_redner);
            _base.Wochen.Remove(SelectedDatum);
            bool anfrageGelöscht = false;

            if ((_base.BaseAnfrage.RednerVortrag.Count == 0) || _base.Wochen.Count == 0)
            {
                DataContainer.OffeneAnfragen.Remove(_base.BaseAnfrage);
                anfrageGelöscht = true;
            }

            ActivityLog.AddActivity.RednerAnfrageZugesagt(i, _base.BaseAnfrage.Mailtext, anfrageGelöscht);
        }
Пример #11
0
            public static bool Versammlung(string filename, bool clear)
            {
                Log.Info(nameof(Versammlung), filename);
                var file = new FileInfo(filename);

                if (clear)
                {
                    DataContainer.Versammlungen.Clear();
                }

                try
                {
                    using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                        using (ExcelPackage package = new ExcelPackage(fs))
                        {
                            ExcelWorksheet worksheet = package.Workbook.Worksheets[1];

                            var row = 2;
                            var id  = 1;
                            if (DataContainer.Versammlungen.Count > 0)
                            {
                                id = DataContainer.Versammlungen.Max(x => x.Id) + 1;
                            }
                            while (true)
                            {
                                var kreis   = Helper.ConvertToString(worksheet.Cells[row, 1].Value);
                                var vers    = Helper.ConvertToString(worksheet.Cells[row, 2].Value);
                                var strasse = Helper.ConvertToString(worksheet.Cells[row, 3].Value);
                                var ort     = Helper.ConvertToString(worksheet.Cells[row, 4].Value);
                                var anreise = Helper.ConvertToString(worksheet.Cells[row, 5].Value);
                                var tel     = Helper.ConvertToString(worksheet.Cells[row, 6].Value);
                                var zoom    = Helper.ConvertToString(worksheet.Cells[row, 7].Value);
                                var zeit    = Helper.ConvertToString(worksheet.Cells[row, 8].Value);

                                var koordName  = Helper.ConvertToString(worksheet.Cells[row, 9].Value);
                                var koordTel   = Helper.ConvertToString(worksheet.Cells[row, 10].Value);
                                var koordHandy = Helper.ConvertToString(worksheet.Cells[row, 11].Value);
                                var koordMail  = Helper.ConvertToString(worksheet.Cells[row, 12].Value);
                                var koordJw    = Helper.ConvertToString(worksheet.Cells[row, 13].Value);

                                if (string.IsNullOrEmpty(kreis))
                                {
                                    kreis = "-1";
                                }

                                if (string.IsNullOrEmpty(vers))
                                {
                                    break;
                                }

                                var v = new Conregation
                                {
                                    Id         = id,
                                    Kreis      = int.Parse(kreis, Helper.German),
                                    Name       = vers,
                                    Anschrift1 = strasse,
                                    Anschrift2 = ort,
                                    Anreise    = anreise,
                                    Telefon    = tel,
                                    Zoom       = zoom,

                                    Koordinator        = koordName,
                                    KoordinatorTelefon = koordTel,
                                    KoordinatorMobil   = koordHandy,
                                    KoordinatorMail    = koordMail,
                                    KoordinatorJw      = koordJw,
                                };

                                //Zusammenkunftszeit in Wochentag + Uhrzeit aufteilen
                                var tag     = DayOfWeeks.Sonntag;
                                var uhrzeit = "Unbekannt";

                                foreach (DayOfWeeks d in (DayOfWeeks[])Enum.GetValues(typeof(DayOfWeeks)))
                                {
                                    if (Helper.GetDayOfWeeks(ref zeit, d))
                                    {
                                        tag     = d;
                                        uhrzeit = zeit.Trim('.', ',', ' ', '-');
                                        break;
                                    }
                                }
                                v.Zeit.Add(DateTime.Today.Year, tag, uhrzeit);

                                DataContainer.Versammlungen.Add(v);

                                row++;
                                id++;
                            }
                        }
                }
                catch (Exception e)
                {
                    ThemedMessageBox.Show("Fehler",
                                          $"Beim Einlesen der Excel-Datei ist es zu folgendem Fehler gekommen\n:{e.Message}",
                                          System.Windows.MessageBoxButton.OK,
                                          System.Windows.MessageBoxImage.Error);
                    return(false);
                }
                return(true);
            }
Пример #12
0
 public static void ShowMessage(string title, string text, MessageBoxImage image)
 {
     ThemedMessageBox.Show(title, text, MessageBoxButton.OK, image);
 }
Пример #13
0
 public static void ShowMessage(Exception ex)
 {
     ThemedMessageBox.Show(Properties.Resources.ApplicationError, String.Format("{0}: {1}", ex.GetType(), ex.Message),
                           MessageBoxButton.OK, MessageBoxImage.Error);
 }
Пример #14
0
 void ShowMessage()
 {
     // MessageBoxService.Show("This is MainView!", "경고!!", System.Windows.MessageBoxButton.YesNo);
     ThemedMessageBox.Show(title: "경고!!", text: "테마 메시지 박스!!", messageBoxButtons: MessageBoxButton.OKCancel, icon: MessageBoxImage.Exclamation);
     // MessageBox.Show("기본 윈도우 메시지 박스!!", "경고!!", MessageBoxButton.OKCancel);
 }
Пример #15
0
            public static bool Redner(string filename, bool clear)
            {
                Log.Info(nameof(Versammlung), filename);
                var file = new FileInfo(filename);

                if (clear)
                {
                    DataContainer.Redner.Clear();
                }

                try
                {
                    using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                        using (ExcelPackage package = new ExcelPackage(fs))
                        {
                            ExcelWorksheet worksheet = package.Workbook.Worksheets[1];

                            var row = 2;
                            while (true)
                            {
                                var versammlung = Helper.ConvertToString(worksheet.Cells[row, 1].Value);
                                var name        = Helper.ConvertToString(worksheet.Cells[row, 2].Value);
                                var vortrag     = Helper.ConvertToString(worksheet.Cells[row, 3].Value);
                                var ältester    = Helper.ConvertToString(worksheet.Cells[row, 4].Value);
                                var aktiv       = Helper.ConvertToString(worksheet.Cells[row, 5].Value);
                                var einladen    = Helper.ConvertToString(worksheet.Cells[row, 6].Value);
                                var mail        = Helper.ConvertToString(worksheet.Cells[row, 7].Value);
                                var jwpub       = Helper.ConvertToString(worksheet.Cells[row, 8].Value);
                                var telefon     = Helper.ConvertToString(worksheet.Cells[row, 9].Value);
                                var handy       = Helper.ConvertToString(worksheet.Cells[row, 10].Value);
                                var notizIntern = Helper.ConvertToString(worksheet.Cells[row, 11].Value);
                                var notizExtern = Helper.ConvertToString(worksheet.Cells[row, 12].Value);
                                row++;

                                if (string.IsNullOrEmpty(versammlung) || versammlung.StartsWith("Name der Versammlung des Redners", true, Helper.German))
                                {
                                    break;
                                }

                                if (string.IsNullOrEmpty(name))
                                {
                                    break;
                                }

                                var con = DataContainer.ConregationFindOrAdd(versammlung);
                                var red = DataContainer.SpeakerFindOrAdd(name, con);

                                var negativliste = new string[] { "NEIN", "N", "NO", "FALSE", "0", "DIENSTAMTGEHILFE", "DAG" };
                                red.Ältester    = Helper.CheckNegativListe(ältester, negativliste);
                                red.Aktiv       = Helper.CheckNegativListe(aktiv, negativliste);
                                red.Einladen    = Helper.CheckNegativListe(einladen, negativliste);
                                red.Mail        = mail;
                                red.JwMail      = jwpub;
                                red.Telefon     = telefon;
                                red.Mobil       = handy;
                                red.InfoPrivate = notizIntern;
                                red.InfoPublic  = notizExtern;
                            }
                        }
                }
                catch (Exception e)
                {
                    ThemedMessageBox.Show("Fehler",
                                          $"Beim Einlesen der Excel-Datei ist es zu folgendem Fehler gekommen\n:{e.Message}",
                                          System.Windows.MessageBoxButton.OK,
                                          System.Windows.MessageBoxImage.Error);
                    return(false);
                }
                return(true);
            }
Пример #16
0
            public static bool EigenePlanungen(string filename)
            {
                Log.Info(nameof(EigenePlanungen), filename);
                try
                {
                    var file = new FileInfo(filename);

                    using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                        using (ExcelPackage package = new ExcelPackage(fs))
                        {
                            ExcelWorksheet worksheet = package.Workbook.Worksheets[1];

                            var row = 2;
                            while (true)
                            {
                                var datum         = Helper.ConvertToString(worksheet.Cells[row, 1].Value);
                                var redner        = Helper.ConvertToString(worksheet.Cells[row, 2].Value);
                                var vortrag       = Helper.ConvertToString(worksheet.Cells[row, 3].Value);
                                var thema         = Helper.ConvertToString(worksheet.Cells[row, 4].Value);
                                var vers          = Helper.ConvertToString(worksheet.Cells[row, 5].Value);
                                var versAdresse   = Helper.ConvertToString(worksheet.Cells[row, 6].Value);
                                var rednerMail    = Helper.ConvertToString(worksheet.Cells[row, 7].Value);
                                var rednerJwpub   = Helper.ConvertToString(worksheet.Cells[row, 8].Value);
                                var rednerTelefon = Helper.ConvertToString(worksheet.Cells[row, 9].Value);
                                row++;


                                if (string.IsNullOrWhiteSpace(datum) || datum.StartsWith("Datum", true, Helper.German))
                                {
                                    break;
                                }

                                if (string.IsNullOrWhiteSpace(redner) && string.IsNullOrWhiteSpace(thema)) //Keine Planung eingetragen
                                {
                                    continue;
                                }

                                var kw = Helper.CalculateWeek(DateTime.Parse(datum.ToString(), Helper.German));

                                if (string.IsNullOrWhiteSpace(redner)) //Special Event eintragen
                                {
                                    var se = new SpecialEvent
                                    {
                                        Kw  = kw,
                                        Typ = SpecialEventTyp.Sonstiges,
                                    };
                                    if (thema.Contains("Weltzentrale"))
                                    {
                                        se.Typ  = SpecialEventTyp.Streaming;
                                        se.Name = thema;
                                    }
                                    else if (thema.Contains("Kreiskongress"))
                                    {
                                        se.Typ = SpecialEventTyp.Kreiskongress;
                                    }
                                    else if (thema.Contains("Sondervortrag") || thema.Contains("Streaming"))
                                    {
                                        se.Typ  = SpecialEventTyp.Streaming;
                                        se.Name = thema;
                                    }
                                    else if (thema.Contains("Regionaler Kongress"))
                                    {
                                        se.Typ = SpecialEventTyp.RegionalerKongress;
                                    }
                                    else if (thema.Contains("Dienstwoche"))
                                    {
                                        se.Typ = SpecialEventTyp.Dienstwoche;
                                    }
                                    else if (thema.Contains("Dienstwoche"))
                                    {
                                        se.Typ = SpecialEventTyp.Dienstwoche;
                                    }
                                    DataContainer.MeinPlanAdd(se);
                                    continue;
                                }

                                var i = new Invitation
                                {
                                    Kw = kw
                                };

                                //Versammlung
                                if (string.IsNullOrWhiteSpace(vers))
                                {
                                    vers = "Unbekannt";
                                }

                                if (string.IsNullOrWhiteSpace(redner))
                                {
                                    redner = "Unbekannt";
                                }

                                var v = DataContainer.ConregationFindOrAdd(vers);
                                var r = DataContainer.SpeakerFindOrAdd(redner, v);
                                i.Ältester = r;

                                if (string.IsNullOrEmpty(i.Ältester.Versammlung.Anschrift1) && !string.IsNullOrEmpty(versAdresse))
                                {
                                    i.Ältester.Versammlung.Anschrift1 = versAdresse;
                                }

                                if (string.IsNullOrEmpty(i.Ältester.Telefon) && !string.IsNullOrEmpty(rednerTelefon))
                                {
                                    i.Ältester.Telefon = rednerTelefon;
                                }
                                if (string.IsNullOrEmpty(i.Ältester.Mail) && !string.IsNullOrEmpty(rednerMail))
                                {
                                    i.Ältester.Mail = rednerMail;
                                }
                                if (string.IsNullOrEmpty(i.Ältester.JwMail) && !string.IsNullOrEmpty(rednerJwpub))
                                {
                                    i.Ältester.JwMail = rednerJwpub;
                                }

                                //Vortrag
                                var vn = int.Parse(vortrag.ToString(), Helper.German);
                                var t  = TalkList.Find(vn);
                                i.Vortrag = new TalkSong(t);
                                if (!i.Ältester.Vorträge.Select(y => y.Vortrag).Contains(t))
                                {
                                    i.Ältester.Vorträge.Add(i.Vortrag);
                                }

                                DataContainer.MeinPlanAdd(i);
                            }
                        }
                }
                catch (Exception e)
                {
                    Log.Error(nameof(EigenePlanungen), e.Message);
                    ThemedMessageBox.Show("Fehler",
                                          $"Beim Einlesen der Excel-Datei ist es zu folgendem Fehler gekommen\n:{e.Message}",
                                          System.Windows.MessageBoxButton.OK,
                                          System.Windows.MessageBoxImage.Error);
                    DataContainer.MeinPlan.Clear();
                    return(false);
                }
                return(true);
            }
Пример #17
0
            public static bool ExternePlanungen(string filename)
            {
                Log.Info(nameof(ExternePlanungen), filename);
                try
                {
                    var file = new FileInfo(filename);

                    using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                        using (ExcelPackage package = new ExcelPackage(fs))
                        {
                            ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
                            var            row       = 2;
                            while (true)
                            {
                                var datum       = Helper.ConvertToString(worksheet.Cells[row, 1].Value);
                                var redner      = Helper.ConvertToString(worksheet.Cells[row, 2].Value);
                                var vortrag     = Helper.ConvertToString(worksheet.Cells[row, 3].Value);
                                var vers        = Helper.ConvertToString(worksheet.Cells[row, 4].Value);
                                var versAdresse = Helper.ConvertToString(worksheet.Cells[row, 5].Value);
                                row++;

                                if (string.IsNullOrWhiteSpace(datum))
                                {
                                    break;
                                }

                                if (datum.StartsWith("Datum", true, Helper.German))
                                {
                                    continue;
                                }

                                if (string.IsNullOrWhiteSpace(redner))
                                {
                                    continue;
                                }

                                if (string.IsNullOrWhiteSpace(vers))
                                {
                                    vers = "Unbekannt";
                                }

                                var kw = Helper.CalculateWeek(DateTime.Parse(datum, Helper.German));

                                var i = new Outside
                                {
                                    Kw = kw
                                };

                                //Redner
                                var r = DataContainer.SpeakerFindOrAdd(redner.ToString(), DataContainer.MeineVersammlung);
                                if (r == null)
                                {
                                    continue;
                                }

                                i.Ältester = r;

                                //Gast-Versammlung
                                if (vers == "Urlaub")
                                {
                                    DataContainer.Abwesenheiten.Add(new Busy(r, kw));
                                    continue;
                                }

                                var v = DataContainer.ConregationFindOrAdd(vers);
                                i.Versammlung = v;

                                if (string.IsNullOrEmpty(i.Ältester.Versammlung.Anschrift1) && !string.IsNullOrEmpty(versAdresse))
                                {
                                    i.Ältester.Versammlung.Anschrift1 = versAdresse;
                                }

                                var vn = int.Parse(vortrag.ToString(), Helper.German);

                                //Vortrag
                                var t = TalkList.Find(vn);
                                i.Vortrag = new TalkSong(t);
                                if (!i.Ältester.Vorträge.Select(y => y.Vortrag).Contains(t))
                                {
                                    i.Ältester.Vorträge.Add(i.Vortrag);
                                }

                                if (!DataContainer.ExternerPlan.Any(x => x.Kw == i.Kw && x.Ältester == i.Ältester))
                                {
                                    DataContainer.ExternerPlan.Add(i);
                                }
                            }
                        }
                }
                catch (Exception e)
                {
                    Log.Error(nameof(ExternePlanungen), e.Message);
                    ThemedMessageBox.Show("Fehler",
                                          $"Beim Einlesen der Excel-Datei ist es zu folgendem Fehler gekommen\n:{e.Message}",
                                          System.Windows.MessageBoxButton.OK,
                                          System.Windows.MessageBoxImage.Error);
                    DataContainer.ExternerPlan.Clear();
                    return(false);
                }
                return(true);
            }