Advertisement
IvanNikolov2217

rad 1

May 19th, 2022
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.87 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using BusinessLayer;
  7.  
  8. namespace Client
  9. {
  10.     class Program
  11.     {
  12.         static Dictionary<Type, object> recievedOperation = new Dictionary<Type, object>();
  13.         static Dictionary<Type, object> recievedData = new Dictionary<Type, object>();
  14.         static BinaryMessage operationToSend = new BinaryMessage();
  15.         static BinaryMessage dataToSend = new BinaryMessage();
  16.  
  17.         static void Main(string[] args)
  18.         {
  19.             try
  20.             {
  21.                 ClientManager.InitializeClient();
  22.  
  23.                 do
  24.                 {
  25.                     ShowMenu();
  26.  
  27.                     if (!ClientManager.CommunicationIsActive)
  28.                     {
  29.                         break;
  30.                     }
  31.  
  32.                 } while (ClientManager.ContinueCommunicating());
  33.  
  34.                 EndCommunication();
  35.  
  36.                 Console.WriteLine("Press any key to close the client API!");
  37.                 Console.ReadKey();
  38.             }
  39.             catch (Exception ex)
  40.             {
  41.                 Console.WriteLine(ex.Message);
  42.                 Console.WriteLine("Press any key to close the program");
  43.                 Console.ReadKey();
  44.             }
  45.             finally
  46.             {
  47.                 ClientManager.CloseConnection();
  48.             }
  49.         }
  50.  
  51.         private static void ShowMenu()
  52.         {
  53.             Console.WriteLine(Environment.NewLine);
  54.             Console.WriteLine("Select option:");
  55.             Console.WriteLine("1) Create User");
  56.             Console.WriteLine("2) Create Message");
  57.             Console.WriteLine("3) View Users");
  58.             Console.WriteLine("4) View Messages");
  59.             Console.WriteLine("5) Send Message to User via Server");
  60.             Console.WriteLine("6) Exit");
  61.  
  62.             Console.Write("Your choice: ");
  63.             int choice = Convert.ToInt32(Console.ReadLine());
  64.  
  65.             switch (choice)
  66.             {
  67.                 case 1: CreateUser(); break;
  68.                 case 2: CreateMessage(); break;
  69.                 case 3: ViewUsers(); break;
  70.                 case 4: ViewMessages(); break;
  71.                 case 5: SendMessageToUser(); break;
  72.                 case 6: ClientManager.CommunicationIsActive = false; break;
  73.                 default: throw new ArgumentException("Invalid option!");
  74.             }
  75.         }
  76.  
  77.         private static void CreateUser()
  78.         {
  79.             Console.Write("Age: ");
  80.             int age = Convert.ToInt32(Console.ReadLine());
  81.  
  82.             Console.Write("Name: ");
  83.             string name = Console.ReadLine();
  84.  
  85.             User user = new User(age, name);
  86.  
  87.             operationToSend = TransformDataManager.Serialize(1);
  88.             dataToSend = TransformDataManager.Serialize(user);
  89.  
  90.             ClientManager.SendMessage(operationToSend);
  91.             ClientManager.SendMessage(dataToSend);
  92.         }
  93.  
  94.         private static void CreateMessage()
  95.         {
  96.             Console.Write("Title: ");
  97.             string title = Console.ReadLine();
  98.  
  99.             Console.Write("Text: ");
  100.             string text = Console.ReadLine();
  101.  
  102.             Console.Write("Sender [enter the index of the Users array]: ");
  103.             int index = Convert.ToInt32(Console.ReadLine());
  104.  
  105.             operationToSend = TransformDataManager.Serialize(6);
  106.             dataToSend = TransformDataManager.Serialize(index);
  107.  
  108.             ClientManager.SendMessage(operationToSend);
  109.             ClientManager.SendMessage(dataToSend);
  110.  
  111.             recievedData = ClientManager.WaitForMessage();
  112.  
  113.             User sender = recievedData[typeof(User)] as User;
  114.  
  115.             Message message = new Message(title, text, sender);
  116.  
  117.             operationToSend = TransformDataManager.Serialize(2);
  118.             dataToSend = TransformDataManager.Serialize(message);
  119.  
  120.             ClientManager.SendMessage(operationToSend);
  121.             ClientManager.SendMessage(dataToSend);
  122.         }
  123.  
  124.         private static void ViewUsers()
  125.         {
  126.             operationToSend = TransformDataManager.Serialize(3);
  127.             dataToSend = TransformDataManager.Serialize(string.Empty);
  128.  
  129.             ClientManager.SendMessage(operationToSend);
  130.             ClientManager.SendMessage(dataToSend);
  131.  
  132.             recievedData = ClientManager.WaitForMessage();
  133.  
  134.             List<User> users = recievedData[typeof(List<User>)] as List<User>;
  135.  
  136.             Console.WriteLine(Environment.NewLine + "Users Information:");
  137.  
  138.             foreach (User user in users)
  139.             {
  140.                 Console.WriteLine("ID: {0}", user.ID);
  141.                 Console.WriteLine("Age: {0} # Name: {1}", user.Age, user.Name);
  142.             }
  143.             Console.WriteLine();
  144.         }
  145.  
  146.         private static void ViewMessages()
  147.         {
  148.             operationToSend = TransformDataManager.Serialize(4);
  149.             dataToSend = TransformDataManager.Serialize(string.Empty);
  150.  
  151.             ClientManager.SendMessage(operationToSend);
  152.             ClientManager.SendMessage(dataToSend);
  153.  
  154.             recievedData = ClientManager.WaitForMessage();
  155.  
  156.             List<Message> messages = recievedData[typeof(List<Message>)] as List<Message>;
  157.  
  158.             Console.WriteLine(Environment.NewLine + "Messages Information:");
  159.  
  160.             foreach (Message message in messages)
  161.             {
  162.                 Console.WriteLine("ID: {0}", message.ID);
  163.                 Console.WriteLine("Title: {0} # Text: {1}", message.Title, message.Text);
  164.             }
  165.             Console.WriteLine();
  166.         }
  167.  
  168.         private static void SendMessageToUser()
  169.         {
  170.             Console.Write("Message [enter the index of the Messages array]: ");
  171.             int messageIndex = Convert.ToInt32(Console.ReadLine());
  172.  
  173.             operationToSend = TransformDataManager.Serialize(7);
  174.             dataToSend = TransformDataManager.Serialize(messageIndex);
  175.  
  176.             ClientManager.SendMessage(operationToSend);
  177.             ClientManager.SendMessage(dataToSend);
  178.  
  179.             recievedData = ClientManager.WaitForMessage();
  180.             Message message = recievedData[typeof(Message)] as Message;
  181.  
  182.  
  183.             Console.Write("Sender [enter the index of the Users array]: ");
  184.             int senderIndex = Convert.ToInt32(Console.ReadLine());
  185.  
  186.             operationToSend = TransformDataManager.Serialize(6);
  187.             dataToSend = TransformDataManager.Serialize(senderIndex);
  188.  
  189.             ClientManager.SendMessage(operationToSend);
  190.             ClientManager.SendMessage(dataToSend);
  191.  
  192.             recievedData = ClientManager.WaitForMessage();
  193.             User sender = recievedData[typeof(User)] as User;
  194.  
  195.  
  196.             Console.Write("Receiver [enter the index of the Users array]: ");
  197.             int receiverIndex = Convert.ToInt32(Console.ReadLine());
  198.  
  199.             operationToSend = TransformDataManager.Serialize(6);
  200.             dataToSend = TransformDataManager.Serialize(receiverIndex);
  201.  
  202.             ClientManager.SendMessage(operationToSend);
  203.             ClientManager.SendMessage(dataToSend);
  204.  
  205.             recievedData = ClientManager.WaitForMessage();
  206.             User receiver = recievedData[typeof(User)] as User;
  207.  
  208.             Message messageToSend = new Message(message.Title, message.Text,
  209.                 sender, receiver);
  210.  
  211.             operationToSend = TransformDataManager.Serialize(5);
  212.             dataToSend = TransformDataManager.Serialize(messageToSend);
  213.  
  214.             ClientManager.SendMessage(operationToSend);
  215.             ClientManager.SendMessage(dataToSend);
  216.         }
  217.  
  218.         public static void EndCommunication()
  219.         {
  220.             operationToSend = TransformDataManager.Serialize(8);
  221.             dataToSend = TransformDataManager.Serialize(string.Empty);
  222.  
  223.             ClientManager.SendMessage(operationToSend);
  224.             ClientManager.SendMessage(dataToSend);
  225.         }
  226.  
  227.     }
  228. }
  229.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement