private static void Main(string[] args) { var startup = new Startup(); IServiceCollection services = new ServiceCollection(); startup.ConfigureServices(services); ServiceProvider serviceBuilder = services.BuildServiceProvider(); ICourseScheduleReader reader = serviceBuilder.GetRequiredService <ICourseScheduleReader>(); string filePath = args[0]; IEnumerable <Course> courses = reader.ReadFromFile(filePath); IMapper mapper = serviceBuilder.GetRequiredService <IMapper>(); IEnumerable <Class> classes = mapper.Map <IEnumerable <Class> >(courses); var weeklySchedule = new WeeklySchedule("Fall 2018", DateTime.Parse("August 16, 2018"), DateTime.Parse("December 7, 2018")); foreach (Class @class in classes) { weeklySchedule.AddClass(@class); } IWeeklyScheduleWriter writer = serviceBuilder.GetRequiredService <IWeeklyScheduleWriter>(); string outputFileName = args[1]; outputFileName = writer.WriteAsHtml(weeklySchedule, outputFileName); }
public void AddClass_2Hr40MinutesClassToEmptySchedule_CreatesTimeSlotThatSpans32Slots() { // Arrange var newClass = new Class { Day = DayOfWeek.Wednesday, EndTime = DateTime.Parse("8:50 PM"), Instructors = " Mary Angela Papalaskari", Location = "TBA", Name = "CSC 1010", Section = "100", StartTime = DateTime.Parse("06:10 pm"), Title = "Programming for All" }; const int expectedSlotSpan = 33; // Act _weeklySchedule.AddClass(newClass); int actualSlotSpan = _weeklySchedule.TimeSlots.FirstOrDefault().SlotSpan; // Assert Assert.Equal(expectedSlotSpan, actualSlotSpan); }
public void WriteAsHtml_WeeklySchedule_ProducesAValidHtmlFile() { // Arrange string outputPath = "schedule.data"; const string semesterName = "Fall 2018"; var semesterStartDate = DateTime.Parse("August 16, 2018"); var semesterEndDate = DateTime.Parse("December 7, 2018"); // Act var weeklySchedule = new WeeklySchedule(semesterName, semesterStartDate, semesterEndDate); IEnumerable <Class> classes = GetDemoClasses(); foreach (Class @class in classes) { weeklySchedule.AddClass(@class); } outputPath = _weeklyScheduleWriter.WriteAsHtml(weeklySchedule, outputPath); // Assert Assert.True(File.Exists(outputPath)); }