MiroslavKisov

MentorGroup

Nov 26th, 2017
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Globalization;
  5.  
  6. namespace MentorGroup
  7. {
  8.     public class StartUp
  9.     {
  10.         public static void Main()
  11.         {
  12.             List<Student> students = new List<Student>();
  13.             string studentName = string.Empty;
  14.             while (true)
  15.             {
  16.                 string inputStudentAndDate = Console.ReadLine();
  17.  
  18.                 if (inputStudentAndDate == "end of dates")
  19.                 {
  20.                     break;
  21.                 }
  22.  
  23.                 var studentInfo = inputStudentAndDate
  24.                     .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  25.                     .ToArray();
  26.                 studentName = studentInfo[0];
  27.                 if (studentInfo.Length == 1)
  28.                 {
  29.                     if (students.Any(x => x.Name == studentName))
  30.                     {
  31.                         continue;
  32.                     }
  33.                     Student student = new Student();
  34.                     student.Name = studentName;
  35.                     students.Add(student);
  36.                     continue;
  37.                 }
  38.                 else
  39.                 {
  40.                     var dates = studentInfo[1]
  41.                         .Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
  42.                         .ToArray();
  43.                     if (students.Any(x => x.Name == studentName))
  44.                     {
  45.                         var currentStudent = students.First(x => x.Name == studentName);
  46.                         foreach (var date in dates)
  47.                         {
  48.                             currentStudent.DatesAttended.Add(DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture));
  49.                         }
  50.                     }
  51.                     else
  52.                     {
  53.                         Student student = new Student();
  54.                         studentName = studentInfo[0];
  55.                         student.Name = studentName;
  56.                         foreach (var date in dates)
  57.                         {
  58.                             student.DatesAttended.Add(DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture));
  59.                         }
  60.                         students.Add(student);
  61.                     }
  62.                 }
  63.                
  64.             }
  65.             while (true)
  66.             {
  67.                 string inputComments = Console.ReadLine();
  68.  
  69.                 if (inputComments == "end of comments")
  70.                 {
  71.                     break;
  72.                 }
  73.                 var inputCommentArgs = inputComments
  74.                     .Split(new char[] { '-' })
  75.                     .ToArray();
  76.                 studentName = inputCommentArgs[0];
  77.                 if (inputCommentArgs.Length == 1)
  78.                 {
  79.                     if (students.Any(x => x.Name == studentName))
  80.                     {
  81.                         continue;
  82.                     }
  83.                 }
  84.                 else
  85.                 {
  86.                     var comment = inputCommentArgs[1];
  87.                     if (students.Any(x => x.Name == studentName))
  88.                     {
  89.                         var currentStudent = students.First(x => x.Name == studentName);
  90.                         currentStudent.Comments.Add(comment);
  91.                     }
  92.                 }
  93.             }
  94.             foreach (Student student in students.OrderBy(x => x.Name))
  95.             {
  96.  
  97.                 Console.WriteLine(student.Name);
  98.                 Console.WriteLine("Comments:");
  99.                 foreach (var item in student.Comments)
  100.                 {
  101.                     Console.WriteLine($"- {string.Join("/r/n", item)}");
  102.                 }
  103.                 Console.WriteLine("Dates attended:");
  104.                 foreach (var item in student.DatesAttended.OrderBy(x => x.Date))
  105.                 {
  106.                     Console.WriteLine($"-- {item.ToString("dd/MM/yyyy")}");
  107.                 }
  108.             }
  109.         }
  110.     }
  111.     class Student
  112.     {
  113.         public string Name { get; set; }
  114.         public List<DateTime> DatesAttended { get; set; }
  115.         public List<string> Comments { get; set; }
  116.         public Student()
  117.         {
  118.             DatesAttended = new List<DateTime>();
  119.             Comments = new List<string>();
  120.         }
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment