Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using BusinessLayer;
- namespace Client
- {
- class Program
- {
- static Dictionary<Type, object> recievedOperation = new Dictionary<Type, object>();
- static Dictionary<Type, object> recievedData = new Dictionary<Type, object>();
- static BinaryMessage operationToSend = new BinaryMessage();
- static BinaryMessage dataToSend = new BinaryMessage();
- static void Main(string[] args)
- {
- try
- {
- ClientManager.InitializeClient();
- do
- {
- ShowMenu();
- if (!ClientManager.CommunicationIsActive)
- {
- break;
- }
- } while (ClientManager.ContinueCommunicating());
- EndCommunication();
- Console.WriteLine("Press any key to close the client API!");
- Console.ReadKey();
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- Console.WriteLine("Press any key to close the program");
- Console.ReadKey();
- }
- finally
- {
- ClientManager.CloseConnection();
- }
- }
- private static void ShowMenu()
- {
- Console.WriteLine(Environment.NewLine);
- Console.WriteLine("Select option:");
- Console.WriteLine("1) Create User");
- Console.WriteLine("2) Create Message");
- Console.WriteLine("3) View Users");
- Console.WriteLine("4) View Messages");
- Console.WriteLine("5) Send Message to User via Server");
- Console.WriteLine("6) Exit");
- Console.Write("Your choice: ");
- int choice = Convert.ToInt32(Console.ReadLine());
- switch (choice)
- {
- case 1: CreateUser(); break;
- case 2: CreateMessage(); break;
- case 3: ViewUsers(); break;
- case 4: ViewMessages(); break;
- case 5: SendMessageToUser(); break;
- case 6: ClientManager.CommunicationIsActive = false; break;
- default: throw new ArgumentException("Invalid option!");
- }
- }
- private static void CreateUser()
- {
- Console.Write("Age: ");
- int age = Convert.ToInt32(Console.ReadLine());
- Console.Write("Name: ");
- string name = Console.ReadLine();
- User user = new User(age, name);
- operationToSend = TransformDataManager.Serialize(1);
- dataToSend = TransformDataManager.Serialize(user);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- }
- private static void CreateMessage()
- {
- Console.Write("Title: ");
- string title = Console.ReadLine();
- Console.Write("Text: ");
- string text = Console.ReadLine();
- Console.Write("Sender [enter the index of the Users array]: ");
- int index = Convert.ToInt32(Console.ReadLine());
- operationToSend = TransformDataManager.Serialize(6);
- dataToSend = TransformDataManager.Serialize(index);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- recievedData = ClientManager.WaitForMessage();
- User sender = recievedData[typeof(User)] as User;
- Message message = new Message(title, text, sender);
- operationToSend = TransformDataManager.Serialize(2);
- dataToSend = TransformDataManager.Serialize(message);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- }
- private static void ViewUsers()
- {
- operationToSend = TransformDataManager.Serialize(3);
- dataToSend = TransformDataManager.Serialize(string.Empty);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- recievedData = ClientManager.WaitForMessage();
- List<User> users = recievedData[typeof(List<User>)] as List<User>;
- Console.WriteLine(Environment.NewLine + "Users Information:");
- foreach (User user in users)
- {
- Console.WriteLine("ID: {0}", user.ID);
- Console.WriteLine("Age: {0} # Name: {1}", user.Age, user.Name);
- }
- Console.WriteLine();
- }
- private static void ViewMessages()
- {
- operationToSend = TransformDataManager.Serialize(4);
- dataToSend = TransformDataManager.Serialize(string.Empty);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- recievedData = ClientManager.WaitForMessage();
- List<Message> messages = recievedData[typeof(List<Message>)] as List<Message>;
- Console.WriteLine(Environment.NewLine + "Messages Information:");
- foreach (Message message in messages)
- {
- Console.WriteLine("ID: {0}", message.ID);
- Console.WriteLine("Title: {0} # Text: {1}", message.Title, message.Text);
- }
- Console.WriteLine();
- }
- private static void SendMessageToUser()
- {
- Console.Write("Message [enter the index of the Messages array]: ");
- int messageIndex = Convert.ToInt32(Console.ReadLine());
- operationToSend = TransformDataManager.Serialize(7);
- dataToSend = TransformDataManager.Serialize(messageIndex);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- recievedData = ClientManager.WaitForMessage();
- Message message = recievedData[typeof(Message)] as Message;
- Console.Write("Sender [enter the index of the Users array]: ");
- int senderIndex = Convert.ToInt32(Console.ReadLine());
- operationToSend = TransformDataManager.Serialize(6);
- dataToSend = TransformDataManager.Serialize(senderIndex);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- recievedData = ClientManager.WaitForMessage();
- User sender = recievedData[typeof(User)] as User;
- Console.Write("Receiver [enter the index of the Users array]: ");
- int receiverIndex = Convert.ToInt32(Console.ReadLine());
- operationToSend = TransformDataManager.Serialize(6);
- dataToSend = TransformDataManager.Serialize(receiverIndex);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- recievedData = ClientManager.WaitForMessage();
- User receiver = recievedData[typeof(User)] as User;
- Message messageToSend = new Message(message.Title, message.Text,
- sender, receiver);
- operationToSend = TransformDataManager.Serialize(5);
- dataToSend = TransformDataManager.Serialize(messageToSend);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- }
- public static void EndCommunication()
- {
- operationToSend = TransformDataManager.Serialize(8);
- dataToSend = TransformDataManager.Serialize(string.Empty);
- ClientManager.SendMessage(operationToSend);
- ClientManager.SendMessage(dataToSend);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement