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;
- namespace ConsoleApp222
- {
- class Program
- {
- public class User
- {
- public string Sender { get; set; }
- public string ReceivedUser { get; set; }
- public List<string> ReceivedMessages = new List<string>();
- }
- static void Main(string[] args)
- {
- var listRegister = new List<string>();
- var users = new List<User>();
- while (true)
- {
- var text = Console.ReadLine().Split();
- if (text[0] == "exit")
- {
- break;
- }
- if (text[0] == "register")
- {
- listRegister.Add(text[1]);
- }
- else
- {
- var senderUsername = text[0];
- var recipientUsername = text[2];
- var content = text[3];
- if (listRegister.Contains(senderUsername) && listRegister.Contains(recipientUsername))
- {
- if (!users.Any(x => x.Sender == senderUsername))
- {
- var user = new User();
- user.Sender = senderUsername;
- user.ReceivedUser = recipientUsername;
- user.ReceivedMessages.Add(content);
- users.Add(user);
- }
- else
- {
- var index = 0;
- var br1 = 0;
- foreach (var item in users)
- {
- if (item.Sender == senderUsername && item.ReceivedUser == recipientUsername)
- {
- index = br1;
- break;
- }
- br1++;
- }
- users[index].ReceivedMessages.Add(content);
- }
- }
- }
- }
- var text1 = Console.ReadLine().Split();
- var user1 = text1[0];
- var user2 = text1[1];
- var dicUser1 = new Dictionary<string, List<string>>();
- var dicUser2 = new Dictionary<string, List<string>>();
- var br = 0;
- listRegister = listRegister.Distinct().ToList();
- listRegister.RemoveAll(x => (x != user1) && (x != user2));
- foreach (var item in users)
- {
- if (listRegister.Contains(item.Sender) && listRegister.Contains(item.ReceivedUser))
- {
- br++;
- var messages = item.ReceivedMessages.ToList();
- if (br == 1)
- {
- dicUser1.Add(item.Sender, new List<string>());
- for (int i = 0; i < messages.Count; i++)
- {
- dicUser1[item.Sender].Add(messages[i]);
- }
- }
- if (br == 2)
- {
- dicUser2.Add(item.Sender, new List<string>());
- for (int i = 0; i < messages.Count; i++)
- {
- dicUser2[item.Sender].Add(messages[i]);
- }
- }
- }
- }
- if (dicUser1.Count == 0)
- {
- Console.WriteLine("No messages");
- }
- if (dicUser1.Count > 0 && dicUser2.Count > 0)
- {
- foreach (var item in dicUser1)
- {
- var messages1 = item.Value;
- foreach (var item1 in dicUser2)
- {
- var messages2 = item1.Value;
- if (messages1.Count == messages2.Count)
- {
- for (int i = 0; i < messages1.Count; i++)
- {
- Console.WriteLine($"{item.Key}: {messages1[i]}");
- Console.WriteLine($"{messages2[i]} :{item1.Key}");
- }
- }
- if (messages1.Count > messages2.Count)
- {
- for (int i = 0; i < messages2.Count; i++)
- {
- Console.WriteLine($"{item.Key}: {messages1[i]}");
- Console.WriteLine($"{messages2[i]} :{item1.Key}");
- }
- for (int i = messages2.Count; i < messages1.Count; i++)
- {
- Console.WriteLine($"{item.Key}: {messages1[i]}");
- }
- }
- if (messages2.Count > messages1.Count)
- {
- for (int i = 0; i < messages1.Count; i++)
- {
- Console.WriteLine($"{item.Key}: {messages1[i]}");
- Console.WriteLine($"{messages2[i]} :{item1.Key}");
- }
- for (int i = messages1.Count; i < messages2.Count; i++)
- {
- Console.WriteLine($"{messages2[i]} :{item1.Key}");
- }
- }
- }
- }
- }
- if (dicUser1.Count > 0 && dicUser2.Count == 0)
- {
- foreach (var item in dicUser1)
- {
- var messages1 = item.Value;
- for (int i = 0; i < messages1.Count; i++)
- {
- Console.WriteLine($"{item.Key}: {messages1[i]}");
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement