Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 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 ConsoleApp222
  8. {
  9. class Program
  10. {
  11. public class User
  12. {
  13. public string Sender { get; set; }
  14. public string ReceivedUser { get; set; }
  15. public List<string> ReceivedMessages = new List<string>();
  16. }
  17.  
  18.  
  19. static void Main(string[] args)
  20. {
  21. var listRegister = new List<string>();
  22. var users = new List<User>();
  23. while (true)
  24. {
  25. var text = Console.ReadLine().Split();
  26. if (text[0] == "exit")
  27. {
  28. break;
  29. }
  30. if (text[0] == "register")
  31. {
  32. listRegister.Add(text[1]);
  33. }
  34. else
  35. {
  36. var senderUsername = text[0];
  37. var recipientUsername = text[2];
  38. var content = text[3];
  39. if (listRegister.Contains(senderUsername) && listRegister.Contains(recipientUsername))
  40. {
  41. if (!users.Any(x => x.Sender == senderUsername))
  42. {
  43. var user = new User();
  44. user.Sender = senderUsername;
  45. user.ReceivedUser = recipientUsername;
  46. user.ReceivedMessages.Add(content);
  47. users.Add(user);
  48. }
  49. else
  50. {
  51. var index = 0;
  52. var br1 = 0;
  53. foreach (var item in users)
  54. {
  55. if (item.Sender == senderUsername && item.ReceivedUser == recipientUsername)
  56. {
  57. index = br1;
  58. break;
  59. }
  60. br1++;
  61. }
  62. users[index].ReceivedMessages.Add(content);
  63. }
  64.  
  65. }
  66. }
  67. }
  68. var text1 = Console.ReadLine().Split();
  69. var user1 = text1[0];
  70. var user2 = text1[1];
  71. var dicUser1 = new Dictionary<string, List<string>>();
  72. var dicUser2 = new Dictionary<string, List<string>>();
  73. var br = 0;
  74. listRegister = listRegister.Distinct().ToList();
  75. listRegister.RemoveAll(x => (x != user1) && (x != user2));
  76. foreach (var item in users)
  77. {
  78. if (listRegister.Contains(item.Sender) && listRegister.Contains(item.ReceivedUser))
  79. {
  80. br++;
  81. var messages = item.ReceivedMessages.ToList();
  82. if (br == 1)
  83. {
  84. dicUser1.Add(item.Sender, new List<string>());
  85. for (int i = 0; i < messages.Count; i++)
  86. {
  87. dicUser1[item.Sender].Add(messages[i]);
  88. }
  89. }
  90. if (br == 2)
  91. {
  92. dicUser2.Add(item.Sender, new List<string>());
  93. for (int i = 0; i < messages.Count; i++)
  94. {
  95. dicUser2[item.Sender].Add(messages[i]);
  96. }
  97. }
  98. }
  99. }
  100.  
  101. if (dicUser1.Count == 0)
  102. {
  103. Console.WriteLine("No messages");
  104. }
  105. if (dicUser1.Count > 0 && dicUser2.Count > 0)
  106. {
  107. foreach (var item in dicUser1)
  108. {
  109. var messages1 = item.Value;
  110. foreach (var item1 in dicUser2)
  111. {
  112. var messages2 = item1.Value;
  113. if (messages1.Count == messages2.Count)
  114. {
  115. for (int i = 0; i < messages1.Count; i++)
  116. {
  117. Console.WriteLine($"{item.Key}: {messages1[i]}");
  118. Console.WriteLine($"{messages2[i]} :{item1.Key}");
  119. }
  120. }
  121. if (messages1.Count > messages2.Count)
  122. {
  123. for (int i = 0; i < messages2.Count; i++)
  124. {
  125. Console.WriteLine($"{item.Key}: {messages1[i]}");
  126. Console.WriteLine($"{messages2[i]} :{item1.Key}");
  127. }
  128. for (int i = messages2.Count; i < messages1.Count; i++)
  129. {
  130. Console.WriteLine($"{item.Key}: {messages1[i]}");
  131. }
  132. }
  133. if (messages2.Count > messages1.Count)
  134. {
  135. for (int i = 0; i < messages1.Count; i++)
  136. {
  137. Console.WriteLine($"{item.Key}: {messages1[i]}");
  138. Console.WriteLine($"{messages2[i]} :{item1.Key}");
  139. }
  140. for (int i = messages1.Count; i < messages2.Count; i++)
  141. {
  142. Console.WriteLine($"{messages2[i]} :{item1.Key}");
  143. }
  144. }
  145. }
  146. }
  147. }
  148. if (dicUser1.Count > 0 && dicUser2.Count == 0)
  149. {
  150. foreach (var item in dicUser1)
  151. {
  152. var messages1 = item.Value;
  153. for (int i = 0; i < messages1.Count; i++)
  154. {
  155. Console.WriteLine($"{item.Key}: {messages1[i]}");
  156. }
  157. }
  158. }
  159. }
  160. }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement