Example #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);
        }
        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));
        }