public async Task GetEnrollmentAsync(params string[] options) { var channelConfig = await ConfigurationService.ReadChannelAsync(Context.Channel.Id); List <CourseModel> courses; switch (options.Length) { case 0: await Context.Channel.SendMessageAsync( "No results were fetched because no parameters were specified."); return; case 1: courses = await EnrollmentService.GetCoursesById(channelConfig.Semester, options[0], ""); break; case 2: courses = await EnrollmentService.GetCoursesById(channelConfig.Semester, options[0], options[1]); break; default: return; } var table = new PrettyTable <CourseModel> { Data = courses }; table.AddColumn("Catalog", x => x.Department + " " + x.CatalogNumber); table.AddColumn("Section", x => x.SectionNumber); table.AddColumn("Title", x => x.Name); table.AddColumn("Instructor", x => x.Instructor); table.AddColumn("Enrollment", x => x.Enrolled + "/" + x.Size); await SplitAndSendMessageAsync(Context.Channel, "```" + table.BuildTable() + "```"); }
public async Task QueryCoursesAsync([Remainder] string query) { query = "select " + query; var channelConfig = await ConfigurationService.ReadChannelAsync(Context.Channel.Id); CourseDatabaseService.Semester = channelConfig.Semester; var data = await CourseDatabaseService.Query(query); var table = new PrettyTable <string[]> { Data = data.ToList() }; for (var i = 0; i < data[0].Length; i++) { var i1 = i; table.AddColumn(data[0][i], x => x[i1]); } await SplitAndSendMessageAsync(Context.Channel, "```" + table.BuildTable() + "```"); }