vandeva

SoftUni Course Planning

Jun 21st, 2019
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace SoftUni_Course_Planning
  6. {
  7.     class Program
  8.     {
  9.         static void Add(List<string> schedule, string[] command)
  10.         {
  11.             string lessonTitle = command[1];
  12.                 if (!schedule.Contains(lessonTitle))
  13.                 {
  14.                     schedule.Add(lessonTitle);
  15.                 }
  16.         }
  17.  
  18.         static void Insert(List<string> schedule, string[] command)
  19.         {
  20.             string lessonTitle = command[1];
  21.             int index = int.Parse(command[2]);
  22.  
  23.             if (!schedule.Contains(lessonTitle) && index >= 0 && index < schedule.Count)
  24.             {
  25.                 schedule.Insert(index, lessonTitle);
  26.             }
  27.             else if (!schedule.Contains(lessonTitle) && index >= schedule.Count)
  28.             {
  29.                 schedule.Add(lessonTitle);
  30.             }
  31.         }
  32.  
  33.         static void Remove(List<string> schedule, string[] command)
  34.         {
  35.             string lessonTitle = command[1];
  36.             if (schedule.Contains(lessonTitle))
  37.             {
  38.                 schedule.Remove(lessonTitle);
  39.             }
  40.             if (schedule.Contains($"{lessonTitle}-Exercise"))
  41.             {
  42.                 schedule.Remove($"{lessonTitle}-Exercise");
  43.             }
  44.         }
  45.  
  46.         static void Swap(List<string> schedule, string[] command)
  47.         {
  48.             string lessonOneTitle = command[1];
  49.             string lessonTwoTitle = command[2];
  50.             if (schedule.Contains(lessonOneTitle) && schedule.Contains(lessonTwoTitle));
  51.             {
  52.                 int indexFirstLesson = schedule.IndexOf(lessonOneTitle);
  53.                 int indexSecondLesson = schedule.IndexOf(lessonTwoTitle);
  54.  
  55.                 schedule[indexFirstLesson] = lessonTwoTitle;
  56.                 schedule[indexSecondLesson] = lessonOneTitle;
  57.  
  58.                 string exerciseOne = string.Empty;
  59.                 string exerciseTwo = string.Empty;
  60.  
  61.                 if (schedule.Contains($"{lessonOneTitle}-Exercise"))
  62.                 {
  63.                     exerciseOne = $"{lessonOneTitle}-Exercise";
  64.                     schedule.Remove(exerciseOne);
  65.                 }
  66.                 if (schedule.Contains($"{lessonTwoTitle}-Exercise"))
  67.                 {
  68.                     exerciseTwo = $"{lessonTwoTitle}-Exercise";
  69.                     schedule.Remove(exerciseTwo);
  70.                 }
  71.  
  72.                 if (exerciseOne != string.Empty)
  73.                 {
  74.                     int lessonOneIndex = schedule.IndexOf(lessonOneTitle);
  75.                     if (lessonOneIndex == schedule.Count - 1)
  76.                     {
  77.                         schedule.Add(exerciseOne);
  78.                     }
  79.                     else
  80.                     {
  81.                         schedule.Insert(lessonOneIndex + 1, exerciseOne);
  82.                     }
  83.                 }
  84.  
  85.                 if (exerciseTwo != string.Empty)
  86.                 {
  87.                     int lessonTwoIndex = schedule.IndexOf(lessonTwoTitle);
  88.                     if (lessonTwoIndex == schedule.Count -1)
  89.                     {
  90.                         schedule.Add(exerciseTwo);
  91.                     }
  92.                     else
  93.                     {
  94.                         schedule.Insert(lessonTwoIndex + 1, exerciseTwo);
  95.                     }
  96.                 }
  97.             }
  98.         }
  99.  
  100.         static void Exercise(List<string> schedule, string[] command)
  101.         {
  102.             string lessonTitle = command[1];
  103.             if (schedule.Contains(lessonTitle) && !schedule.Contains($"{lessonTitle}-Exercise"))
  104.             {
  105.                 int lessonIndex = schedule.IndexOf(lessonTitle);
  106.                 string item = $"{lessonTitle}-Exercise";
  107.                 if (lessonIndex == schedule.Count - 1)
  108.                 {
  109.                     schedule.Add(item);
  110.                 }
  111.                 else
  112.                 {
  113.                     schedule.Insert(lessonIndex + 1, item);
  114.                 }
  115.             }
  116.             else if (!schedule.Contains(lessonTitle))
  117.             {
  118.                 schedule.Add(lessonTitle);
  119.                 schedule.Add($"{lessonTitle}-Exercise");
  120.             }
  121.  
  122.         }
  123.  
  124.         static void Main()
  125.         {
  126.  
  127.             List<string> schedule = Console.ReadLine().Split(", ").ToList();
  128.  
  129.             string[] command = Console.ReadLine().Split(":");
  130.  
  131.             while (!command.Contains("course start"))
  132.             {
  133.                 if (command.Contains("Add"))
  134.                 {
  135.                     Add(schedule, command);
  136.                 }
  137.                 else if (command.Contains("Insert"))
  138.                 {
  139.                     Insert(schedule, command);
  140.                 }
  141.                 else if (command.Contains("Remove"))
  142.                 {
  143.                     Remove(schedule, command);
  144.                 }
  145.                 else if (command.Contains("Swap"))
  146.                 {
  147.                     Swap(schedule, command);
  148.                 }
  149.                 else if (command.Contains("Exercise"))
  150.                 {
  151.                     Exercise(schedule, command);
  152.                 }
  153.  
  154.                 command = Console.ReadLine().Split(":");
  155.             }
  156.  
  157.             for (int i = 0; i < schedule.Count; i++)
  158.             {
  159.                 Console.WriteLine($"{i+1}.{schedule[i]}");
  160.             }
  161.         }
  162.     }
  163. }
Advertisement
Add Comment
Please, Sign In to add comment