refactor: update class information and implement shuttle tasks
This commit is contained in:
parent
158e3f5f07
commit
ae43af0c92
@ -1,18 +1,15 @@
|
||||
/*--------------------------------------------------------------
|
||||
* HTBLA-Leonding / Class: 1xHIF
|
||||
* HTBLA-Leonding / Class: 4CHIF
|
||||
*--------------------------------------------------------------
|
||||
* Musterlösung-HA
|
||||
* Hinterdorfer Jonas
|
||||
*--------------------------------------------------------------
|
||||
* Description: SpaceShuttle
|
||||
*--------------------------------------------------------------
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
|
||||
using SpaceShuttle;
|
||||
using SpaceShuttle.Tools;
|
||||
|
||||
Console.WriteLine("Space-Shuttle");
|
||||
@ -38,30 +35,96 @@ var shuttleStart = new CsvImport<SpaceShuttle.SpaceShuttleStart>()
|
||||
|
||||
#region Task1
|
||||
|
||||
//ToDo: Task1
|
||||
Console.WriteLine("\nTask 1: All Space Shuttles");
|
||||
Console.WriteLine("==========================");
|
||||
var task1 = shuttle.Select(s => s);
|
||||
|
||||
foreach (var s in task1)
|
||||
{
|
||||
Console.WriteLine($"{s.Name,-15} {s.OVNo,-10} {s.Remark}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Task2
|
||||
|
||||
//ToDo: Task2
|
||||
Console.WriteLine("\nTask 2: All Shuttle Starts ordered by Launch Date");
|
||||
Console.WriteLine("==================================================");
|
||||
var task2 = shuttleStart.OrderBy(s => s.LaunchDate);
|
||||
|
||||
foreach (var s in task2)
|
||||
{
|
||||
Console.WriteLine($"{s.No,3} {s.LaunchDate:dd.MM.yyyy} {s.Mission,-15} {s.Shuttle,-15} {s.LaunchPad,-10}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Task3 - join
|
||||
|
||||
//ToDo: Task3
|
||||
Console.WriteLine("\nTask 3: Shuttle Starts with Name Origin (Join)");
|
||||
Console.WriteLine("===============================================");
|
||||
var task3 = shuttleStart.Join(
|
||||
shuttleName,
|
||||
start => start.Shuttle,
|
||||
name => name.ShuttleName,
|
||||
(start, name) => new { start.No, start.LaunchDate, start.Mission, start.Shuttle, name.ShipLiveNameFrom, name.NameFrom }
|
||||
);
|
||||
|
||||
foreach (var s in task3)
|
||||
{
|
||||
Console.WriteLine($"{s.No,3} {s.LaunchDate:dd.MM.yyyy} {s.Mission,-15} {s.Shuttle,-15} {s.ShipLiveNameFrom,-20}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Task4 - join-join
|
||||
|
||||
//ToDo: Task4
|
||||
Console.WriteLine("\nTask 4: Complete Shuttle Information (Double Join)");
|
||||
Console.WriteLine("===================================================");
|
||||
var task4 = shuttleStart.Join(
|
||||
shuttleName,
|
||||
start => start.Shuttle,
|
||||
name => name.ShuttleName,
|
||||
(start, name) => new { start, name }
|
||||
).Join(
|
||||
shuttle,
|
||||
temp => temp.start.Shuttle,
|
||||
sh => sh.Name,
|
||||
(temp, sh) => new { temp.start.No, temp.start.LaunchDate, temp.start.Mission, temp.start.Shuttle, sh.OVNo, temp.name.NameFrom }
|
||||
);
|
||||
|
||||
foreach (var s in task4.Take(10))
|
||||
{
|
||||
Console.WriteLine($"{s.No,3} {s.LaunchDate:dd.MM.yyyy} {s.Mission,-15} {s.Shuttle,-15} {s.OVNo,-10}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Task5 - join-group
|
||||
|
||||
//ToDo: Task5
|
||||
Console.WriteLine("\nTask 5: Shuttle Starts Grouped by Shuttle (Join-Group)");
|
||||
Console.WriteLine("=======================================================");
|
||||
var task5 = shuttleStart
|
||||
.Join(
|
||||
shuttle,
|
||||
start => start.Shuttle,
|
||||
sh => sh.Name,
|
||||
(start, sh) => new { start, sh }
|
||||
).GroupBy(
|
||||
x => new { x.start.Shuttle, x.sh.OVNo }
|
||||
).Select(
|
||||
g => new {
|
||||
g.Key.Shuttle,
|
||||
g.Key.OVNo,
|
||||
Count = g.Count(),
|
||||
FirstLaunch = g.Min(s => s.start.LaunchDate),
|
||||
LastLaunch = g.Max(s => s.start.LaunchDate)
|
||||
}
|
||||
);
|
||||
|
||||
foreach (var s in task5)
|
||||
{
|
||||
Console.WriteLine($"{s.Shuttle,-15} {s.OVNo,-10} Missions: {s.Count,3} First: {s.FirstLaunch:dd.MM.yyyy} Last: {s.LastLaunch:dd.MM.yyyy}");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*--------------------------------------------------------------
|
||||
* HTBLA-Leonding / Class: 1xHIF
|
||||
* HTBLA-Leonding / Class: 4CHIF
|
||||
*--------------------------------------------------------------
|
||||
* Musterlösung-HA
|
||||
* Hinterdorfer Jonas
|
||||
*--------------------------------------------------------------
|
||||
* Description: SpaceShuttle
|
||||
*--------------------------------------------------------------
|
||||
@ -11,5 +11,7 @@ namespace SpaceShuttle;
|
||||
|
||||
public class SpaceShuttle
|
||||
{
|
||||
//ToDo: Properties for SpaceShuttle
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string OVNo { get; set; } = string.Empty;
|
||||
public string Remark { get; set; } = string.Empty;
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
/*--------------------------------------------------------------
|
||||
* HTBLA-Leonding / Class: 1xHIF
|
||||
* HTBLA-Leonding / Class: 4CHIF
|
||||
*--------------------------------------------------------------
|
||||
* Musterlösung-HA
|
||||
* Hinterdorfer Jonas
|
||||
*--------------------------------------------------------------
|
||||
* Description: SpaceShuttle
|
||||
*--------------------------------------------------------------
|
||||
@ -11,5 +11,7 @@ namespace SpaceShuttle;
|
||||
|
||||
public class SpaceShuttleName
|
||||
{
|
||||
//ToDo: Properties for SpaceShuttleName
|
||||
public string ShuttleName { get; set; } = string.Empty;
|
||||
public string ShipLiveNameFrom { get; set; } = string.Empty;
|
||||
public string NameFrom { get; set; } = string.Empty;
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
/*--------------------------------------------------------------
|
||||
* HTBLA-Leonding / Class: 1xHIF
|
||||
* HTBLA-Leonding / Class: 4CHIF
|
||||
*--------------------------------------------------------------
|
||||
* Musterlösung-HA
|
||||
* Hinterdorfer Jonas
|
||||
*--------------------------------------------------------------
|
||||
* Description: SpaceShuttle
|
||||
*--------------------------------------------------------------
|
||||
@ -13,5 +13,11 @@ using System;
|
||||
|
||||
public class SpaceShuttleStart
|
||||
{
|
||||
//ToDo: Properties for SpaceShuttleStart
|
||||
public int No { get; set; }
|
||||
public DateTime LaunchDate { get; set; }
|
||||
public string Mission { get; set; } = string.Empty;
|
||||
public string Shuttle { get; set; } = string.Empty;
|
||||
public string LaunchPad { get; set; } = string.Empty;
|
||||
public string LandingSite { get; set; } = string.Empty;
|
||||
public string Notes { get; set; } = string.Empty;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user