commit 8a812b7eaca02299215c4416afc1b8ccff9ae135
Author: github-classroom[bot] <66690702+github-classroom[bot]@users.noreply.github.com>
Date: Thu Jan 8 10:40:56 2026 +0000
Initial commit
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cc7b141
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,42 @@
+# See https://docs.github.com/get-started/getting-started-with-git/ignoring-files for more about ignoring files.
+
+# Compiled output
+/dist
+/tmp
+/out-tsc
+/bazel-out
+
+# Node
+/node_modules
+npm-debug.log
+yarn-error.log
+
+# IDEs and editors
+.idea/
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# Visual Studio Code
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+.history/*
+
+# Miscellaneous
+/.angular/cache
+.sass-cache/
+/connect.lock
+/coverage
+/libpeerconnection.log
+testem.log
+/typings
+
+# System files
+.DS_Store
+Thumbs.db
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..6bacd8e
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+"# 09-SpaceShuttle"
diff --git a/SpaceShuttle.csv b/SpaceShuttle.csv
new file mode 100644
index 0000000..cbf802b
--- /dev/null
+++ b/SpaceShuttle.csv
@@ -0,0 +1,9 @@
+Name;OVNo;Remark
+Independence;OV-100;Ehemals Explorer, ist ein originalgetreuer Nachbau der Raumgleiter. Er steht im Johnson Space Center
+Pathfinder;OV-098;Ein nicht flugfähiges Handlingmodell aus Stahl. Es wurde zum Erproben und Einüben der Abläufe am Boden eingesetzt.
+Enterprise;OV-101;Ein flug-, jedoch nicht raumflugtauglicher Prototyp, der für Gleitversuche und für Flugversuche auf dem Rücken des Shuttle Carrier Aircrafts eingesetzt wurde
+Columbia;OV-102;erster raumflugfähiger Orbiter, am 1. Februar 2003 beim Wiedereintritt durch defekte Hitzeschutzverkleidung zerstört. Alle 7 Besatzungsmitglieder kamen dabei ums Leben.
+Challenger;OV-099;am 28. Januar 1986 kurz nach dem Start durch einen Defekt an einem Feststoffbooster zerstört. Alle 7 Besatzungsmitglieder kamen dabei ums Leben.
+Discovery;OV-103;letzte Landung am 9. März 2011, Exponat im Steven F. Udvar-Hazy Center seit dem 19. April 2012
+Atlantis;OV-104;letzte Landung am 21. Juli 2011, Exponat im Kennedy Space Center
+Endeavour;OV-105;letzte Landung am 1. Juni 2011, Ersatzorbiter für Challenger, Exponat im California Science Center
\ No newline at end of file
diff --git a/SpaceShuttle.sln b/SpaceShuttle.sln
new file mode 100644
index 0000000..05f6de5
--- /dev/null
+++ b/SpaceShuttle.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32210.238
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SpaceShuttle", "SpaceShuttle\SpaceShuttle.csproj", "{1D17AEAC-E387-4027-BA7C-3E327453E528}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1D17AEAC-E387-4027-BA7C-3E327453E528}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1D17AEAC-E387-4027-BA7C-3E327453E528}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1D17AEAC-E387-4027-BA7C-3E327453E528}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1D17AEAC-E387-4027-BA7C-3E327453E528}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {8E039742-FC97-46AF-9602-39FD513A6A88}
+ EndGlobalSection
+EndGlobal
diff --git a/SpaceShuttle.sln.DotSettings b/SpaceShuttle.sln.DotSettings
new file mode 100644
index 0000000..340a79b
--- /dev/null
+++ b/SpaceShuttle.sln.DotSettings
@@ -0,0 +1,113 @@
+
+
+ ExplicitlyExcluded
+ ExplicitlyExcluded
+ 39FD3420-6140-4A24-82D3-2E9FB14B096E/d:ClientApp/d:dist
+ 972C43C8-8BF9-41FA-BA3C-299AC44A6938/d:Migrations
+ BD772F21-D4E2-4577-9AF3-FBE59BB72C03/d:Migrations
+ D2B2F798-28FC-4515-966F-B92C3D11D3F2/d:ClientApp/d:dist
+
+ clipper.cs
+ package-lock.json
+
+ SUGGESTION
+ SUGGESTION
+
+ True
+ True
+ 1
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ True
+
+ 250
+ 20000
+ 250
+ True
+ True
+
+ CRUD
+ CNC
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+
+ False
+ True
+ True
+
+ DO_NOTHING
+ LIVE_MONITOR
+ LIVE_MONITOR
+ DO_NOTHING
+ LIVE_MONITOR
+ LIVE_MONITOR
+ LIVE_MONITOR
+ LIVE_MONITOR
+ LIVE_MONITOR
+ LIVE_MONITOR
+ LIVE_MONITOR
+ LIVE_MONITOR
+ DO_NOTHING
+ LIVE_MONITOR
+
+ True
+ True
+ True
+ True
+ True
+
+ True
+ True
+ True
+ True
+ True
\ No newline at end of file
diff --git a/SpaceShuttle/Program.cs b/SpaceShuttle/Program.cs
new file mode 100644
index 0000000..43cf470
--- /dev/null
+++ b/SpaceShuttle/Program.cs
@@ -0,0 +1,67 @@
+/*--------------------------------------------------------------
+* HTBLA-Leonding / Class: 1xHIF
+*--------------------------------------------------------------
+* Musterlösung-HA
+*--------------------------------------------------------------
+* Description: SpaceShuttle
+*--------------------------------------------------------------
+*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+
+using SpaceShuttle;
+using SpaceShuttle.Tools;
+
+Console.WriteLine("Space-Shuttle");
+Console.WriteLine("=====================");
+
+string fileNameShuttle = "SpaceShuttle.csv";
+string fileNameShuttleName = "SpaceShuttleName.csv";
+string fileNameShuttleStart = "SpaceShuttleStart.csv";
+
+var shuttle = new CsvImport()
+{
+ DateFormat = "dd.MM.yyyy",
+ TimeFormat = "H:m"
+}.Read(fileNameShuttle);
+
+var shuttleName = new CsvImport().Read(fileNameShuttleName);
+
+var shuttleStart = new CsvImport()
+{
+ DateFormat = "dd.MM.yyyy",
+ TimeFormat = "H:m"
+}.Read(fileNameShuttleStart);
+
+#region Task1
+
+//ToDo: Task1
+
+#endregion
+
+#region Task2
+
+//ToDo: Task2
+
+#endregion
+
+#region Task3 - join
+
+//ToDo: Task3
+
+#endregion
+
+#region Task4 - join-join
+
+//ToDo: Task4
+
+#endregion
+
+#region Task5 - join-group
+
+//ToDo: Task5
+
+#endregion
diff --git a/SpaceShuttle/SpaceShuttle.cs b/SpaceShuttle/SpaceShuttle.cs
new file mode 100644
index 0000000..4622899
--- /dev/null
+++ b/SpaceShuttle/SpaceShuttle.cs
@@ -0,0 +1,15 @@
+/*--------------------------------------------------------------
+* HTBLA-Leonding / Class: 1xHIF
+*--------------------------------------------------------------
+* Musterlösung-HA
+*--------------------------------------------------------------
+* Description: SpaceShuttle
+*--------------------------------------------------------------
+*/
+
+namespace SpaceShuttle;
+
+public class SpaceShuttle
+{
+ //ToDo: Properties for SpaceShuttle
+}
\ No newline at end of file
diff --git a/SpaceShuttle/SpaceShuttle.csproj b/SpaceShuttle/SpaceShuttle.csproj
new file mode 100644
index 0000000..45b266c
--- /dev/null
+++ b/SpaceShuttle/SpaceShuttle.csproj
@@ -0,0 +1,22 @@
+
+
+
+ Exe
+ net9.0
+
+ enable
+
+
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+
+
diff --git a/SpaceShuttle/SpaceShuttleName.cs b/SpaceShuttle/SpaceShuttleName.cs
new file mode 100644
index 0000000..7307bed
--- /dev/null
+++ b/SpaceShuttle/SpaceShuttleName.cs
@@ -0,0 +1,15 @@
+/*--------------------------------------------------------------
+* HTBLA-Leonding / Class: 1xHIF
+*--------------------------------------------------------------
+* Musterlösung-HA
+*--------------------------------------------------------------
+* Description: SpaceShuttle
+*--------------------------------------------------------------
+*/
+
+namespace SpaceShuttle;
+
+public class SpaceShuttleName
+{
+ //ToDo: Properties for SpaceShuttleName
+}
\ No newline at end of file
diff --git a/SpaceShuttle/SpaceShuttleStart.cs b/SpaceShuttle/SpaceShuttleStart.cs
new file mode 100644
index 0000000..ea646bc
--- /dev/null
+++ b/SpaceShuttle/SpaceShuttleStart.cs
@@ -0,0 +1,17 @@
+/*--------------------------------------------------------------
+* HTBLA-Leonding / Class: 1xHIF
+*--------------------------------------------------------------
+* Musterlösung-HA
+*--------------------------------------------------------------
+* Description: SpaceShuttle
+*--------------------------------------------------------------
+*/
+
+namespace SpaceShuttle;
+
+using System;
+
+public class SpaceShuttleStart
+{
+ //ToDo: Properties for SpaceShuttleStart
+}
\ No newline at end of file
diff --git a/SpaceShuttle/Tools/CsvImport.cs b/SpaceShuttle/Tools/CsvImport.cs
new file mode 100644
index 0000000..ded8626
--- /dev/null
+++ b/SpaceShuttle/Tools/CsvImport.cs
@@ -0,0 +1,328 @@
+/*
+ This file is part of https://github.com/aiten/Framework.
+
+ Copyright (c) Herbert Aitenbichler
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+namespace SpaceShuttle.Tools;
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Reflection;
+using System.Threading.Tasks;
+
+public class CsvImport : CsvImportBase where T : class
+{
+ public CsvImport()
+ {
+ if (typeof(T).GetCustomAttributes(typeof(CsvImportFormatAttribute)).FirstOrDefault() is CsvImportFormatAttribute formatAttribute)
+ {
+ if (!string.IsNullOrEmpty(formatAttribute.Format)) throw new ArgumentException("cannot use format for class attribute");
+ if (!string.IsNullOrEmpty(formatAttribute.Culture))
+ {
+ DateTimeCultureInfo = CultureInfo.GetCultureInfo(formatAttribute.Culture);
+ NumberFormat = DateTimeCultureInfo.NumberFormat;
+ }
+ }
+ }
+
+ public class ColumnMapping
+ {
+ public required string ColumnName { get; set; }
+
+ public PropertyInfo? MapTo { get; set; }
+ public bool Ignore { get; set; }
+
+ public string? CsvFormat { get; set; }
+
+ public CultureInfo? DateTimeCultureInfo { get; set; }
+
+ public NumberFormatInfo? NumberFormat { get; set; }
+
+#pragma warning disable CS8632 // The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
+ public Func? GetValue { get; set; }
+ public Func