예제 #1
0
 internal int SimulateOneStep()
 {
     Warteschlange.Step();
     foreach (var server in Servers)
     {
         server.Step(Warteschlange);
     }
     return(Warteschlange.AnzahlVideos);
 }
예제 #2
0
        internal override void CreateExcel()
        {
            // Benutze die EPPlus library um ein Excel zu erstellen
            using (var excelPackage = new ExcelPackage())
            {
                var ws = excelPackage.Workbook.Worksheets.Add("Simulation");

                // Überschriften
                ws.Cells[1, 1].Value = "Zeitpunkt";
                ws.Cells[1, 2].Value = "Neu in Warteschlange";
                for (int s = 0; s < Servers.Count; s++)
                {
                    ws.Cells[1, s + 3].Value = $"Neu auf {s + 1}. Server";
                }
                ws.Cells[1, Servers.Count + 3].Value = "Anzahl in Warteschlange";

                var steps = Umgebung.AnzahlZeitschritte * Umgebung.Zeitschritt;
                for (int i = 0; i < steps; i++)
                {
                    var row = i + 2;
                    ws.Cells[row, 1].Value = (0 + Umgebung.Zeitschritt) * (i + 1);
                    ws.Cells[row, 2].Value = Warteschlange.Step();
                    for (int s = 0; s < Servers.Count; s++)
                    {
                        ws.Cells[row, s + 3].Value = Servers[s].Step(Warteschlange);
                    }
                    ws.Cells[row, Servers.Count + 3].Value = Warteschlange.AnzahlVideos;
                }

                // Die Spaltengrössen auf den Inhalt anpassen
                ws.Column(1).AutoFit();
                ws.Column(2).AutoFit();
                for (int s = 0; s < Servers.Count; s++)
                {
                    ws.Column(s + 3).AutoFit();
                }
                ws.Column(Servers.Count + 3).AutoFit();

                // Dateinamen generieren und Excel an diesem Ort erstellen
                var excelFile = GetFilePath();
                excelPackage.SaveAs(excelFile);

                // Nach dem Erstellen des Excel files soll dieses gleich im Excel angezeigt werden
                Process.Start(excelFile.FullName);
            }
        }