Advertisement
bullit3189

SoftUni Course Planning - Lists

Jan 23rd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. namespace _10SoftUniCoursePlanning
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. List<string> initialLessons = Console.ReadLine().Split(", ").ToList();
  12.  
  13. while (true)
  14. {
  15. string command = Console.ReadLine();
  16.  
  17. if (command == "course start")
  18. {
  19. break;
  20. }
  21.  
  22. string[] tokens = command.Split(":");
  23.  
  24. string action = tokens[0];
  25.  
  26. if (action == "Add")
  27. {
  28. string lessonTitle = tokens[1];
  29.  
  30. if (initialLessons.Contains(lessonTitle)==false)
  31. {
  32. initialLessons.Add(lessonTitle);
  33. }
  34. }
  35. else if (action == "Insert")
  36. {
  37. string lessonTitle = tokens[1];
  38. int index = int.Parse(tokens[2]);
  39.  
  40. if (initialLessons.Contains(lessonTitle) == false)
  41. {
  42. initialLessons.Insert(index, lessonTitle);
  43. }
  44. }
  45. else if (action == "Remove")
  46. {
  47. string lessonTitle = tokens[1];
  48.  
  49. if (initialLessons.Contains(lessonTitle) == true)
  50. {
  51. initialLessons.Remove(lessonTitle);
  52. }
  53. if (initialLessons.Contains($"{lessonTitle}-Exercise"))
  54. {
  55. initialLessons.Remove($"{lessonTitle}-Exercise");
  56. }
  57. }
  58. else if (action=="Swap")
  59. {
  60. string lessonTitleFirst = tokens[1];
  61. string lessonTitleLast = tokens[2];
  62.  
  63. if (initialLessons.Contains(lessonTitleFirst)&& initialLessons.Contains(lessonTitleLast))
  64. {
  65. Swap(initialLessons, lessonTitleFirst, lessonTitleLast);
  66.  
  67. if (initialLessons.Contains($"{lessonTitleFirst}-Exercise"))
  68. {
  69. int indexOfFirstExercisePosition = initialLessons.IndexOf($"{lessonTitleFirst}-Exercise");
  70. int indexOfFirstLesson = initialLessons.IndexOf(lessonTitleFirst);
  71. initialLessons.Insert(indexOfFirstLesson + 1, $"{lessonTitleFirst}-Exercise");
  72. initialLessons.RemoveAt(indexOfFirstExercisePosition + 1);
  73. }
  74. else if (initialLessons.Contains($"{lessonTitleLast}-Exercise"))
  75. {
  76. int indexOfFirstExercisePosition = initialLessons.IndexOf($"{lessonTitleLast}-Exercise");
  77. int indexOfLastLesson = initialLessons.IndexOf(lessonTitleLast);
  78. initialLessons.Insert(indexOfLastLesson + 1, $"{lessonTitleLast}-Exercise");
  79. initialLessons.RemoveAt(indexOfFirstExercisePosition+1);
  80.  
  81. }
  82. }
  83. if (initialLessons.Contains($"{lessonTitleFirst}-Exercise")&&initialLessons.Contains($"{lessonTitleLast}-Exercise"))
  84. {
  85. Swap(initialLessons, $"{lessonTitleFirst}-Exercise", $"{lessonTitleLast}-Exercise");
  86. }
  87.  
  88.  
  89. }
  90. else if (action == "Exercise")
  91. {
  92. string lessonTitle = tokens[1];
  93.  
  94. if (initialLessons.Contains(lessonTitle)==true && initialLessons.Contains($"{lessonTitle}-Exercise")==false)
  95. {
  96. int lessonIndex = initialLessons.IndexOf(lessonTitle);
  97. initialLessons.Insert(lessonIndex + 1, $"{lessonTitle}-Exercise");
  98. }
  99. else if (initialLessons.Contains(lessonTitle)==false)
  100. {
  101. initialLessons.Add(lessonTitle);
  102. initialLessons.Add($"{lessonTitle}-Exercise");
  103. }
  104. }
  105. }
  106.  
  107. for (int i = 0; i < initialLessons.Count; i++)
  108. {
  109. Console.WriteLine($"{i+1}.{initialLessons[i]}");
  110. }
  111. }
  112.  
  113. private static void Swap(List<string> initialLessons, string lessonTitleFirst, string lessonTitleLast)
  114. {
  115. int indexFirstLesson = initialLessons.IndexOf(lessonTitleFirst);
  116. int indexSecondLesson = initialLessons.IndexOf(lessonTitleLast);
  117.  
  118. initialLessons.RemoveAt(indexFirstLesson);
  119. initialLessons.Insert(indexFirstLesson, lessonTitleLast);
  120.  
  121. initialLessons.RemoveAt(indexSecondLesson);
  122. initialLessons.Insert(indexSecondLesson, lessonTitleFirst);
  123. }
  124. }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement