From a60bca6235720014f31413e555b707418d055f1a Mon Sep 17 00:00:00 2001 From: afshinamighi Date: Tue, 28 Sep 2021 12:24:16 +0200 Subject: [PATCH] distlib is updated with new message type format --- ConcurrentCSharp/ClientServerConfig.json | 2 +- ConcurrentCSharp/ConcurrentCSharp.sln | 12 ++ .../DiningPhilosophers/Program.cs | 8 +- ConcurrentCSharp/SocketClient/Program.cs | 4 +- ConcurrentCSharp/SocketClient/Sequential.cs | 4 +- ConcurrentCSharp/SocketServer/Concurrent.cs | 46 +++--- ConcurrentCSharp/SocketServer/Program.cs | 7 +- .../DistLibrary/ClientServerConfig.json | 14 +- .../DistLibrary/LibBookHelper/BookHelper.cs | 16 +- Networking/DistLibrary/LibBookHelper/Data.cs | 41 ++--- .../DistLibrary/LibBookHelper/Program.cs | 54 ++++++- Networking/DistLibrary/LibClient/Client.cs | 36 +++-- Networking/DistLibrary/LibClient/Data.cs | 41 ++--- .../DistLibrary/LibClient/LibOutput.json | 2 +- Networking/DistLibrary/LibClient/Program.cs | 76 +++++++-- Networking/DistLibrary/LibServer/Data.cs | 47 +++--- Networking/DistLibrary/LibServer/LibServer.cs | 10 +- Networking/DistLibrary/LibServer/Program.cs | 53 ++++++- Networking/DistLibrary/LibUserHelper/Data.cs | 41 ++--- .../DistLibrary/LibUserHelper/Program.cs | 56 ++++++- .../DistLibrary/LibUserHelper/UserHelper.cs | 16 +- .../SimpleClientServer/Client/Client.csproj | 8 + .../SimpleClientServer/Client/Program.cs | 59 +++++++ .../SimpleClientServer/Server/Program.cs | 61 +++++++ .../SimpleClientServer/Server/Server.csproj | 8 + .../SimpleClientServer/SimpleClientServer.sln | 31 ++++ basecamp/readme.md | 1 - basecamp/week02/inf-bc-w02-program.md | 4 +- models/Closing.png | Bin 0 -> 32709 bytes models/Closing.png.bak | Bin 0 -> 27156 bytes models/bookAvailable.png | Bin 0 -> 43570 bytes models/bookAvailable.png.bak | Bin 0 -> 36926 bytes models/bookBorrowed.png | Bin 0 -> 63919 bytes models/bookBorrowed.png.bak | Bin 0 -> 51494 bytes models/bookNotFound.png | Bin 0 -> 39425 bytes models/bookNotFound.png.bak | Bin 0 -> 36480 bytes models/networking-SD.asta | Bin 0 -> 18925 bytes .../ClientServerConfig.json | 9 ++ .../DistLibraryFinalTeachers/DistLibrary.sln | 48 ++++++ .../LibBookHelper/BookHelper.cs | 36 +++++ .../LibBookHelper/BookHelper.csproj | 8 + .../LibBookHelper/Books.json | 1 + .../LibBookHelper/Data.cs | 48 ++++++ .../LibBookHelper/Program.cs | 82 ++++++++++ .../LibClient/Client.cs | 91 +++++++++++ .../LibClient/Data.cs | 48 ++++++ .../LibClient/LibClient.csproj | 7 + .../LibClient/LibInput.json | 14 ++ .../LibClient/LibOutput.json | 1 + .../LibClient/Program.cs | 150 ++++++++++++++++++ .../LibServer/Data.cs | 48 ++++++ .../LibServer/LibServer.cs | 42 +++++ .../LibServer/LibServer.csproj | 8 + .../LibServer/Program.cs | 86 ++++++++++ .../LibUserHelper/Data.cs | 48 ++++++ .../LibUserHelper/Program.cs | 84 ++++++++++ .../LibUserHelper/UserHelper.cs | 36 +++++ .../LibUserHelper/UserHelper.csproj | 8 + .../LibUserHelper/Users.json | 1 + 59 files changed, 1477 insertions(+), 185 deletions(-) create mode 100644 Networking/SimpleClientServer/Client/Client.csproj create mode 100644 Networking/SimpleClientServer/Client/Program.cs create mode 100644 Networking/SimpleClientServer/Server/Program.cs create mode 100644 Networking/SimpleClientServer/Server/Server.csproj create mode 100644 Networking/SimpleClientServer/SimpleClientServer.sln create mode 100644 models/Closing.png create mode 100644 models/Closing.png.bak create mode 100644 models/bookAvailable.png create mode 100644 models/bookAvailable.png.bak create mode 100644 models/bookBorrowed.png create mode 100644 models/bookBorrowed.png.bak create mode 100644 models/bookNotFound.png create mode 100644 models/bookNotFound.png.bak create mode 100644 models/networking-SD.asta create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/ClientServerConfig.json create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/DistLibrary.sln create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/BookHelper.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/BookHelper.csproj create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Books.json create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Data.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Program.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Client.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Data.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibClient.csproj create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibInput.json create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibOutput.json create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Program.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/Data.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/LibServer.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/LibServer.csproj create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/Program.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Data.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Program.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/UserHelper.cs create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/UserHelper.csproj create mode 100644 temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Users.json diff --git a/ConcurrentCSharp/ClientServerConfig.json b/ConcurrentCSharp/ClientServerConfig.json index 7de1bbfc..329e0b61 100644 --- a/ConcurrentCSharp/ClientServerConfig.json +++ b/ConcurrentCSharp/ClientServerConfig.json @@ -3,7 +3,7 @@ "serverIPAddress": "127.0.0.1", "clientMinStartingTime": 100, "clientMaxStartingTime": 1000, - "experimentNumberOfClients": 30, + "experimentNumberOfClients": 150, "delayForTermination": 1000, "votingList": "ps :open -a preview :open -a whatsapp :ls -all", "serverListeningQueue": 20, diff --git a/ConcurrentCSharp/ConcurrentCSharp.sln b/ConcurrentCSharp/ConcurrentCSharp.sln index 93f2c7d4..c4d517a7 100644 --- a/ConcurrentCSharp/ConcurrentCSharp.sln +++ b/ConcurrentCSharp/ConcurrentCSharp.sln @@ -38,6 +38,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples", "Examples\Exampl EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Asynchronous", "Asynchronous\Asynchronous.csproj", "{CFF4C5D4-01AA-4394-940A-97F1C493D67D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaseDistribution", "CaseDistribution\CaseDistribution.csproj", "{6604F39B-1D3E-4A18-A4FB-6196AB74B384}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assessment", "Assessment\Assessment.csproj", "{ABE82029-B706-431F-864E-A3952835278A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -108,5 +112,13 @@ Global {CFF4C5D4-01AA-4394-940A-97F1C493D67D}.Debug|Any CPU.Build.0 = Debug|Any CPU {CFF4C5D4-01AA-4394-940A-97F1C493D67D}.Release|Any CPU.ActiveCfg = Release|Any CPU {CFF4C5D4-01AA-4394-940A-97F1C493D67D}.Release|Any CPU.Build.0 = Release|Any CPU + {6604F39B-1D3E-4A18-A4FB-6196AB74B384}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6604F39B-1D3E-4A18-A4FB-6196AB74B384}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6604F39B-1D3E-4A18-A4FB-6196AB74B384}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6604F39B-1D3E-4A18-A4FB-6196AB74B384}.Release|Any CPU.Build.0 = Release|Any CPU + {ABE82029-B706-431F-864E-A3952835278A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABE82029-B706-431F-864E-A3952835278A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABE82029-B706-431F-864E-A3952835278A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABE82029-B706-431F-864E-A3952835278A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/ConcurrentCSharp/DiningPhilosophers/Program.cs b/ConcurrentCSharp/DiningPhilosophers/Program.cs index bcd9f38c..9b5c1a0a 100644 --- a/ConcurrentCSharp/DiningPhilosophers/Program.cs +++ b/ConcurrentCSharp/DiningPhilosophers/Program.cs @@ -1,6 +1,6 @@ using System; -//using Exercise; -using Solution; // will be provided later +using Exercise; +//using Solution; // will be provided later namespace DiningPhilosophers { @@ -12,12 +12,12 @@ static void Main(string[] args) Table table = new Table(numPhilosphers); Console.WriteLine("[Dinining Philospher] Dining with one fork is going to start ..."); - //table.startOneForkDining(iteration); + table.startOneForkDining(iteration); //Console.WriteLine("[Dinining Philospher] Dining with two forks is going to start (press enter)..."); //Console.ReadLine(); //table.startTwoForksDining(iteration); - table.startTwoForksDiningSafe(iteration); + //table.startTwoForksDiningSafe(iteration); } } diff --git a/ConcurrentCSharp/SocketClient/Program.cs b/ConcurrentCSharp/SocketClient/Program.cs index f5417384..8e1866b9 100644 --- a/ConcurrentCSharp/SocketClient/Program.cs +++ b/ConcurrentCSharp/SocketClient/Program.cs @@ -1,7 +1,7 @@ using System; using Sequential; -using Concurrent; -//using Solution; +//using Concurrent; +using Solution; namespace Program { diff --git a/ConcurrentCSharp/SocketClient/Sequential.cs b/ConcurrentCSharp/SocketClient/Sequential.cs index a902a6b6..2aa8bc44 100644 --- a/ConcurrentCSharp/SocketClient/Sequential.cs +++ b/ConcurrentCSharp/SocketClient/Sequential.cs @@ -166,8 +166,8 @@ public class SequentialClientsSimulator { private SimpleClient[] clients; public Setting settings; - public string configFile = "../ClientServerConfig.json"; - //public string configFile = "../../../../ClientServerConfig.json"; // for debugging + //public string configFile = "../ClientServerConfig.json"; + public string configFile = "../../../../ClientServerConfig.json"; // for debugging public SequentialClientsSimulator() diff --git a/ConcurrentCSharp/SocketServer/Concurrent.cs b/ConcurrentCSharp/SocketServer/Concurrent.cs index 23646643..6c13a46d 100644 --- a/ConcurrentCSharp/SocketServer/Concurrent.cs +++ b/ConcurrentCSharp/SocketServer/Concurrent.cs @@ -1,25 +1,25 @@ -using Sequential; -using System; -//todo [Assignment]: add required namespaces +//using Sequential; +//using System; +////todo [Assignment]: add required namespaces -namespace Concurrent -{ - public class ConcurrentServer : SequentialServer - { - // todo [Assignment]: implement required attributes specific for concurrent server +//namespace Concurrent +//{ +// public class ConcurrentServer : SequentialServer +// { +// // todo [Assignment]: implement required attributes specific for concurrent server - public ConcurrentServer(Setting settings) : base(settings) - { - // todo [Assignment]: implement required code - } - public override void prepareServer() - { - // todo [Assignment]: implement required code - } - public override string processMessage(String msg) - { - // todo [Assignment]: implement required code - return ""; - } - } -} \ No newline at end of file +// public ConcurrentServer(Setting settings) : base(settings) +// { +// // todo [Assignment]: implement required code +// } +// public override void prepareServer() +// { +// // todo [Assignment]: implement required code +// } +// public override string processMessage(String msg) +// { +// // todo [Assignment]: implement required code +// return ""; +// } +// } +//} \ No newline at end of file diff --git a/ConcurrentCSharp/SocketServer/Program.cs b/ConcurrentCSharp/SocketServer/Program.cs index b697cd11..74e5e27b 100644 --- a/ConcurrentCSharp/SocketServer/Program.cs +++ b/ConcurrentCSharp/SocketServer/Program.cs @@ -13,7 +13,9 @@ namespace Program public class ServerSimulator { public Setting settings; - public string configFile = "../ClientServerConfig.json"; + //public string configFile = "../ClientServerConfig.json"; + public string configFile = "../../../../ClientServerConfig.json"; // for debugging + public ServerSimulator() { @@ -84,8 +86,7 @@ static void Main(string[] args) Console.WriteLine("\n Invalid input ... "); break; } - } - + } } } } diff --git a/Networking/DistLibrary/ClientServerConfig.json b/Networking/DistLibrary/ClientServerConfig.json index 0c378d98..e52856b1 100644 --- a/Networking/DistLibrary/ClientServerConfig.json +++ b/Networking/DistLibrary/ClientServerConfig.json @@ -1,9 +1,9 @@ { - "serverPortNumber": 11111, - "bookHelperPortNumber": 11112, - "userHelperPortNumber": 11113, - "serverIPAddress": "127.0.0.1", - "bookHelperIPAddress": "127.0.0.1", - "userHelperIPAddress": "127.0.0.1", - "serverListeningQueue": 5 + "ServerPortNumber": 11111, + "BookHelperPortNumber": 11112, + "UserHelperPortNumber": 11113, + "ServerIPAddress": "127.0.0.1", + "BookHelperIPAddress": "127.0.0.1", + "UserHelperIPAddress": "127.0.0.1", + "ServerListeningQueue": 5 } \ No newline at end of file diff --git a/Networking/DistLibrary/LibBookHelper/BookHelper.cs b/Networking/DistLibrary/LibBookHelper/BookHelper.cs index fe3c8f71..d65c2688 100644 --- a/Networking/DistLibrary/LibBookHelper/BookHelper.cs +++ b/Networking/DistLibrary/LibBookHelper/BookHelper.cs @@ -1,5 +1,4 @@ using System; -using System.Threading; using System.Text.Json; using System.Net; using System.Net.Sockets; @@ -12,15 +11,16 @@ namespace BookHelper // Note: Do not change this class. public class Setting { - public int serverPortNumber { get; set; } - public int bookHelperPortNumber { get; set; } - public int userHelperPortNumber { get; set; } - public string serverIPAddress { get; set; } - public string bookHelperIPAddress { get; set; } - public string userHelperIPAddress { get; set; } - public int serverListeningQueue { get; set; } + public int ServerPortNumber { get; set; } + public int BookHelperPortNumber { get; set; } + public int UserHelperPortNumber { get; set; } + public string ServerIPAddress { get; set; } + public string BookHelperIPAddress { get; set; } + public string UserHelperIPAddress { get; set; } + public int ServerListeningQueue { get; set; } } + // Note: Complete the implementation of this class. You can adjust the structure of this class. public class SequentialHelper { public SequentialHelper() diff --git a/Networking/DistLibrary/LibBookHelper/Data.cs b/Networking/DistLibrary/LibBookHelper/Data.cs index a78e7102..aeaa70d6 100644 --- a/Networking/DistLibrary/LibBookHelper/Data.cs +++ b/Networking/DistLibrary/LibBookHelper/Data.cs @@ -2,35 +2,36 @@ namespace LibData { + public class Message { - public string type { get; set; } - public string content { get; set; } + public MessageType Type { get; set; } + public string Content { get; set; } } - public class MessageType + public enum MessageType { - public const string hello = "Hello"; - public const string welcome = "Welcome"; - public const string bookInquiry = "BookInquiry"; - public const string userInquiry = "UserInquiry"; - public const string bookInqReply = "BookInquiryReply"; - public const string userInqReply = "UserInquiryReply"; - public const string endComm = "EndCommunication"; - public const string error = "Error"; - public const string notFound = "NotFound"; + Hello, + Welcome, + BookInquiry, + UserInquiry, + BookInquiryReply, + UserInquiryReply, + EndCommunication, + Error, + NotFound, } public class BookData { // the name of the book - public string title { get; set; } + public string Title { get; set; } // the author of the book - public string author { get; set; } + public string Author { get; set; } // the availability of the book: can be either Available or Borrowed - public string status { get; set; } + public string Status { get; set; } //the user id of the person who borrowed the book, otherwise null if the book is available. - public string borrowedBy { get; set; } + public string BorrowedBy { get; set; } // return date of a book if it is borrowed, otherwise null. public string ReturnDate { get; set; } } @@ -38,10 +39,10 @@ public class BookData public class UserData { // user id: has the format User-[a number] - public string user_id { get; set; } + public string User_id { get; set; } // full name - public string name { get; set; } - public string email { get; set; } - public string phone { get; set; } + public string Name { get; set; } + public string Email { get; set; } + public string Phone { get; set; } } } diff --git a/Networking/DistLibrary/LibBookHelper/Program.cs b/Networking/DistLibrary/LibBookHelper/Program.cs index 4882a9e5..2dbce1e0 100644 --- a/Networking/DistLibrary/LibBookHelper/Program.cs +++ b/Networking/DistLibrary/LibBookHelper/Program.cs @@ -1,6 +1,9 @@ -using System; -using BookHelper; -//using BookHelperSolution; + +using System; +// using BookHelper; +using BookHelperSolution; +using System.Text; +using System.Diagnostics.Tracing; // NOTE: THIS FILE MUST NOT CHANGE @@ -26,9 +29,54 @@ class Program /// static void Main(string[] args) { + using var listener = new SocketEventListener(); Console.Clear(); HelperSimulator hs = new HelperSimulator(); hs.sequentialRun(); } + + internal sealed class SocketEventListener : EventListener + { + // Constant necessary for attaching ActivityId to the events. + public const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; + + protected override void OnEventSourceCreated(EventSource eventSource) + { + // List of event source names provided by networking in .NET 5. + if (eventSource.Name == "System.Net.Sockets" || + eventSource.Name == "System.Net.Security"|| + eventSource.Name == "System.Net.NameResolution") + { + EnableEvents(eventSource, EventLevel.LogAlways); + } + // Turn on ActivityId. + else if (eventSource.Name == "System.Threading.Tasks.TplEventSource") + { + // Attach ActivityId to the events. + EnableEvents(eventSource, EventLevel.LogAlways, TasksFlowActivityIds); + } + } + + protected override void OnEventWritten(EventWrittenEventArgs eventData) + { + Console.ResetColor(); + + var sb = new StringBuilder().Append($"{eventData.TimeStamp:HH:mm:ss.ff} {eventData.ActivityId}.{eventData.RelatedActivityId} {eventData.EventSource.Name}.{eventData.EventName}("); + for (int i = 0; i < eventData.Payload?.Count; i++) + { + sb.Append(eventData.PayloadNames?[i]).Append(": ").Append(eventData.Payload[i]); + if (i < eventData.Payload?.Count - 1) + { + sb.Append(", "); + } + } + + sb.Append(")"); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine(sb.ToString()); + Console.ResetColor(); + } + } } } + diff --git a/Networking/DistLibrary/LibClient/Client.cs b/Networking/DistLibrary/LibClient/Client.cs index e8e51670..ac5d8b0b 100644 --- a/Networking/DistLibrary/LibClient/Client.cs +++ b/Networking/DistLibrary/LibClient/Client.cs @@ -3,32 +3,34 @@ using System.Net.Sockets; using System.Net; using System.Text.Json; -using System.Threading; using LibData; namespace LibClient { + // Note: Do not change this class public class Setting { - public int serverPortNumber { get; set; } - public int bookHelperPortNumber { get; set; } - public int userHelperPortNumber { get; set; } - public string serverIPAddress { get; set; } - public string bookHelperIPAddress { get; set; } - public string userHelperIPAddress { get; set; } - public int serverListeningQueue { get; set; } + public int ServerPortNumber { get; set; } + public int BookHelperPortNumber { get; set; } + public int UserHelperPortNumber { get; set; } + public string ServerIPAddress { get; set; } + public string BookHelperIPAddress { get; set; } + public string UserHelperIPAddress { get; set; } + public int ServerListeningQueue { get; set; } } + // Note: Do not change this class public class Output { - public string client_id { get; set; } // the id of the client that requests the book - public string bookName { get; set; } // the name of the book to be reqyested - public string status { get; set; } // final status received from the server - public string borrowerName { get; set; } // the name of the borrower in case the status is borrowed, otherwise null - public string borrowerEmail { get; set; } // the email of the borrower in case the status is borrowed, otherwise null + public string Client_id { get; set; } // the id of the client that requests the book + public string BookName { get; set; } // the name of the book to be reqyested + public string Status { get; set; } // final status received from the server + public string BorrowerName { get; set; } // the name of the borrower in case the status is borrowed, otherwise null + public string BorrowerEmail { get; set; } // the email of the borrower in case the status is borrowed, otherwise null } + // Note: Complete the implementation of this class. You can adjust the structure of this class. public class SimpleClient { // some of the fields are defined. @@ -56,14 +58,14 @@ public SimpleClient(int id, string bookName) this.bookName = bookName; this.client_id = "Client " + id.ToString(); this.result = new Output(); - result.bookName = bookName; - result.client_id = this.client_id; + result.BookName = bookName; + result.Client_id = this.client_id; // read JSON directly from a file try { string configContent = File.ReadAllText(configFile); this.settings = JsonSerializer.Deserialize(configContent); - this.ipAddress = IPAddress.Parse(settings.serverIPAddress); + this.ipAddress = IPAddress.Parse(settings.ServerIPAddress); } catch (Exception e) { @@ -78,7 +80,7 @@ public SimpleClient(int id, string bookName) /// The result of the request public Output start() { - + // todo: implement the body to communicate with the server and requests the book. Return the result as an Output object. // Adding extra methods to the class is permitted. The signature of this method must not change. diff --git a/Networking/DistLibrary/LibClient/Data.cs b/Networking/DistLibrary/LibClient/Data.cs index a78e7102..aeaa70d6 100644 --- a/Networking/DistLibrary/LibClient/Data.cs +++ b/Networking/DistLibrary/LibClient/Data.cs @@ -2,35 +2,36 @@ namespace LibData { + public class Message { - public string type { get; set; } - public string content { get; set; } + public MessageType Type { get; set; } + public string Content { get; set; } } - public class MessageType + public enum MessageType { - public const string hello = "Hello"; - public const string welcome = "Welcome"; - public const string bookInquiry = "BookInquiry"; - public const string userInquiry = "UserInquiry"; - public const string bookInqReply = "BookInquiryReply"; - public const string userInqReply = "UserInquiryReply"; - public const string endComm = "EndCommunication"; - public const string error = "Error"; - public const string notFound = "NotFound"; + Hello, + Welcome, + BookInquiry, + UserInquiry, + BookInquiryReply, + UserInquiryReply, + EndCommunication, + Error, + NotFound, } public class BookData { // the name of the book - public string title { get; set; } + public string Title { get; set; } // the author of the book - public string author { get; set; } + public string Author { get; set; } // the availability of the book: can be either Available or Borrowed - public string status { get; set; } + public string Status { get; set; } //the user id of the person who borrowed the book, otherwise null if the book is available. - public string borrowedBy { get; set; } + public string BorrowedBy { get; set; } // return date of a book if it is borrowed, otherwise null. public string ReturnDate { get; set; } } @@ -38,10 +39,10 @@ public class BookData public class UserData { // user id: has the format User-[a number] - public string user_id { get; set; } + public string User_id { get; set; } // full name - public string name { get; set; } - public string email { get; set; } - public string phone { get; set; } + public string Name { get; set; } + public string Email { get; set; } + public string Phone { get; set; } } } diff --git a/Networking/DistLibrary/LibClient/LibOutput.json b/Networking/DistLibrary/LibClient/LibOutput.json index 2460e43c..4211a7e7 100644 --- a/Networking/DistLibrary/LibClient/LibOutput.json +++ b/Networking/DistLibrary/LibClient/LibOutput.json @@ -1 +1 @@ -[{"client_id":"Client 0","bookName":"War and Peace","status":"Borrowed","borrowerName":"Abdul Barker","borrowerEmail":"in@Pellentesqueultricies.co.uk"},{"client_id":"Client 1","bookName":"Harry Potter","status":"Available","borrowerName":null,"borrowerEmail":null},{"client_id":"Client 2","bookName":"Lord of the Rings","status":"Available","borrowerName":null,"borrowerEmail":null},{"client_id":"Client 3","bookName":"An Unknown Book","status":"NotFound","borrowerName":null,"borrowerEmail":null}] \ No newline at end of file +[{"Client_id":"Client 0","BookName":"War and Peace","Status":"NotFound","BorrowerName":null,"BorrowerEmail":null},{"Client_id":"Client 1","BookName":"Harry Potter","Status":"NotFound","BorrowerName":null,"BorrowerEmail":null},{"Client_id":"Client 2","BookName":"Lord of the Rings","Status":"NotFound","BorrowerName":null,"BorrowerEmail":null},{"Client_id":"Client 3","BookName":"An Unknown Book","Status":"NotFound","BorrowerName":null,"BorrowerEmail":null}] \ No newline at end of file diff --git a/Networking/DistLibrary/LibClient/Program.cs b/Networking/DistLibrary/LibClient/Program.cs index 5b2c7865..99a93d6f 100644 --- a/Networking/DistLibrary/LibClient/Program.cs +++ b/Networking/DistLibrary/LibClient/Program.cs @@ -1,9 +1,12 @@ -using System; +using System.Text; +using System.Diagnostics.Tracing; +using System.Drawing; +using System; using System.Text.Json; using System.IO; using System.Collections.Generic; -using LibClient; -//using LibClientSolution; +// using LibClient; +using LibClientSolution; // NOTE: DO NOT CHANGE THIS FILE @@ -42,10 +45,11 @@ public ClientsSimulator() // each client is initialized by a client id and a book name (from the input file) to request foreach (InputData d in this.inputDataList) { - clients[id] = new SimpleClient(id,d.BookName); + clients[id] = new SimpleClient(id, d.BookName); id++; } - }catch (Exception e) { Console.Out.WriteLine("[ClientSimulator] Exception: {0}", e.Message); } + } + catch (Exception e) { Console.Out.WriteLine("[ClientSimulator] Exception: {0}", e.Message); } } /// /// Starts the book requesting process for each client and collects the result for each request @@ -59,7 +63,7 @@ public void startSimulation() results[i] = clients[i].start(); } //this is the ending client - new SimpleClient(-1,"").start(); + new SimpleClient(-1, "").start(); } /// @@ -70,14 +74,14 @@ public void printOutput() Console.Out.WriteLine("\n *************** Final Output *********** \n"); for (int i = 0; i < results.Length; i++) Console.WriteLine("{0} {1} {2} {3}", - results[i].client_id, - results[i].bookName, - results[i].borrowerName, - results[i].borrowerEmail); + results[i].Client_id, + results[i].BookName, + results[i].BorrowerName, + results[i].BorrowerEmail); string outputContent = JsonSerializer.Serialize(this.results); - Console.WriteLine("Content of the Output file:\n {0}",outputContent); + Console.WriteLine("Content of the Output file:\n {0}", outputContent); - File.WriteAllText(outputFile,outputContent); + File.WriteAllText(outputFile, outputContent); } } @@ -87,12 +91,60 @@ class Program /// Starts the simulation for a set of clients and produces the output results. /// /// + static void Main(string[] args) { + + using var listener = new SocketEventListener(); Console.Clear(); ClientsSimulator simulator = new ClientsSimulator(); simulator.startSimulation(); + simulator.printOutput(); } + + internal sealed class SocketEventListener : EventListener + { + // Constant necessary for attaching ActivityId to the events. + public const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; + + protected override void OnEventSourceCreated(EventSource eventSource) + { + // List of event source names provided by networking in .NET 5. + if (eventSource.Name == "System.Net.Sockets" || + eventSource.Name == "System.Net.Security" || + eventSource.Name == "System.Net.NameResolution") + { + EnableEvents(eventSource, EventLevel.LogAlways); + } + // Turn on ActivityId. + else if (eventSource.Name == "System.Threading.Tasks.TplEventSource") + { + // Attach ActivityId to the events. + EnableEvents(eventSource, EventLevel.LogAlways, TasksFlowActivityIds); + } + } + + protected override void OnEventWritten(EventWrittenEventArgs eventData) + { + Console.ResetColor(); + + var sb = new StringBuilder().Append($"{eventData.TimeStamp:HH:mm:ss.ff} {eventData.ActivityId}.{eventData.RelatedActivityId} {eventData.EventSource.Name}.{eventData.EventName}("); + for (int i = 0; i < eventData.Payload?.Count; i++) + { + sb.Append(eventData.PayloadNames?[i]).Append(": ").Append(eventData.Payload[i]); + if (i < eventData.Payload?.Count - 1) + { + sb.Append(", "); + } + } + + sb.Append(")"); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine(sb.ToString()); + Console.ResetColor(); + } + } } + } diff --git a/Networking/DistLibrary/LibServer/Data.cs b/Networking/DistLibrary/LibServer/Data.cs index a78e7102..2106c130 100644 --- a/Networking/DistLibrary/LibServer/Data.cs +++ b/Networking/DistLibrary/LibServer/Data.cs @@ -2,46 +2,47 @@ namespace LibData { - public class Message + + public class Message { - public string type { get; set; } - public string content { get; set; } + public MessageType Type { get; set; } + public string Content { get; set; } } - public class MessageType + public enum MessageType { - public const string hello = "Hello"; - public const string welcome = "Welcome"; - public const string bookInquiry = "BookInquiry"; - public const string userInquiry = "UserInquiry"; - public const string bookInqReply = "BookInquiryReply"; - public const string userInqReply = "UserInquiryReply"; - public const string endComm = "EndCommunication"; - public const string error = "Error"; - public const string notFound = "NotFound"; + Hello, + Welcome, + BookInquiry, + UserInquiry, + BookInquiryReply, + UserInquiryReply, + EndCommunication, + Error, + NotFound, } - public class BookData + public class BookData { // the name of the book - public string title { get; set; } + public string Title { get; set; } // the author of the book - public string author { get; set; } + public string Author { get; set; } // the availability of the book: can be either Available or Borrowed - public string status { get; set; } + public string Status { get; set; } //the user id of the person who borrowed the book, otherwise null if the book is available. - public string borrowedBy { get; set; } + public string BorrowedBy { get; set; } // return date of a book if it is borrowed, otherwise null. public string ReturnDate { get; set; } } - public class UserData + public class UserData { // user id: has the format User-[a number] - public string user_id { get; set; } + public string User_id { get; set; } // full name - public string name { get; set; } - public string email { get; set; } - public string phone { get; set; } + public string Name { get; set; } + public string Email { get; set; } + public string Phone { get; set; } } } diff --git a/Networking/DistLibrary/LibServer/LibServer.cs b/Networking/DistLibrary/LibServer/LibServer.cs index 2ab57668..724c6b86 100644 --- a/Networking/DistLibrary/LibServer/LibServer.cs +++ b/Networking/DistLibrary/LibServer/LibServer.cs @@ -4,7 +4,7 @@ using System.Net.Sockets; using System.IO; using LibData; -using System.Threading; + namespace LibServer { @@ -20,8 +20,10 @@ public class Setting public int serverListeningQueue { get; set; } } + + // Note: Complete the implementation of this class. You can adjust the structure of this class. public class SequentialServer - { + { public SequentialServer() { //todo: implement the body. Add extra fields and methods to the class if it is needed @@ -33,4 +35,8 @@ public void start() } } + } + + + diff --git a/Networking/DistLibrary/LibServer/Program.cs b/Networking/DistLibrary/LibServer/Program.cs index 3334e7ec..ffdc42bb 100644 --- a/Networking/DistLibrary/LibServer/Program.cs +++ b/Networking/DistLibrary/LibServer/Program.cs @@ -1,6 +1,8 @@ using System; -using LibServer; -//using LibServerSolution; +// using LibServer; +using LibServerSolution; +using System.Text; +using System.Diagnostics.Tracing; // NOTE: THIS FILE MUST NOT CHANGE @@ -11,7 +13,7 @@ public class ServerSimulator public Setting settings; public ServerSimulator() - { } + { } /// /// initiates the server @@ -31,9 +33,54 @@ public class Program /// static void Main(string[] args) { + using var listener = new SocketEventListener(); Console.Clear(); new ServerSimulator().sequentialRun(); } + + internal sealed class SocketEventListener : EventListener + { + // Constant necessary for attaching ActivityId to the events. + public const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; + + protected override void OnEventSourceCreated(EventSource eventSource) + { + // List of event source names provided by networking in .NET 5. + if (eventSource.Name == "System.Net.Sockets" || + eventSource.Name == "System.Net.Security" || + eventSource.Name == "System.Net.NameResolution") + { + EnableEvents(eventSource, EventLevel.LogAlways); + } + // Turn on ActivityId. + else if (eventSource.Name == "System.Threading.Tasks.TplEventSource") + { + // Attach ActivityId to the events. + EnableEvents(eventSource, EventLevel.LogAlways, TasksFlowActivityIds); + } + } + + protected override void OnEventWritten(EventWrittenEventArgs eventData) + { + Console.ResetColor(); + + var sb = new StringBuilder().Append($"{eventData.TimeStamp:HH:mm:ss.ff} {eventData.ActivityId}.{eventData.RelatedActivityId} {eventData.EventSource.Name}.{eventData.EventName} {eventData.Task}.{eventData.Message}("); + for (int i = 0; i < eventData.Payload?.Count; i++) + { + sb.Append(eventData.PayloadNames?[i]).Append(": ").Append(eventData.Payload[i]); + if (i < eventData.Payload?.Count - 1) + { + sb.Append(", "); + } + } + + sb.Append(")"); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine(sb.ToString()); + Console.ResetColor(); + } + } } } + diff --git a/Networking/DistLibrary/LibUserHelper/Data.cs b/Networking/DistLibrary/LibUserHelper/Data.cs index a78e7102..aeaa70d6 100644 --- a/Networking/DistLibrary/LibUserHelper/Data.cs +++ b/Networking/DistLibrary/LibUserHelper/Data.cs @@ -2,35 +2,36 @@ namespace LibData { + public class Message { - public string type { get; set; } - public string content { get; set; } + public MessageType Type { get; set; } + public string Content { get; set; } } - public class MessageType + public enum MessageType { - public const string hello = "Hello"; - public const string welcome = "Welcome"; - public const string bookInquiry = "BookInquiry"; - public const string userInquiry = "UserInquiry"; - public const string bookInqReply = "BookInquiryReply"; - public const string userInqReply = "UserInquiryReply"; - public const string endComm = "EndCommunication"; - public const string error = "Error"; - public const string notFound = "NotFound"; + Hello, + Welcome, + BookInquiry, + UserInquiry, + BookInquiryReply, + UserInquiryReply, + EndCommunication, + Error, + NotFound, } public class BookData { // the name of the book - public string title { get; set; } + public string Title { get; set; } // the author of the book - public string author { get; set; } + public string Author { get; set; } // the availability of the book: can be either Available or Borrowed - public string status { get; set; } + public string Status { get; set; } //the user id of the person who borrowed the book, otherwise null if the book is available. - public string borrowedBy { get; set; } + public string BorrowedBy { get; set; } // return date of a book if it is borrowed, otherwise null. public string ReturnDate { get; set; } } @@ -38,10 +39,10 @@ public class BookData public class UserData { // user id: has the format User-[a number] - public string user_id { get; set; } + public string User_id { get; set; } // full name - public string name { get; set; } - public string email { get; set; } - public string phone { get; set; } + public string Name { get; set; } + public string Email { get; set; } + public string Phone { get; set; } } } diff --git a/Networking/DistLibrary/LibUserHelper/Program.cs b/Networking/DistLibrary/LibUserHelper/Program.cs index 4a22624d..885a7fa1 100644 --- a/Networking/DistLibrary/LibUserHelper/Program.cs +++ b/Networking/DistLibrary/LibUserHelper/Program.cs @@ -1,6 +1,9 @@ -using System; -using UserHelper; -//using UserHelperSolution; +using System.Drawing; +using System; +// using UserHelper; +using UserHelperSolution; +using System.Text; +using System.Diagnostics.Tracing; // NOTE: THIS FILE MUST NOT CHANGE @@ -26,9 +29,56 @@ class Program /// static void Main(string[] args) { + using var listener = new SocketEventListener(); Console.Clear(); HelperSimulator hs = new HelperSimulator(); hs.sequentialRun(); } + + internal sealed class SocketEventListener : EventListener + { + // Constant necessary for attaching ActivityId to the events. + public const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; + + protected override void OnEventSourceCreated(EventSource eventSource) + { + // List of event source names provided by networking in .NET 5. + if (eventSource.Name == "System.Net.Sockets" || + eventSource.Name == "System.Net.Security"|| + eventSource.Name == "System.Net.NameResolution") + { + EnableEvents(eventSource, EventLevel.LogAlways); + } + // Turn on ActivityId. + else if (eventSource.Name == "System.Threading.Tasks.TplEventSource") + { + // Attach ActivityId to the events. + EnableEvents(eventSource, EventLevel.LogAlways, TasksFlowActivityIds); + } + } + + protected override void OnEventWritten(EventWrittenEventArgs eventData) + { + Console.ResetColor(); + + var sb = new StringBuilder().Append($"{eventData.TimeStamp:HH:mm:ss.ff} {eventData.ActivityId}.{eventData.RelatedActivityId} {eventData.EventSource.Name}.{eventData.EventName}("); + for (int i = 0; i < eventData.Payload?.Count; i++) + { + + sb.Append(eventData.PayloadNames?[i]).Append(": ").Append(eventData.Payload[i]); + if (i < eventData.Payload?.Count - 1) + { + sb.Append(", "); + } + } + + sb.Append(")"); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine(sb.ToString()); + Console.ResetColor(); + } + } } + + } diff --git a/Networking/DistLibrary/LibUserHelper/UserHelper.cs b/Networking/DistLibrary/LibUserHelper/UserHelper.cs index 122aada6..75dd26bf 100644 --- a/Networking/DistLibrary/LibUserHelper/UserHelper.cs +++ b/Networking/DistLibrary/LibUserHelper/UserHelper.cs @@ -1,5 +1,4 @@ using System; -using System.Threading; using System.Text.Json; using System.Net; using System.Net.Sockets; @@ -12,15 +11,16 @@ namespace UserHelper // Note: Do not change this class. public class Setting { - public int serverPortNumber { get; set; } - public int bookHelperPortNumber { get; set; } - public int userHelperPortNumber { get; set; } - public string serverIPAddress { get; set; } - public string bookHelperIPAddress { get; set; } - public string userHelperIPAddress { get; set; } - public int serverListeningQueue { get; set; } + public int ServerPortNumber { get; set; } + public int BookHelperPortNumber { get; set; } + public int UserHelperPortNumber { get; set; } + public string ServerIPAddress { get; set; } + public string BookHelperIPAddress { get; set; } + public string UserHelperIPAddress { get; set; } + public int ServerListeningQueue { get; set; } } + // Note: Complete the implementation of this class. You can adjust the structure of this class. public class SequentialHelper { public SequentialHelper() diff --git a/Networking/SimpleClientServer/Client/Client.csproj b/Networking/SimpleClientServer/Client/Client.csproj new file mode 100644 index 00000000..1d2d39a9 --- /dev/null +++ b/Networking/SimpleClientServer/Client/Client.csproj @@ -0,0 +1,8 @@ + + + + Exe + net5.0 + + + diff --git a/Networking/SimpleClientServer/Client/Program.cs b/Networking/SimpleClientServer/Client/Program.cs new file mode 100644 index 00000000..5b441b25 --- /dev/null +++ b/Networking/SimpleClientServer/Client/Program.cs @@ -0,0 +1,59 @@ +using System; +using System.Text; +using System.Net; +using System.Net.Sockets; + +namespace socket_prog +{ + class Client + { + static void Main(string[] args) + { + byte[] buffer = new byte[1000]; + byte[] msg = new byte[1000]; + string data = null; + + + IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); + + IPEndPoint serverEndpoint = new IPEndPoint(ipAddress, 32000); + + ConsoleKeyInfo key; + + + Socket sock = new Socket(AddressFamily.InterNetwork, + SocketType.Stream, ProtocolType.Tcp); + sock.Connect(serverEndpoint); + + while (true) + { + Console.WriteLine("\nEnter a message to send to the server"); + data = Console.ReadLine(); + if (data.Length != 0) + { + + msg = Encoding.ASCII.GetBytes(data); + sock.Send(msg); + int b = sock.Receive(buffer); + data = Encoding.ASCII.GetString(buffer, 0, b); + + Console.WriteLine("" + data); + data = null; + } + + Console.WriteLine("\n<< Continue 'y' , Exit 'e'>>\n"); + key = Console.ReadKey(); + if (key.KeyChar == 'e') + { + sock.Send(Encoding.ASCII.GetBytes("Closed")); + Console.WriteLine("\nExiting.. Press any key to continue"); + key = Console.ReadKey(); + sock.Close(); + break; + } + + } + } + } + +} diff --git a/Networking/SimpleClientServer/Server/Program.cs b/Networking/SimpleClientServer/Server/Program.cs new file mode 100644 index 00000000..8f082ac2 --- /dev/null +++ b/Networking/SimpleClientServer/Server/Program.cs @@ -0,0 +1,61 @@ +using System; +using System.Text; +using System.Net; +using System.Net.Sockets; + +namespace socket_prog +{ + class Server + { + static void Main(string[] args) + { + // define required variables + const string ipAdd = "127.0.0.1"; + const int portNum = 32000; + const int maxBuffSize = 1000; + byte[] buffer = new byte[maxBuffSize]; + byte[] msg = Encoding.ASCII.GetBytes("From server: Your message delivered\n"); + string data = null; + + // define parameters equired to set up the network + IPAddress ipAddress = IPAddress.Parse(ipAdd); + IPEndPoint localEndpoint = new IPEndPoint(ipAddress, portNum); + + // establish a listening socket + Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp); + + //bind to the socket + sock.Bind(localEndpoint); + // listen with max number of pending incoming requests + sock.Listen(5); + Console.WriteLine("\n Waiting for clients.."); + // wait to accept incoming requests + Socket newSock = sock.Accept(); + + // a loop to receive / process / reply + while (true) + { + int b = newSock.Receive(buffer); // receive + data = Encoding.ASCII.GetString(buffer, 0, b); + // process + if (data == "Closed") + { + newSock.Close(); + Console.WriteLine("Closing the socket.."); + break; + } + else + { + Console.WriteLine("" + data); + data = null; + newSock.Send(msg); // reply + } + + } + // close the socket + sock.Close(); + + } + } + +} diff --git a/Networking/SimpleClientServer/Server/Server.csproj b/Networking/SimpleClientServer/Server/Server.csproj new file mode 100644 index 00000000..1d2d39a9 --- /dev/null +++ b/Networking/SimpleClientServer/Server/Server.csproj @@ -0,0 +1,8 @@ + + + + Exe + net5.0 + + + diff --git a/Networking/SimpleClientServer/SimpleClientServer.sln b/Networking/SimpleClientServer/SimpleClientServer.sln new file mode 100644 index 00000000..4a1e7ed9 --- /dev/null +++ b/Networking/SimpleClientServer/SimpleClientServer.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.810.9 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client", "Client\Client.csproj", "{1D7EAE9B-A9C2-488E-99F4-7C33D9EFFE5C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server\Server.csproj", "{FDF5BA6E-8C4E-48CD-961B-0509175977E3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1D7EAE9B-A9C2-488E-99F4-7C33D9EFFE5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D7EAE9B-A9C2-488E-99F4-7C33D9EFFE5C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D7EAE9B-A9C2-488E-99F4-7C33D9EFFE5C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D7EAE9B-A9C2-488E-99F4-7C33D9EFFE5C}.Release|Any CPU.Build.0 = Release|Any CPU + {FDF5BA6E-8C4E-48CD-961B-0509175977E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDF5BA6E-8C4E-48CD-961B-0509175977E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDF5BA6E-8C4E-48CD-961B-0509175977E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDF5BA6E-8C4E-48CD-961B-0509175977E3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C0D849A0-6F44-4884-A47B-FFF3ED38E3D4} + EndGlobalSection +EndGlobal diff --git a/basecamp/readme.md b/basecamp/readme.md index b2cd98a1..d1e6ba46 100644 --- a/basecamp/readme.md +++ b/basecamp/readme.md @@ -10,4 +10,3 @@ The learning activities are designed based on these following references: - **Ref-B01**: Book, Bill Lubanovic; "Introducing Python: Modern Computing in Simple Packages"; [Available here](https://www.oreilly.com/library/view/introducing-python-2nd/9781492051374/) - **Ref-O02**: Online Tutorial; Charles Severance; "Python for Everybody"; [Available here](https://books.trinket.io/pfe/index.html) -- diff --git a/basecamp/week02/inf-bc-w02-program.md b/basecamp/week02/inf-bc-w02-program.md index a2d0d656..a128722a 100644 --- a/basecamp/week02/inf-bc-w02-program.md +++ b/basecamp/week02/inf-bc-w02-program.md @@ -2,9 +2,9 @@ **Introduction**: This document presents learning activities for week 02. In Week 02, you will learn basics of Python structures to add decision points to your linear programs. A branching program is a flow of sequential instructions with branching statements. By the end this week, you will be able to implement a program where a user can enter simple input, the program can make choices based on some conditions and after calculation results can be printed as output. -## Day-01: What is a ??? +## Day-01: How to check conditions? -1. Using **Ref-B01: Chapter 03** answer and experiment the following questions: +1. Using **Ref-O02: Chapter 03** answer and experiment the following questions: 1. What is a 2. Using **RefB-01: Appendix B** perform the following tasks: 1. Install Pyt diff --git a/models/Closing.png b/models/Closing.png new file mode 100644 index 0000000000000000000000000000000000000000..a67c275648542b8a8c1b2188255b8eff2cc3c3f8 GIT binary patch literal 32709 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 Xb=0Zon$_1v&pM={rJTOs)c?N#o2{JO literal 0 HcmV?d00001 diff --git a/models/Closing.png.bak b/models/Closing.png.bak new file mode 100644 index 0000000000000000000000000000000000000000..38baece13ff802e0810e379add5a756bbc8c37a2 GIT binary patch literal 27156 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

+><5 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 IzB(rJFOJfTOaK4? literal 0 HcmV?d00001 diff --git a/models/bookAvailable.png b/models/bookAvailable.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6e41f4002c3b4ec552e8b333e60bc136eecf94 GIT binary patch literal 43570 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 M*FK(q)GGA90c_!Bi2wiq literal 0 HcmV?d00001 diff --git a/models/bookAvailable.png.bak b/models/bookAvailable.png.bak new file mode 100644 index 0000000000000000000000000000000000000000..273198e1d6d30c7e50d8ad892c531d5d218c0dc1 GIT binary patch literal 36926 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%0A<_C? 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%0A%Nhc-{W=tX5zRGw~AJc>@ZUKBATRflrui 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 LZ+W=+$l3n@O|p!` literal 0 HcmV?d00001 diff --git a/models/bookBorrowed.png.bak b/models/bookBorrowed.png.bak new file mode 100644 index 0000000000000000000000000000000000000000..7c4e656a83068f432e8f88ec06a690d9a08ac0ea GIT binary patch literal 51494 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 VgGnJj-x5E!Q|7iOt4uH6{4YJllrsPT literal 0 HcmV?d00001 diff --git a/models/bookNotFound.png b/models/bookNotFound.png new file mode 100644 index 0000000000000000000000000000000000000000..5985f0ad2b2d95e7041dc03423f1f510451d172d GIT binary patch literal 39425 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 literal 0 HcmV?d00001 diff --git a/models/bookNotFound.png.bak b/models/bookNotFound.png.bak new file mode 100644 index 0000000000000000000000000000000000000000..fdf1912a689f8ccaa5ea31bdc09b13b946dc49f2 GIT binary patch literal 36480 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 z0000000000000000000*ZggpMc~f+6a%E6U1qJ{B000310RTAw005pz000004?e#_ literal 0 HcmV?d00001 diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/ClientServerConfig.json b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/ClientServerConfig.json new file mode 100644 index 00000000..e52856b1 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/ClientServerConfig.json @@ -0,0 +1,9 @@ +{ + "ServerPortNumber": 11111, + "BookHelperPortNumber": 11112, + "UserHelperPortNumber": 11113, + "ServerIPAddress": "127.0.0.1", + "BookHelperIPAddress": "127.0.0.1", + "UserHelperIPAddress": "127.0.0.1", + "ServerListeningQueue": 5 +} \ No newline at end of file diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/DistLibrary.sln b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/DistLibrary.sln new file mode 100644 index 00000000..470ea7b0 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/DistLibrary.sln @@ -0,0 +1,48 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.810.9 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibClient", "LibClient\LibClient.csproj", "{D01312F2-3D27-4A7E-A0AB-B8E0D208C7C1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UserHelper", "LibUserHelper\UserHelper.csproj", "{50A9474A-A777-41A8-A028-D6428516773F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BookHelper", "LibBookHelper\BookHelper.csproj", "{5E3DF90F-B75D-4C89-85EE-BA49D4446F46}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibServer", "LibServer\LibServer.csproj", "{4C716E6E-165B-44EB-90CE-07A864B371A8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{E8D2FBCB-D24D-4A3C-BB87-54C4344272F9}" + ProjectSection(SolutionItems) = preProject + ClientServerConfig.json = ClientServerConfig.json + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D01312F2-3D27-4A7E-A0AB-B8E0D208C7C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D01312F2-3D27-4A7E-A0AB-B8E0D208C7C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D01312F2-3D27-4A7E-A0AB-B8E0D208C7C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D01312F2-3D27-4A7E-A0AB-B8E0D208C7C1}.Release|Any CPU.Build.0 = Release|Any CPU + {50A9474A-A777-41A8-A028-D6428516773F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50A9474A-A777-41A8-A028-D6428516773F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50A9474A-A777-41A8-A028-D6428516773F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50A9474A-A777-41A8-A028-D6428516773F}.Release|Any CPU.Build.0 = Release|Any CPU + {5E3DF90F-B75D-4C89-85EE-BA49D4446F46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E3DF90F-B75D-4C89-85EE-BA49D4446F46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E3DF90F-B75D-4C89-85EE-BA49D4446F46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E3DF90F-B75D-4C89-85EE-BA49D4446F46}.Release|Any CPU.Build.0 = Release|Any CPU + {4C716E6E-165B-44EB-90CE-07A864B371A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C716E6E-165B-44EB-90CE-07A864B371A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C716E6E-165B-44EB-90CE-07A864B371A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C716E6E-165B-44EB-90CE-07A864B371A8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8DA0EFBE-C809-4848-BE1F-ACEF770B2252} + EndGlobalSection +EndGlobal diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/BookHelper.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/BookHelper.cs new file mode 100644 index 00000000..d65c2688 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/BookHelper.cs @@ -0,0 +1,36 @@ +using System; +using System.Text.Json; +using System.Net; +using System.Net.Sockets; +using System.IO; +using System.Collections.Generic; +using LibData; + +namespace BookHelper +{ + // Note: Do not change this class. + public class Setting + { + public int ServerPortNumber { get; set; } + public int BookHelperPortNumber { get; set; } + public int UserHelperPortNumber { get; set; } + public string ServerIPAddress { get; set; } + public string BookHelperIPAddress { get; set; } + public string UserHelperIPAddress { get; set; } + public int ServerListeningQueue { get; set; } + } + + // Note: Complete the implementation of this class. You can adjust the structure of this class. + public class SequentialHelper + { + public SequentialHelper() + { + //todo: implement the body. Add extra fields and methods to the class if needed + } + + public void start() + { + //todo: implement the body. Add extra fields and methods to the class if needed + } + } +} diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/BookHelper.csproj b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/BookHelper.csproj new file mode 100644 index 00000000..1d2d39a9 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/BookHelper.csproj @@ -0,0 +1,8 @@ + + + + Exe + net5.0 + + + diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Books.json b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Books.json new file mode 100644 index 00000000..5f90765d --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Books.json @@ -0,0 +1 @@ +[{"Title":"War and Peace","Author":"Tolstoy, Leo","Status":"Borrowed","BorrowedBy":"user-2","ReturnDate":"20-09-2021"},{"Title":"Anna Karenina","Author":"Tolstoy, Leo","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"Mrs. Dalloway","Author":"Woolf, Virginia","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"The Hours","Author":"Cunnningham, Michael","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"Huckleberry Finn","Author":"Twain, Mark","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"Bleak House","Author":"Dickens, Charles","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"Tom Sawyer","Author":"Twain, Mark","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"A Room of One\u0027s Own","Author":"Woolf, Virginia","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"Harry Potter","Author":"Rowling, J.K.","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"One Hundred Years of Solitude","Author":"Marquez","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"Hamlet, Prince of Denmark","Author":"Shakespeare","Status":"Available","BorrowedBy":null,"ReturnDate":null},{"Title":"Lord of the Rings","Author":"Tolkien, J.R.","Status":"Available","BorrowedBy":null,"ReturnDate":null}] \ No newline at end of file diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Data.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Data.cs new file mode 100644 index 00000000..aeaa70d6 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Data.cs @@ -0,0 +1,48 @@ +// NOTE: THIS FILE MUST NOT CHANGE + +namespace LibData +{ + + public class Message + { + public MessageType Type { get; set; } + public string Content { get; set; } + } + + public enum MessageType + { + Hello, + Welcome, + BookInquiry, + UserInquiry, + BookInquiryReply, + UserInquiryReply, + EndCommunication, + Error, + NotFound, + } + + public class BookData + { + // the name of the book + public string Title { get; set; } + // the author of the book + public string Author { get; set; } + // the availability of the book: can be either Available or Borrowed + public string Status { get; set; } + //the user id of the person who borrowed the book, otherwise null if the book is available. + public string BorrowedBy { get; set; } + // return date of a book if it is borrowed, otherwise null. + public string ReturnDate { get; set; } + } + + public class UserData + { + // user id: has the format User-[a number] + public string User_id { get; set; } + // full name + public string Name { get; set; } + public string Email { get; set; } + public string Phone { get; set; } + } +} diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Program.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Program.cs new file mode 100644 index 00000000..2dbce1e0 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibBookHelper/Program.cs @@ -0,0 +1,82 @@ + +using System; +// using BookHelper; +using BookHelperSolution; +using System.Text; +using System.Diagnostics.Tracing; + +// NOTE: THIS FILE MUST NOT CHANGE + +namespace LibHelper +{ + public class HelperSimulator + { + ///

+ /// initiates the helper + /// + public void sequentialRun() + { + SequentialHelper server = new SequentialHelper(); + server.start(); + } + } + + class Program + { + /// + /// Starts the simulation for a set of clients and produces the output results. + /// + /// + static void Main(string[] args) + { + using var listener = new SocketEventListener(); + Console.Clear(); + HelperSimulator hs = new HelperSimulator(); + hs.sequentialRun(); + } + + internal sealed class SocketEventListener : EventListener + { + // Constant necessary for attaching ActivityId to the events. + public const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; + + protected override void OnEventSourceCreated(EventSource eventSource) + { + // List of event source names provided by networking in .NET 5. + if (eventSource.Name == "System.Net.Sockets" || + eventSource.Name == "System.Net.Security"|| + eventSource.Name == "System.Net.NameResolution") + { + EnableEvents(eventSource, EventLevel.LogAlways); + } + // Turn on ActivityId. + else if (eventSource.Name == "System.Threading.Tasks.TplEventSource") + { + // Attach ActivityId to the events. + EnableEvents(eventSource, EventLevel.LogAlways, TasksFlowActivityIds); + } + } + + protected override void OnEventWritten(EventWrittenEventArgs eventData) + { + Console.ResetColor(); + + var sb = new StringBuilder().Append($"{eventData.TimeStamp:HH:mm:ss.ff} {eventData.ActivityId}.{eventData.RelatedActivityId} {eventData.EventSource.Name}.{eventData.EventName}("); + for (int i = 0; i < eventData.Payload?.Count; i++) + { + sb.Append(eventData.PayloadNames?[i]).Append(": ").Append(eventData.Payload[i]); + if (i < eventData.Payload?.Count - 1) + { + sb.Append(", "); + } + } + + sb.Append(")"); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine(sb.ToString()); + Console.ResetColor(); + } + } + } +} + diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Client.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Client.cs new file mode 100644 index 00000000..ac5d8b0b --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Client.cs @@ -0,0 +1,91 @@ +using System; +using System.IO; +using System.Net.Sockets; +using System.Net; +using System.Text.Json; +using LibData; + + +namespace LibClient +{ + // Note: Do not change this class + public class Setting + { + public int ServerPortNumber { get; set; } + public int BookHelperPortNumber { get; set; } + public int UserHelperPortNumber { get; set; } + public string ServerIPAddress { get; set; } + public string BookHelperIPAddress { get; set; } + public string UserHelperIPAddress { get; set; } + public int ServerListeningQueue { get; set; } + } + + // Note: Do not change this class + public class Output + { + public string Client_id { get; set; } // the id of the client that requests the book + public string BookName { get; set; } // the name of the book to be reqyested + public string Status { get; set; } // final status received from the server + public string BorrowerName { get; set; } // the name of the borrower in case the status is borrowed, otherwise null + public string BorrowerEmail { get; set; } // the email of the borrower in case the status is borrowed, otherwise null + } + + // Note: Complete the implementation of this class. You can adjust the structure of this class. + public class SimpleClient + { + // some of the fields are defined. + public Output result; + public Socket clientSocket; + public IPEndPoint serverEndPoint; + public IPAddress ipAddress; + public Setting settings; + public string client_id; + private string bookName; + // all the required settings are provided in this file + public string configFile = @"../ClientServerConfig.json"; + //public string configFile = @"../../../../ClientServerConfig.json"; // for debugging + + // todo: add extra fields here in case needed + + /// + /// Initializes the client based on the given parameters and seeting file. + /// + /// id of the clients provided by the simulator + /// name of the book to be requested from the server, provided by the simulator + public SimpleClient(int id, string bookName) + { + //todo: extend the body if needed. + this.bookName = bookName; + this.client_id = "Client " + id.ToString(); + this.result = new Output(); + result.BookName = bookName; + result.Client_id = this.client_id; + // read JSON directly from a file + try + { + string configContent = File.ReadAllText(configFile); + this.settings = JsonSerializer.Deserialize(configContent); + this.ipAddress = IPAddress.Parse(settings.ServerIPAddress); + } + catch (Exception e) + { + Console.Out.WriteLine("[Client Exception] {0}", e.Message); + } + } + + /// + /// Establishes the connection with the server and requests the book according to the specified protocol. + /// Note: The signature of this method must not change. + /// + /// The result of the request + public Output start() + { + + // todo: implement the body to communicate with the server and requests the book. Return the result as an Output object. + // Adding extra methods to the class is permitted. The signature of this method must not change. + + return result; + } + + } +} diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Data.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Data.cs new file mode 100644 index 00000000..aeaa70d6 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Data.cs @@ -0,0 +1,48 @@ +// NOTE: THIS FILE MUST NOT CHANGE + +namespace LibData +{ + + public class Message + { + public MessageType Type { get; set; } + public string Content { get; set; } + } + + public enum MessageType + { + Hello, + Welcome, + BookInquiry, + UserInquiry, + BookInquiryReply, + UserInquiryReply, + EndCommunication, + Error, + NotFound, + } + + public class BookData + { + // the name of the book + public string Title { get; set; } + // the author of the book + public string Author { get; set; } + // the availability of the book: can be either Available or Borrowed + public string Status { get; set; } + //the user id of the person who borrowed the book, otherwise null if the book is available. + public string BorrowedBy { get; set; } + // return date of a book if it is borrowed, otherwise null. + public string ReturnDate { get; set; } + } + + public class UserData + { + // user id: has the format User-[a number] + public string User_id { get; set; } + // full name + public string Name { get; set; } + public string Email { get; set; } + public string Phone { get; set; } + } +} diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibClient.csproj b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibClient.csproj new file mode 100644 index 00000000..c5cb60fa --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibClient.csproj @@ -0,0 +1,7 @@ + + + + Exe + net5.0 + + \ No newline at end of file diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibInput.json b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibInput.json new file mode 100644 index 00000000..069b87b8 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibInput.json @@ -0,0 +1,14 @@ +[ + { + "BookName": "War and Peace" + }, + { + "BookName": "Harry Potter" + }, + { + "BookName": "Lord of the Rings" + }, + { + "BookName": "An Unknown Book" + } +] diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibOutput.json b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibOutput.json new file mode 100644 index 00000000..4bbc625c --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/LibOutput.json @@ -0,0 +1 @@ +[{"Client_id":"Client 0","BookName":"War and Peace","Status":"Borrowed","BorrowerName":"Abdul Barker","BorrowerEmail":"in@Pellentesqueultricies.co.uk"},{"Client_id":"Client 1","BookName":"Harry Potter","Status":"Available","BorrowerName":null,"BorrowerEmail":null},{"Client_id":"Client 2","BookName":"Lord of the Rings","Status":"Available","BorrowerName":null,"BorrowerEmail":null},{"Client_id":"Client 3","BookName":"An Unknown Book","Status":"NotFound","BorrowerName":null,"BorrowerEmail":null}] \ No newline at end of file diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Program.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Program.cs new file mode 100644 index 00000000..99a93d6f --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibClient/Program.cs @@ -0,0 +1,150 @@ +using System.Text; +using System.Diagnostics.Tracing; +using System.Drawing; +using System; +using System.Text.Json; +using System.IO; +using System.Collections.Generic; +// using LibClient; +using LibClientSolution; + + +// NOTE: DO NOT CHANGE THIS FILE +namespace LibClientSimulator +{ + public class InputData + { + public string BookName { get; set; } + } + public class ClientsSimulator + { + private SimpleClient client; + private List inputDataList; + private SimpleClient[] clients; + private Output[] results; + private string inputFile = @"LibInput.json"; + private string outputFile = @"LibOutput.json"; + + // paths for debugging + //private string inputFile = @"../../../LibInput.json"; + //private string outputFile = @"../../../LibOutput.json"; + + /// + /// Reads the input file and creats the clients and output objects accordingly + /// + public ClientsSimulator() + { + int id = 0; + try + { + string inputContent = File.ReadAllText(inputFile); + this.inputDataList = JsonSerializer.Deserialize>(inputContent); + clients = new SimpleClient[this.inputDataList.Count]; + results = new Output[this.inputDataList.Count]; + + // each client is initialized by a client id and a book name (from the input file) to request + foreach (InputData d in this.inputDataList) + { + clients[id] = new SimpleClient(id, d.BookName); + id++; + } + } + catch (Exception e) { Console.Out.WriteLine("[ClientSimulator] Exception: {0}", e.Message); } + } + /// + /// Starts the book requesting process for each client and collects the result for each request + /// + public void startSimulation() + { + int numCases = clients.Length; + for (int i = 0; i < numCases; i++) + { + Console.Out.WriteLine("\n *********** \n"); + results[i] = clients[i].start(); + } + //this is the ending client + new SimpleClient(-1, "").start(); + } + + /// + /// Prints all the results in console and produces the output file + /// + public void printOutput() + { + Console.Out.WriteLine("\n *************** Final Output *********** \n"); + for (int i = 0; i < results.Length; i++) + Console.WriteLine("{0} {1} {2} {3}", + results[i].Client_id, + results[i].BookName, + results[i].BorrowerName, + results[i].BorrowerEmail); + string outputContent = JsonSerializer.Serialize(this.results); + Console.WriteLine("Content of the Output file:\n {0}", outputContent); + + File.WriteAllText(outputFile, outputContent); + } + } + + class Program + { + /// + /// Starts the simulation for a set of clients and produces the output results. + /// + /// + + static void Main(string[] args) + { + + using var listener = new SocketEventListener(); + Console.Clear(); + ClientsSimulator simulator = new ClientsSimulator(); + simulator.startSimulation(); + + simulator.printOutput(); + } + + internal sealed class SocketEventListener : EventListener + { + // Constant necessary for attaching ActivityId to the events. + public const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; + + protected override void OnEventSourceCreated(EventSource eventSource) + { + // List of event source names provided by networking in .NET 5. + if (eventSource.Name == "System.Net.Sockets" || + eventSource.Name == "System.Net.Security" || + eventSource.Name == "System.Net.NameResolution") + { + EnableEvents(eventSource, EventLevel.LogAlways); + } + // Turn on ActivityId. + else if (eventSource.Name == "System.Threading.Tasks.TplEventSource") + { + // Attach ActivityId to the events. + EnableEvents(eventSource, EventLevel.LogAlways, TasksFlowActivityIds); + } + } + + protected override void OnEventWritten(EventWrittenEventArgs eventData) + { + Console.ResetColor(); + + var sb = new StringBuilder().Append($"{eventData.TimeStamp:HH:mm:ss.ff} {eventData.ActivityId}.{eventData.RelatedActivityId} {eventData.EventSource.Name}.{eventData.EventName}("); + for (int i = 0; i < eventData.Payload?.Count; i++) + { + sb.Append(eventData.PayloadNames?[i]).Append(": ").Append(eventData.Payload[i]); + if (i < eventData.Payload?.Count - 1) + { + sb.Append(", "); + } + } + + sb.Append(")"); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine(sb.ToString()); + Console.ResetColor(); + } + } + } + +} diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/Data.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/Data.cs new file mode 100644 index 00000000..2106c130 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/Data.cs @@ -0,0 +1,48 @@ +// NOTE: THIS FILE MUST NOT CHANGE + +namespace LibData +{ + + public class Message + { + public MessageType Type { get; set; } + public string Content { get; set; } + } + + public enum MessageType + { + Hello, + Welcome, + BookInquiry, + UserInquiry, + BookInquiryReply, + UserInquiryReply, + EndCommunication, + Error, + NotFound, + } + + public class BookData + { + // the name of the book + public string Title { get; set; } + // the author of the book + public string Author { get; set; } + // the availability of the book: can be either Available or Borrowed + public string Status { get; set; } + //the user id of the person who borrowed the book, otherwise null if the book is available. + public string BorrowedBy { get; set; } + // return date of a book if it is borrowed, otherwise null. + public string ReturnDate { get; set; } + } + + public class UserData + { + // user id: has the format User-[a number] + public string User_id { get; set; } + // full name + public string Name { get; set; } + public string Email { get; set; } + public string Phone { get; set; } + } +} diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/LibServer.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/LibServer.cs new file mode 100644 index 00000000..724c6b86 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/LibServer.cs @@ -0,0 +1,42 @@ +using System; +using System.Text.Json; +using System.Net; +using System.Net.Sockets; +using System.IO; +using LibData; + + +namespace LibServer +{ + // Note: Do not change this class. + public class Setting + { + public int serverPortNumber { get; set; } + public int bookHelperPortNumber { get; set; } + public int userHelperPortNumber { get; set; } + public string serverIPAddress { get; set; } + public string bookHelperIPAddress { get; set; } + public string userHelperIPAddress { get; set; } + public int serverListeningQueue { get; set; } + } + + + // Note: Complete the implementation of this class. You can adjust the structure of this class. + public class SequentialServer + { + public SequentialServer() + { + //todo: implement the body. Add extra fields and methods to the class if it is needed + } + + public void start() + { + //todo: implement the body. Add extra fields and methods to the class if it is needed + + } + } + +} + + + diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/LibServer.csproj b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/LibServer.csproj new file mode 100644 index 00000000..1d2d39a9 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/LibServer.csproj @@ -0,0 +1,8 @@ + + + + Exe + net5.0 + + + diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/Program.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/Program.cs new file mode 100644 index 00000000..ffdc42bb --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibServer/Program.cs @@ -0,0 +1,86 @@ +using System; +// using LibServer; +using LibServerSolution; +using System.Text; +using System.Diagnostics.Tracing; + +// NOTE: THIS FILE MUST NOT CHANGE + +namespace Server +{ + public class ServerSimulator + { + public Setting settings; + + public ServerSimulator() + { } + + /// + /// initiates the server + /// + public void sequentialRun() + { + SequentialServer server = new SequentialServer(); + server.start(); + } + } + + public class Program + { + /// + /// Starts the simulation for a set of clients and produces the output results. + /// + /// + static void Main(string[] args) + { + using var listener = new SocketEventListener(); + Console.Clear(); + new ServerSimulator().sequentialRun(); + + } + + internal sealed class SocketEventListener : EventListener + { + // Constant necessary for attaching ActivityId to the events. + public const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; + + protected override void OnEventSourceCreated(EventSource eventSource) + { + // List of event source names provided by networking in .NET 5. + if (eventSource.Name == "System.Net.Sockets" || + eventSource.Name == "System.Net.Security" || + eventSource.Name == "System.Net.NameResolution") + { + EnableEvents(eventSource, EventLevel.LogAlways); + } + // Turn on ActivityId. + else if (eventSource.Name == "System.Threading.Tasks.TplEventSource") + { + // Attach ActivityId to the events. + EnableEvents(eventSource, EventLevel.LogAlways, TasksFlowActivityIds); + } + } + + protected override void OnEventWritten(EventWrittenEventArgs eventData) + { + Console.ResetColor(); + + var sb = new StringBuilder().Append($"{eventData.TimeStamp:HH:mm:ss.ff} {eventData.ActivityId}.{eventData.RelatedActivityId} {eventData.EventSource.Name}.{eventData.EventName} {eventData.Task}.{eventData.Message}("); + for (int i = 0; i < eventData.Payload?.Count; i++) + { + sb.Append(eventData.PayloadNames?[i]).Append(": ").Append(eventData.Payload[i]); + if (i < eventData.Payload?.Count - 1) + { + sb.Append(", "); + } + } + + sb.Append(")"); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine(sb.ToString()); + Console.ResetColor(); + } + } + } +} + diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Data.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Data.cs new file mode 100644 index 00000000..aeaa70d6 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Data.cs @@ -0,0 +1,48 @@ +// NOTE: THIS FILE MUST NOT CHANGE + +namespace LibData +{ + + public class Message + { + public MessageType Type { get; set; } + public string Content { get; set; } + } + + public enum MessageType + { + Hello, + Welcome, + BookInquiry, + UserInquiry, + BookInquiryReply, + UserInquiryReply, + EndCommunication, + Error, + NotFound, + } + + public class BookData + { + // the name of the book + public string Title { get; set; } + // the author of the book + public string Author { get; set; } + // the availability of the book: can be either Available or Borrowed + public string Status { get; set; } + //the user id of the person who borrowed the book, otherwise null if the book is available. + public string BorrowedBy { get; set; } + // return date of a book if it is borrowed, otherwise null. + public string ReturnDate { get; set; } + } + + public class UserData + { + // user id: has the format User-[a number] + public string User_id { get; set; } + // full name + public string Name { get; set; } + public string Email { get; set; } + public string Phone { get; set; } + } +} diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Program.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Program.cs new file mode 100644 index 00000000..885a7fa1 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Program.cs @@ -0,0 +1,84 @@ +using System.Drawing; +using System; +// using UserHelper; +using UserHelperSolution; +using System.Text; +using System.Diagnostics.Tracing; + +// NOTE: THIS FILE MUST NOT CHANGE + +namespace LibHelper +{ + public class HelperSimulator + { + /// + /// initiates the helper + /// + public void sequentialRun() + { + SequentialHelper server = new SequentialHelper(); + server.start(); + } + } + + class Program + { + /// + /// Starts the simulation for a set of clients and produces the output results. + /// + /// + static void Main(string[] args) + { + using var listener = new SocketEventListener(); + Console.Clear(); + HelperSimulator hs = new HelperSimulator(); + hs.sequentialRun(); + } + + internal sealed class SocketEventListener : EventListener + { + // Constant necessary for attaching ActivityId to the events. + public const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; + + protected override void OnEventSourceCreated(EventSource eventSource) + { + // List of event source names provided by networking in .NET 5. + if (eventSource.Name == "System.Net.Sockets" || + eventSource.Name == "System.Net.Security"|| + eventSource.Name == "System.Net.NameResolution") + { + EnableEvents(eventSource, EventLevel.LogAlways); + } + // Turn on ActivityId. + else if (eventSource.Name == "System.Threading.Tasks.TplEventSource") + { + // Attach ActivityId to the events. + EnableEvents(eventSource, EventLevel.LogAlways, TasksFlowActivityIds); + } + } + + protected override void OnEventWritten(EventWrittenEventArgs eventData) + { + Console.ResetColor(); + + var sb = new StringBuilder().Append($"{eventData.TimeStamp:HH:mm:ss.ff} {eventData.ActivityId}.{eventData.RelatedActivityId} {eventData.EventSource.Name}.{eventData.EventName}("); + for (int i = 0; i < eventData.Payload?.Count; i++) + { + + sb.Append(eventData.PayloadNames?[i]).Append(": ").Append(eventData.Payload[i]); + if (i < eventData.Payload?.Count - 1) + { + sb.Append(", "); + } + } + + sb.Append(")"); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine(sb.ToString()); + Console.ResetColor(); + } + } + } + + +} diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/UserHelper.cs b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/UserHelper.cs new file mode 100644 index 00000000..75dd26bf --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/UserHelper.cs @@ -0,0 +1,36 @@ +using System; +using System.Text.Json; +using System.Net; +using System.Net.Sockets; +using System.IO; +using System.Collections.Generic; +using LibData; + +namespace UserHelper +{ + // Note: Do not change this class. + public class Setting + { + public int ServerPortNumber { get; set; } + public int BookHelperPortNumber { get; set; } + public int UserHelperPortNumber { get; set; } + public string ServerIPAddress { get; set; } + public string BookHelperIPAddress { get; set; } + public string UserHelperIPAddress { get; set; } + public int ServerListeningQueue { get; set; } + } + + // Note: Complete the implementation of this class. You can adjust the structure of this class. + public class SequentialHelper + { + public SequentialHelper() + { + //todo: implement the body. Add extra fields and methods to the class if needed + } + + public void start() + { + //todo: implement the body. Add extra fields and methods to the class if needed + } + } +} diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/UserHelper.csproj b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/UserHelper.csproj new file mode 100644 index 00000000..1d2d39a9 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/UserHelper.csproj @@ -0,0 +1,8 @@ + + + + Exe + net5.0 + + + diff --git a/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Users.json b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Users.json new file mode 100644 index 00000000..2eb58898 --- /dev/null +++ b/temp/DistLibraryFinalTeachers/DistLibraryFinalTeachers/LibUserHelper/Users.json @@ -0,0 +1 @@ +[{"User_id":"user-1","Name":"Lawrence Cote","Email":"libero@Maecenas.edu","Phone":"0685-603094"},{"User_id":"user-2","Name":"Abdul Barker","Email":"in@Pellentesqueultricies.co.uk","Phone":"0219-483408"},{"User_id":"user-3","Name":"Zeus Aguirre","Email":"ut.aliquam.iaculis@euismodmauriseu.ca","Phone":"0855-091224"},{"User_id":"user-4","Name":"Octavius Hardin","Email":"Nunc@eudolor.org","Phone":"0383-935269"},{"User_id":"user-5","Name":"Kirk Burch","Email":"tempor.est@montesnascetur.co.uk","Phone":"0972-899277"},{"User_id":"user-6","Name":"Raphael Cruz","Email":"purus@risusIn.net","Phone":"0353-696808"},{"User_id":"user-7","Name":"Charles Hughes","Email":"turpis.egestas@ac.com","Phone":"0655-024058"},{"User_id":"user-8","Name":"William Hoffman","Email":"Nullam@pedenec.com","Phone":"0717-814111"},{"User_id":"user-9","Name":"Cyrus Frye","Email":"Sed.dictum.Proin@nonbibendumsed.edu","Phone":"0317-074024"},{"User_id":"user-10","Name":"Lars Morin","Email":"consequat.lectus@liberoettristique.com","Phone":"0477-714268"},{"User_id":"user-11","Name":"Zephania Higgins","Email":"magna@ullamcorperDuis.net","Phone":"0843-150941"},{"User_id":"user-12","Name":"Kirk Spence","Email":"aliquam.eros@malesuadaaugue.net","Phone":"0337-574531"},{"User_id":"user-13","Name":"Chadwick Mosley","Email":"mauris.erat@non.ca","Phone":"0273-278583"},{"User_id":"user-14","Name":"Kato Suarez","Email":"rutrum.lorem.ac@Suspendisse.ca","Phone":"0384-756094"},{"User_id":"user-15","Name":"Wesley Nielsen","Email":"magna@Vivamusrhoncus.co.uk","Phone":"0138-243319"},{"User_id":"user-16","Name":"Ezra Flores","Email":"ut@nonloremvitae.ca","Phone":"0645-369359"},{"User_id":"user-17","Name":"Drew Sears","Email":"sem.vitae.aliquam@quamafelis.org","Phone":"0709-018874"},{"User_id":"user-18","Name":"David Newman","Email":"enim.Suspendisse@enim.org","Phone":"0750-521546"},{"User_id":"user-19","Name":"Lyle Contreras","Email":"et.pede.Nunc@at.edu","Phone":"0326-411776"},{"User_id":"user-20","Name":"Fritz Barry","Email":"Nullam.feugiat.placerat@ornare.ca","Phone":"0319-371410"},{"User_id":"user-21","Name":"Ferdinand Chaney","Email":"at.lacus.Quisque@id.ca","Phone":"0416-431601"},{"User_id":"user-22","Name":"Cullen Benjamin","Email":"et.arcu.imperdiet@sapienCras.com","Phone":"0441-560126"},{"User_id":"user-23","Name":"Dean Nielsen","Email":"augue.eu.tellus@ultricies.co.uk","Phone":"0964-908558"},{"User_id":"user-24","Name":"Harding Beach","Email":"pede.Nunc@eleifendnec.co.uk","Phone":"0901-635151"},{"User_id":"user-25","Name":"Zahir Byrd","Email":"ut.quam.vel@ornarelectus.ca","Phone":"0963-399167"},{"User_id":"user-26","Name":"Zeus Fischer","Email":"odio.sagittis.semper@necquam.com","Phone":"0227-120259"},{"User_id":"user-27","Name":"Bruno Berg","Email":"nulla.at.sem@adipiscingelitCurabitur.org","Phone":"0892-563043"},{"User_id":"user-28","Name":"Victor May","Email":"Vivamus@sedfacilisisvitae.ca","Phone":"0297-033411"},{"User_id":"user-29","Name":"Calvin Christian","Email":"sapien@dis.com","Phone":"0932-647318"},{"User_id":"user-30","Name":"Beau Randall","Email":"a.neque@enimCurabiturmassa.ca","Phone":"0480-572528"},{"User_id":"user-31","Name":"Drake Hester","Email":"Proin.dolor.Nulla@sed.net","Phone":"0646-239983"},{"User_id":"user-32","Name":"Ulric Reynolds","Email":"neque.Nullam@utcursusluctus.ca","Phone":"0714-727819"},{"User_id":"user-33","Name":"Kato Maldonado","Email":"urna@lectus.org","Phone":"0560-928761"},{"User_id":"user-34","Name":"Quinlan Carney","Email":"id.ante@aliquamadipiscing.com","Phone":"0450-643838"},{"User_id":"user-35","Name":"Finn Vaughn","Email":"tempus@nasceturridiculus.org","Phone":"0287-050131"},{"User_id":"user-36","Name":"Clayton Cohen","Email":"risus@idenim.net","Phone":"0406-884561"},{"User_id":"user-37","Name":"Benjamin Forbes","Email":"Quisque.ornare.tortor@anteblandit.net","Phone":"0873-962366"},{"User_id":"user-38","Name":"Barry Williams","Email":"ornare.elit.elit@nec.com","Phone":"0639-145364"},{"User_id":"user-39","Name":"Lev Peterson","Email":"a.enim@Quisque.org","Phone":"0989-736392"},{"User_id":"user-40","Name":"Alfonso Chase","Email":"In.faucibus@velitCraslorem.ca","Phone":"0680-959374"},{"User_id":"user-41","Name":"Forrest Bray","Email":"nunc.sed.libero@nec.com","Phone":"0137-869128"},{"User_id":"user-42","Name":"Leo Pitts","Email":"ut@tristiquenequevenenatis.org","Phone":"0770-852522"},{"User_id":"user-43","Name":"Darius Whitaker","Email":"Aliquam.vulputate@Duisami.co.uk","Phone":"0293-169307"},{"User_id":"user-44","Name":"Silas Jacobson","Email":"lorem.auctor.quis@scelerisque.org","Phone":"0561-348451"},{"User_id":"user-45","Name":"Callum Poole","Email":"et.commodo.at@Suspendisse.org","Phone":"0198-273496"},{"User_id":"user-46","Name":"Garrison Diaz","Email":"nunc.Quisque.ornare@a.edu","Phone":"0285-048090"},{"User_id":"user-47","Name":"Cedric Ewing","Email":"at@fringillami.org","Phone":"0804-931149"},{"User_id":"user-48","Name":"Nicholas Foreman","Email":"velit.dui@diam.edu","Phone":"0486-834702"},{"User_id":"user-49","Name":"Ashton Pitts","Email":"auctor@dictumeleifendnunc.ca","Phone":"0771-872541"},{"User_id":"user-50","Name":"Brady Orr","Email":"sem.magna.nec@loremac.co.uk","Phone":"0387-182017"},{"User_id":"user-51","Name":"Steven Gentry","Email":"consequat.lectus@at.edu","Phone":"0667-887815"},{"User_id":"user-52","Name":"Clarke Salas","Email":"mauris@lobortisnisinibh.com","Phone":"0132-328522"},{"User_id":"user-53","Name":"Colin Morales","Email":"mauris.ut.mi@IncondimentumDonec.com","Phone":"0231-667196"},{"User_id":"user-54","Name":"Drew Fitzgerald","Email":"et.magnis.dis@Phasellusliberomauris.ca","Phone":"0111-215211"},{"User_id":"user-55","Name":"Gabriel Navarro","Email":"et.rutrum.eu@eget.edu","Phone":"0533-619585"},{"User_id":"user-56","Name":"Driscoll Heath","Email":"posuere.at.velit@Phasellus.ca","Phone":"0572-369168"},{"User_id":"user-57","Name":"Nash Vinson","Email":"metus.sit.amet@Fusce.net","Phone":"0222-090547"},{"User_id":"user-58","Name":"Omar Gonzalez","Email":"eget@Etiam.edu","Phone":"0266-826040"},{"User_id":"user-59","Name":"Cadman Hunt","Email":"conubia@semperet.com","Phone":"0323-643550"},{"User_id":"user-60","Name":"Samson Baxter","Email":"ac.mattis.velit@ipsum.edu","Phone":"0468-975433"},{"User_id":"user-61","Name":"Connor Ball","Email":"ligula.Aenean@semegestasblandit.org","Phone":"0346-113151"},{"User_id":"user-62","Name":"Ulysses Hahn","Email":"cursus.purus@ac.org","Phone":"0792-099607"},{"User_id":"user-63","Name":"Clinton Hancock","Email":"egestas@sapienAeneanmassa.co.uk","Phone":"0741-605720"},{"User_id":"user-64","Name":"Gage Snow","Email":"Aenean.euismod@loremsemperauctor.ca","Phone":"0899-485786"},{"User_id":"user-65","Name":"Logan Sexton","Email":"cursus.Nunc@loremfringillaornare.edu","Phone":"0559-202978"},{"User_id":"user-66","Name":"Demetrius Wade","Email":"tincidunt.neque@Fuscefeugiat.edu","Phone":"0756-225542"},{"User_id":"user-67","Name":"Brock Griffin","Email":"ultrices.posuere.cubilia@hendreritidante.edu","Phone":"0386-685810"},{"User_id":"user-68","Name":"Hedley Kramer","Email":"id@risus.org","Phone":"0979-044631"},{"User_id":"user-69","Name":"Damian Sullivan","Email":"non.sollicitudin.a@gravidanunc.ca","Phone":"0635-912048"},{"User_id":"user-70","Name":"Zachary Wolf","Email":"velit@interdumenimnon.org","Phone":"0403-287732"},{"User_id":"user-71","Name":"Wylie Buck","Email":"erat@lorem.org","Phone":"0863-375851"},{"User_id":"user-72","Name":"Hilel Roberson","Email":"nisi@velfaucibus.co.uk","Phone":"0502-434070"},{"User_id":"user-73","Name":"Kadeem Chavez","Email":"nec@Nullamfeugiat.com","Phone":"0892-585725"},{"User_id":"user-74","Name":"Rooney Welch","Email":"ultricies.dignissim.lacus@Maecenasmalesuadafringilla.org","Phone":"0120-431647"},{"User_id":"user-75","Name":"Cody Woodward","Email":"cubilia@ac.edu","Phone":"0219-368773"},{"User_id":"user-76","Name":"Jackson Terrell","Email":"mollis@sedpedeCum.ca","Phone":"0406-456026"},{"User_id":"user-77","Name":"Merrill Benton","Email":"Quisque.varius@libero.org","Phone":"0869-700827"},{"User_id":"user-78","Name":"Xander Sutton","Email":"Integer.vulputate.risus@nonummyultriciesornare.net","Phone":"0742-274863"},{"User_id":"user-79","Name":"Carson Guerrero","Email":"fringilla.ornare.placerat@utsemNulla.co.uk","Phone":"0200-027298"},{"User_id":"user-80","Name":"Keegan Dodson","Email":"a.tortor@Sed.ca","Phone":"0119-720334"},{"User_id":"user-81","Name":"Laith Aguirre","Email":"blandit.viverra.Donec@Nuncacsem.ca","Phone":"0764-013374"},{"User_id":"user-82","Name":"Burton Garrett","Email":"facilisis.non@felisorciadipiscing.net","Phone":"0358-606518"},{"User_id":"user-83","Name":"Quinlan Santiago","Email":"arcu.Vivamus@etrutrumnon.ca","Phone":"0490-902034"},{"User_id":"user-84","Name":"Joseph Mclean","Email":"litora@congue.org","Phone":"0518-537486"},{"User_id":"user-85","Name":"Francis Campos","Email":"libero@molestietortor.org","Phone":"0574-740285"},{"User_id":"user-86","Name":"Oren Bender","Email":"risus.Donec@Seddiamlorem.com","Phone":"0320-973456"},{"User_id":"user-87","Name":"Rogan Watson","Email":"dolor.dolor.tempus@pellentesquea.org","Phone":"0120-075623"},{"User_id":"user-88","Name":"Cade Schwartz","Email":"id@Craseutellus.org","Phone":"0254-018877"},{"User_id":"user-89","Name":"Joshua Farley","Email":"non.egestas.a@nasceturridiculus.com","Phone":"0412-514901"},{"User_id":"user-90","Name":"John Williams","Email":"nec.tellus@anteipsumprimis.co.uk","Phone":"0689-499424"},{"User_id":"user-91","Name":"Ishmael Santos","Email":"aliquam.arcu.Aliquam@nonsapien.com","Phone":"0401-468173"},{"User_id":"user-92","Name":"Adam Sanford","Email":"laoreet.posuere.enim@sollicitudincommodo.co.uk","Phone":"0954-483461"},{"User_id":"user-93","Name":"Graham Valenzuela","Email":"elementum.dui@Quisquelibero.ca","Phone":"0371-799230"},{"User_id":"user-94","Name":"Solomon Hodges","Email":"dictum.cursus@varius.ca","Phone":"0299-558815"},{"User_id":"user-95","Name":"Cain Jacobson","Email":"lobortis@etmalesuada.edu","Phone":"0732-793443"},{"User_id":"user-96","Name":"Rafael Russo","Email":"adipiscing.ligula@penatibuset.org","Phone":"0458-001240"},{"User_id":"user-97","Name":"Barclay Dennis","Email":"magna@elit.net","Phone":"0240-122074"},{"User_id":"user-98","Name":"Joshua Barton","Email":"nec.mauris.blandit@feugiatmetus.co.uk","Phone":"0568-468707"},{"User_id":"user-99","Name":"Paul Thompson","Email":"Sed.eu.nibh@Sedneque.edu","Phone":"0481-532470"},{"User_id":"user-100","Name":"Akeem Nicholson","Email":"dapibus@enimmitempor.co.uk","Phone":"0818-909694"}] \ No newline at end of file