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
|
* Description: SpaceShuttle
|
||||||
*--------------------------------------------------------------
|
*--------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
using SpaceShuttle;
|
|
||||||
using SpaceShuttle.Tools;
|
using SpaceShuttle.Tools;
|
||||||
|
|
||||||
Console.WriteLine("Space-Shuttle");
|
Console.WriteLine("Space-Shuttle");
|
||||||
@ -38,30 +35,96 @@ var shuttleStart = new CsvImport<SpaceShuttle.SpaceShuttleStart>()
|
|||||||
|
|
||||||
#region Task1
|
#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
|
#endregion
|
||||||
|
|
||||||
#region Task2
|
#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
|
#endregion
|
||||||
|
|
||||||
#region Task3 - join
|
#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
|
#endregion
|
||||||
|
|
||||||
#region Task4 - join-join
|
#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
|
#endregion
|
||||||
|
|
||||||
#region Task5 - join-group
|
#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
|
#endregion
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------------------------------------
|
/*--------------------------------------------------------------
|
||||||
* HTBLA-Leonding / Class: 1xHIF
|
* HTBLA-Leonding / Class: 4CHIF
|
||||||
*--------------------------------------------------------------
|
*--------------------------------------------------------------
|
||||||
* Musterlösung-HA
|
* Hinterdorfer Jonas
|
||||||
*--------------------------------------------------------------
|
*--------------------------------------------------------------
|
||||||
* Description: SpaceShuttle
|
* Description: SpaceShuttle
|
||||||
*--------------------------------------------------------------
|
*--------------------------------------------------------------
|
||||||
@ -11,5 +11,7 @@ namespace SpaceShuttle;
|
|||||||
|
|
||||||
public class 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
|
* Description: SpaceShuttle
|
||||||
*--------------------------------------------------------------
|
*--------------------------------------------------------------
|
||||||
@ -11,5 +11,7 @@ namespace SpaceShuttle;
|
|||||||
|
|
||||||
public class SpaceShuttleName
|
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
|
* Description: SpaceShuttle
|
||||||
*--------------------------------------------------------------
|
*--------------------------------------------------------------
|
||||||
@ -13,5 +13,11 @@ using System;
|
|||||||
|
|
||||||
public class SpaceShuttleStart
|
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