Advertisement
Aborigenius

Messages

Aug 21st, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.03 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.  
  7. namespace Messages
  8. {
  9.     class User
  10.     {
  11.         public string Username { get; set; }
  12.         public List<Message> Messages {get; set;}
  13.  
  14.         public User(string username)
  15.         {
  16.             this.Username = username;
  17.             this.Messages = new List<Message>();
  18.         }
  19.     }
  20.     class Message
  21.     {
  22.         public User Sender { get; set; }
  23.         public string Content { get; set; }
  24.  
  25.         public Message(string content, User sender)
  26.         {
  27.             this.Content = content;
  28.             this.Sender = sender;
  29.         }
  30.     }
  31.     class Program
  32.     {
  33.         static void Main(string[] args)
  34.         {
  35.             string input = Console.ReadLine();
  36.             var users = new Dictionary<string, User>();
  37.  
  38.             string sender;
  39.             string recipient;
  40.             while (input != "exit")
  41.             {
  42.                 string[] inputTokens = input.Split(' ');
  43.                 if (inputTokens[0] == "register")
  44.                 {
  45.                     string username = inputTokens[1];
  46.                     users.Add(username, new User(username));
  47.                 }
  48.                 else
  49.                 {
  50.                     sender = inputTokens[0];
  51.                     recipient = inputTokens[2];
  52.                     string content = inputTokens[3];
  53.  
  54.                     if (users.ContainsKey(sender) && users.ContainsKey(recipient))
  55.                     {
  56.                         User senderUser = users[sender];
  57.                         users[recipient].Messages.Add(new Message(content, senderUser));
  58.                     }
  59.  
  60.                 }
  61.                 input = Console.ReadLine();
  62.             }
  63.  
  64.             string[] chatTokens = Console.ReadLine().Split(' ');
  65.             sender = chatTokens[0];
  66.             recipient = chatTokens[1];
  67.  
  68.             Message[] senderMessages = users[recipient].Messages.Where(m => m.Sender.Username == sender).ToArray();
  69.  
  70.             Message[] recipientMessages = users[sender].Messages.Where(m => m.Sender.Username == recipient).ToArray();
  71.  
  72.             if (senderMessages.Length == 0 && recipientMessages.Length ==0)
  73.             {
  74.                 Console.WriteLine("No messages");
  75.             }
  76.  
  77.             int index = 0;
  78.             while (index < senderMessages.Length && index < recipientMessages.Length)
  79.             {
  80.                 Console.WriteLine($"{sender}: {senderMessages[index].Content}");
  81.                 Console.WriteLine($"{recipientMessages[index].Content} :{recipient}");
  82.                 index++;
  83.             }
  84.  
  85.             while (index < senderMessages.Length)
  86.             {
  87.                 Console.WriteLine($"{sender}: {senderMessages[index].Content}");
  88.                 index++;
  89.             }
  90.             while (index < recipientMessages.Length)
  91.             {
  92.                 Console.WriteLine($"{recipientMessages[index].Content} :{recipient}");
  93.                 index++;
  94.             }
  95.  
  96.         }
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement