Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }