push for windows
This commit is contained in:
BIN
CS/CS2B shipping company.zip
Normal file
BIN
CS/CS2B shipping company.zip
Normal file
Binary file not shown.
@@ -15,25 +15,25 @@ public class Company
|
||||
|
||||
public string GenerateReport()
|
||||
{
|
||||
var report = new StringBuilder();
|
||||
StringBuilder report = new StringBuilder();
|
||||
report.AppendLine("| Id | Weight | Volume | Refrid | Fee |");
|
||||
|
||||
// Process Full Containers
|
||||
var fullContainers = containers.OfType<FullContainer>().ToList();
|
||||
// Process FullContainers
|
||||
List<FullContainer> fullContainers = containers.OfType<FullContainer>().ToList();
|
||||
if (fullContainers.Any())
|
||||
{
|
||||
foreach (var container in fullContainers)
|
||||
foreach (FullContainer container in fullContainers)
|
||||
{
|
||||
report.AppendLine($"| Full Size {container.Id} | {container.Weight}kg | | {(container.IsRefrigerated ? "Y" : "N")} | €{container.Fee():F2} |");
|
||||
}
|
||||
report.AppendLine($"| Total | | | €{fullContainers.Sum(c => c.Fee()):F2} |");
|
||||
}
|
||||
|
||||
// Process Half Containers
|
||||
var halfContainers = containers.OfType<HalfContainer>().ToList();
|
||||
// Process HalfContainers
|
||||
List<HalfContainer> halfContainers = containers.OfType<HalfContainer>().ToList();
|
||||
if (halfContainers.Any())
|
||||
{
|
||||
foreach (var container in halfContainers)
|
||||
foreach (HalfContainer container in halfContainers)
|
||||
{
|
||||
report.AppendLine($"| Half Size {container.Id} | | {container.Volume}m3 | N/A | €{container.Fee():F2} |");
|
||||
}
|
||||
@@ -41,10 +41,10 @@ public class Company
|
||||
}
|
||||
|
||||
// Process Quarter Containers
|
||||
var quarterContainers = containers.OfType<QuarterContainer>().ToList();
|
||||
List<QuarterContainer> quarterContainers = containers.OfType<QuarterContainer>().ToList();
|
||||
if (quarterContainers.Any())
|
||||
{
|
||||
foreach (var container in quarterContainers)
|
||||
foreach (QuarterContainer container in quarterContainers)
|
||||
{
|
||||
report.AppendLine($"| Quarter Size {container.Id} | | | N/A | €{container.Fee():F2} |");
|
||||
}
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
public class Program {
|
||||
public static async Task Main(string[] args){
|
||||
var company = new Company();
|
||||
var server = new Server(company);
|
||||
Company company = new Company();
|
||||
Server server = new Server(company);
|
||||
|
||||
server.SetupServer();
|
||||
Console.WriteLine("Server started. Press any key to stop...");
|
||||
|
||||
var serverTask = server.ServerLoop();
|
||||
Task serverTask = server.ServerLoop();
|
||||
|
||||
Console.ReadKey();
|
||||
server.StopServer();
|
||||
|
||||
@@ -29,10 +29,10 @@ public class Server
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var client = await listener.AcceptTcpClientAsync())
|
||||
using (var stream = client.GetStream())
|
||||
using (var reader = new StreamReader(stream))
|
||||
using (var writer = new StreamWriter(stream) { AutoFlush = true })
|
||||
TcpClient client = await listener.AcceptTcpClientAsync();
|
||||
NetworkStream stream = client.GetStream();
|
||||
StreamReader reader = new StreamReader(stream);
|
||||
StreamWriter writer = new StreamWriter(stream) { AutoFlush = true };
|
||||
{
|
||||
await HandleClient(reader, writer);
|
||||
}
|
||||
@@ -50,7 +50,7 @@ public class Server
|
||||
{
|
||||
await writer.WriteLineAsync("WELCOME");
|
||||
|
||||
var command = await reader.ReadLineAsync();
|
||||
string? command = await reader.ReadLineAsync();
|
||||
if (command == "STOP")
|
||||
{
|
||||
await writer.WriteLineAsync("ACK");
|
||||
@@ -64,7 +64,7 @@ public class Server
|
||||
}
|
||||
|
||||
await writer.WriteLineAsync("TYPE");
|
||||
var type = await reader.ReadLineAsync();
|
||||
string? type = await reader.ReadLineAsync();
|
||||
|
||||
BaseContainer container = null;
|
||||
|
||||
@@ -104,14 +104,14 @@ public class Server
|
||||
private async Task<FullContainer> ProcessFullContainer(StreamReader reader, StreamWriter writer)
|
||||
{
|
||||
await writer.WriteLineAsync("FRIDGE");
|
||||
var fridgeResponse = await reader.ReadLineAsync();
|
||||
var isRefrigerated = fridgeResponse?.ToUpper() == "YES";
|
||||
string? fridgeResponse = await reader.ReadLineAsync();
|
||||
bool isRefrigerated = fridgeResponse?.ToUpper() == "YES";
|
||||
|
||||
await writer.WriteLineAsync("WEIGHT");
|
||||
if (!int.TryParse(await reader.ReadLineAsync(), out int weight))
|
||||
throw new InvalidInputException("Invalid weight");
|
||||
|
||||
var container = new FullContainer("Unknown", "Unknown")
|
||||
FullContainer container = new FullContainer("Unknown", "Unknown")
|
||||
{
|
||||
IsRefrigerated = isRefrigerated,
|
||||
Weight = weight
|
||||
@@ -126,7 +126,7 @@ public class Server
|
||||
if (!int.TryParse(await reader.ReadLineAsync(), out int volume))
|
||||
throw new InvalidInputException("Invalid volume");
|
||||
|
||||
var container = new HalfContainer("Unknown", "Unknown")
|
||||
HalfContainer container = new HalfContainer("Unknown", "Unknown")
|
||||
{
|
||||
Volume = volume
|
||||
};
|
||||
|
||||
@@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("CS2B shipping company")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6f32a80836dcb19b49b8bbcea88f30604e05ac14")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+04072d831e97b3c2b671f814b538ff66918387e3")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("CS2B shipping company")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("CS2B shipping company")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -1 +1 @@
|
||||
0913bbc8f927833caed9093ecdea2f944561fbcc44cfadc86e7b4634e0bfb243
|
||||
f4ce571968b5b266f724fd1c97923543f743c6a4b13182626c331000da0b437e
|
||||
|
||||
@@ -1 +1 @@
|
||||
17494093033930601
|
||||
17495474612743232
|
||||
Binary file not shown.
Reference in New Issue
Block a user