Inheritance: MonoBehaviour
Exemplo n.º 1
0
        public static void Update()
        {
            Log.Info(nameof(Update));

            if (DataContainer.Version < 3)
            {
                TalkList.Add(56, "Wessen Führung kannst du vertrauen?");
                TalkList.Add(-1, "Unbekannt", false);
            }

            if (DataContainer.Version < 11)
            {
                // => IoSqlite.UpdateDatabase(); -- Bestehender Vortrag 24 auf -24 geändert
                TalkList.Add(24, "„Eine besonders kostbare Perle“ – habe ich sie gefunden?");
            }

            if (DataContainer.Version < 15)
            {
                DataContainer.AufgabenPersonZuordnung.Add(new AufgabenZuordnung(-1)
                {
                    PersonName = "Nicht Vorgesehen", IsVorsitz = true, IsLeser = true, Häufigkeit = 1
                });
            }

            if (DataContainer.Version < 16)
            {
                TalkList.Reset();
            }

            //auf aktuellste Version setzen = 17
            //siehe auch IoSqlite.UpdateDatabase
            DataContainer.Version = Helper.CurrentVersion;
        }
 public DropDownVortrag()
 {
     ListeAlle = TalkList.Get().ToList();
     foreach (var item in ListeAlle)
     {
         ListeFilteredItems.Add(item);
     }
     InitializeComponent();
 }
Exemplo n.º 3
0
        public static void LoadTalks()
        {
            var myTalks = LoadDefaultTalks();

            TalkList.Clear();
            foreach (var t in myTalks)
            {
                TalkList.Add(t);
            }
        }
Exemplo n.º 4
0
            internal static void OverviewTalkCount(bool openReport)
            {
                Log.Info(nameof(OverviewTalkCount), "");
                var tempFile = Path.GetTempFileName();
                var excel    = new FileInfo(tempFile);
                var vers     = DataContainer.MeineVersammlung;
                var kreis    = vers.Kreis;

                using (ExcelPackage package = new ExcelPackage())
                {
                    ExcelWorksheet sheet = package.Workbook.Worksheets.Add($"Vorträge");

                    sheet.Column(1).Width = 10;
                    sheet.Column(2).Width = 50;
                    sheet.Column(3).Width = 10;
                    sheet.Column(5).Width = 15;

                    sheet.Cells[1, 1].Value = "Anzahl der Ausarbeitungen der Vorträge";

                    sheet.Cells[2, 1, 2, 4].Style.Font.Bold = true;
                    sheet.Cells[2, 1].Value = "Nr";
                    sheet.Cells[2, 2].Value = "Thema";
                    sheet.Cells[2, 3].Value = "Versammlung";
                    sheet.Cells[2, 4].Value = "Kreis";
                    sheet.Cells[2, 5].Value = "zuletzt gehört";

                    var row = 3;
                    foreach (var v in TalkList.Get())
                    {
                        sheet.Cells[row, 1].Value = v.Nummer;
                        sheet.Cells[row, 2].Value = v.Thema;
                        sheet.Cells[row, 3].Value = DataContainer.Redner.Where(x => x.Versammlung == vers && x.Vorträge.Select(y => y.Vortrag).Contains(v)).Count();
                        sheet.Cells[row, 4].Value = DataContainer.Redner.Where(x => x.Versammlung.Kreis == kreis && x.Vorträge.Select(y => y.Vortrag).Contains(v)).Count();
                        var wochen = DataContainer.MeinPlan.Where(x => x.Vortrag?.Vortrag?.Nummer == v.Nummer);
                        if (wochen.Any())
                        {
                            var zuletzt = wochen.Select(x => x.Kw).Max();
                            sheet.Cells[row, 5].Value = Core.Helper.CalculateWeek(zuletzt);
                        }

                        row++;
                    }

                    //create a range for the table
                    ExcelRange range = sheet.Cells[2, 1, row - 1, 5];
                    ExcelTable tab   = sheet.Tables.Add(range, "Table1");
                    tab.TableStyle = TableStyles.Medium2;

                    range = sheet.Cells[2, 5, row - 1, 5];
                    range.Style.Numberformat.Format = "dd.mm.yyyy";

                    package.SaveAs(excel);
                }
                File.Save(tempFile, "Vortragsthemen.xlsx", openReport);
            }
Exemplo n.º 5
0
 public static void Reset()
 {
     DataContainer.Version          = Helper.CurrentVersion;
     DataContainer.IsInitialized    = false;
     DataContainer.MeineVersammlung = null;
     DataContainer.ExternerPlan.Clear();
     DataContainer.MeinPlan.Clear();
     DataContainer.OffeneAnfragen.Clear();
     DataContainer.Redner.Clear();
     DataContainer.Versammlungen.Clear();
     TalkList.Clear();
 }
Exemplo n.º 6
0
        public static void UpdateSpeakers(string File)
        {
            Log.Info(nameof(UpdateSpeakers), File);
            var fi = new FileInfo(File);

            using (ExcelPackage package = new ExcelPackage(fi))
            {
                ExcelWorksheet worksheet = package.Workbook.Worksheets["Redner"];
                var            row       = 2;
                var            id        = DataContainer.Redner.Count > 0 ? DataContainer.Redner.Select(x => x.Id).Max() + 1 : 1;
                while (true)
                {
                    var vers = worksheet.Cells[row, 1].Value;
                    var name = worksheet.Cells[row, 2].Value;
                    var vort = worksheet.Cells[row, 3].Value;

                    if (vers == null)
                    {
                        break;
                    }

                    //Versammlung
                    var rednerVersammlung = DataContainer.ConregationFindOrAdd(vers.ToString());

                    var s = DataContainer.SpeakerFind(name.ToString(), rednerVersammlung);
                    if (s == null)
                    {
                        s = new Speaker
                        {
                            Name        = name.ToString(),
                            Id          = id,
                            Versammlung = rednerVersammlung,
                        };
                        DataContainer.Redner.Add(s);
                        id++;
                    }

                    //Vorträge
                    var meineVotrgäge = vort.ToString().Split(new[] { ';', ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var v in meineVotrgäge)
                    {
                        var nr = int.Parse(v, Helper.German);
                        var t  = TalkList.Find(nr);
                        if (!(t is null) && !s.Vorträge.Select(y => y.Vortrag).Contains(t))
                        {
                            s.Vorträge.Add(new TalkSong(t));
                        }
                    }

                    row++;
                }
            } // the using statement automatically calls Dispose() which closes the package.
        }
Exemplo n.º 7
0
        /// <summary>
        /// Talk、Whisperを追加登録する
        /// </summary>
        /// <param name="gameInfo"></param>
        private void ApendTalkList(GameInfo gameInfo)
        {
            LatestTalkList.Clear();

            for (int i = TalkList.Count; i < gameInfo.TalkList.Count; i++)
            {
                ExtTalk newTalk = new ExtTalk(gameInfo.TalkList[i]);
                TalkList.Add(newTalk);
                LatestTalkList.Add(newTalk);
            }

            for (int i = WhisperList.Count; i < gameInfo.WhisperList.Count; i++)
            {
                WhisperList.Add(new ExtTalk(gameInfo.WhisperList[i]));
            }

            // 発言で宣言した投票先を取得
            SaidVote = new VoteAnalyzer(DayTimeAliveAgent, TalkList, Topic.VOTE);
        }
Exemplo n.º 8
0
        /// <summary>
        /// This is the inner method which would be called by the outer layer to schedule the talks using engine
        /// </summary>
        /// <param name="sessionDuration">This is the session duration for the particular session, this is the capacity for the knapsack</param>
        /// <param name="talks">These are the items wih duration as values. The engine will return the best matching items using engine</param>
        /// <returns></returns>
        public ITalkList ScheduleTalksForEachTrack(int sessionDuration, IList <ITalk> talks)
        {
            try
            {
                ITalkList    talkList        = new TalkList();
                List <ITalk> talksFromEngine = engine.GetTheBestSuitableItem(sessionDuration, talks);

                foreach (var item in talksFromEngine)
                {
                    talkList.Add(item);
                }

                ChangeTheTalkStatusToSchedule(talkList, talks);
                return(talkList);
            }
            catch (Exception ex)
            {
                Log.LogInfo(ex.StackTrace);
                throw;
            }
        }
Exemplo n.º 9
0
 public void AddTalk(Agent agent, Talk talk)
 {
     TalkList.Add(talk);
 }
Exemplo n.º 10
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);
            }
Exemplo n.º 11
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);
            }
Exemplo n.º 12
0
 public EreignisEintragenCommandDialogView()
 {
     CloseCommand  = new DelegateCommand <ICloseable>(Schließen);
     SaveCommand   = new DelegateCommand <ICloseable>(Save);
     Vortragsliste = new ObservableCollection <Talk>(TalkList.Get());
 }