public ConregationViewModel(Conregation versammlung, ConregationsViewModelCollection all) { _all = all; Versammlung = versammlung; _myConregation = versammlung == DataContainer.MeineVersammlung; RednerListe = new SpeakersViewModelCollection(versammlung); DeleteCommand = new DelegateCommand <object>(Delete); NewPersonCommand = new DelegateCommand(NewPerson); CalculateDistanceCommand = new DelegateCommand(CalculateDistance); AddZeitCommand = new DelegateCommand(AddZusammenkunftszeit); _zusammenkunftszeitenItems = new ObservableCollection <ZeitItem>(); var zeitItems = new List <Zusammenkunftszeit>(1) { Versammlung.Zeit.Get(DateTime.Today.Year) }; zeitItems.AddRange(Versammlung.Zeit.Items.Where(x => x.Jahr >= DateTime.Today.Year && x != zeitItems[0])); if (zeitItems.Count == 0) { zeitItems.Add(Versammlung.Zeit.GetLastItem()); } foreach (var eintrag in zeitItems) { var uiItem = new ZeitItem(eintrag, _zusammenkunftszeitenItems, Versammlung.Zeit, _myConregation); _zusammenkunftszeitenItems.Add(uiItem); } }
public static int?GetDistance(Conregation start, Conregation end) { if (start is null || end is null) { Log.Info(nameof(GetDistance), $"start oder end is null"); return(null); } Log.Info(nameof(GetDistance), $"start={start.Name}, end={end.Name}"); if (start == null || end == null) { return(null); } var startAdress = start.Anschrift1 + " " + start.Anschrift2; if (string.IsNullOrWhiteSpace(startAdress)) { startAdress = start.Name; } var endAdress = end.Anschrift1 + " " + end.Anschrift2; if (string.IsNullOrWhiteSpace(endAdress)) { endAdress = end.Name; } return(GetDistance(startAdress, endAdress)); }
private static void OnConregationChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var sh = (DropDownVersammlung)d; //sh.SelectedName = ((Conregation)e.NewValue).Name; Conregation oldC = (Conregation)e.OldValue; Conregation newC = (Conregation)e.NewValue; sh.OnConregationChanged(oldC, newC); }
public SpeakersViewModelCollection(Conregation versammlung) { var redner = DataContainer.Redner.Where(x => x.Versammlung == versammlung).OrderBy(x => x.Name); foreach (Speaker r in redner) { Add(new SpeakerViewModel(r)); } }
public static DateTime CalculateWeek(int week, Conregation versammlung) { //am ersten Montag im Jahr beginnt kw1 var jahr = week / 100; var kw = week - jahr * 100 - 1; DateTime tag1 = GetFirstMondayOfYear(jahr); var day = versammlung.Zeit.Get(jahr).Tag; //Tag 1 + KW Wochen = Montag in der KW + Wochentag der Vers. tag1 = tag1.AddDays((kw) * 7).AddDays((int)day - 1); if (day == DayOfWeeks.Sonntag) { tag1 = tag1.AddDays(7); } return(tag1); }
public static void BuchungVerschieben(IEvent buchung, string mailtext, DateTime datumAlt, string zielBuchung, string header) { Conregation versammlung = null; Speaker redner = null; Talk vortrag = null; int kw = buchung.Kw; var objekt = $"{zielBuchung}{Environment.NewLine}" + $"Datum: " + datumAlt.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture) + " → " + Core.Helper.CalculateWeek(buchung.Kw).ToString("dd.MM.yyyy", CultureInfo.InvariantCulture); var rednereinladung = (buchung as Invitation); if (rednereinladung != null) { redner = rednereinladung.Ältester; versammlung = redner.Versammlung; vortrag = rednereinladung.Vortrag.Vortrag; objekt += $"{Environment.NewLine}Vortrag: {rednereinladung.Vortrag.Vortrag.NumberTopicShort}"; } var ereignis = (buchung as SpecialEvent); if (ereignis != null) { versammlung = DataContainer.MeineVersammlung; if (!string.IsNullOrEmpty(ereignis.Name)) { objekt += $"{Environment.NewLine}Ereignis: {ereignis.Name}{Environment.NewLine}"; //EventName } else { objekt += $"{Environment.NewLine}Ereignis: {ereignis.Typ}{Environment.NewLine}"; //EventName } if (!string.IsNullOrEmpty(ereignis.Vortragender)) { objekt += $"Redner: {ereignis.Vortragender}{Environment.NewLine}"; //Redner } if (ereignis.Vortrag != null) { vortrag = ereignis.Vortrag.Vortrag; objekt += $"Thema: {ereignis.Vortrag.Vortrag.NumberTopicShort}"; } else if (!string.IsNullOrEmpty(ereignis.Thema)) { objekt += $"Thema: {ereignis.Thema}"; } } var anfrage = (buchung as Inquiry); if (anfrage != null) { versammlung = anfrage.Versammlung; } var log = new Activity { Typ = Types.BuchungVerschieben, Versammlung = versammlung, Redner = redner, Mails = mailtext, KalenderKw = kw, Vortrag = vortrag, Objekt = objekt, Kommentar = header }; Add(log); }
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); }