public static IList<ISectionFacet> addFacets(string timestart, string timeend, string day_su, string day_m, string day_t, string day_w, string day_th, string day_f, string day_s, string f_oncampus, string f_online, string f_hybrid, string avail, string latestart, string numcredits)
{
IList<ISectionFacet> facets = new List<ISectionFacet>();
//add the class format facet options (online, hybrid, telecourse, on campus)
ModalityFacet.Options modality = ModalityFacet.Options.All; // default
if (!String.IsNullOrWhiteSpace(f_online))
{
modality = (modality | ModalityFacet.Options.Online);
}
if (!String.IsNullOrWhiteSpace(f_hybrid))
{
modality = (modality | ModalityFacet.Options.Hybrid);
}
if (!String.IsNullOrWhiteSpace(f_oncampus))
{
modality = (modality | ModalityFacet.Options.OnCampus);
}
facets.Add(new ModalityFacet(modality));
//determine integer values for start/end time hours and minutes
int startHour, startMinute;
int endHour, endMinute;
getHourAndMinuteFromString(timestart, out startHour, out startMinute);
getHourAndMinuteFromString(timeend, out endHour, out endMinute, DefaultTimeResult.EndTime);
//add the time facet
facets.Add(new TimeFacet(new TimeSpan(startHour, startMinute, 0), new TimeSpan(endHour, endMinute, 0)));
//day of the week facets
DaysFacet.Options days = DaysFacet.Options.All; // default
if (!String.IsNullOrWhiteSpace(day_su))
{
days = (days | DaysFacet.Options.Sunday);
}
if (!String.IsNullOrWhiteSpace(day_m))
{
days = (days | DaysFacet.Options.Monday);
}
if (!String.IsNullOrWhiteSpace(day_t))
{
days = (days | DaysFacet.Options.Tuesday);
}
if (!String.IsNullOrWhiteSpace(day_w))
{
days = (days | DaysFacet.Options.Wednesday);
}
if (!String.IsNullOrWhiteSpace(day_th))
{
days = (days | DaysFacet.Options.Thursday);
}
if (!String.IsNullOrWhiteSpace(day_f))
{
days = (days | DaysFacet.Options.Friday);
}
if (!String.IsNullOrWhiteSpace(day_s))
{
days = (days | DaysFacet.Options.Saturday);
}
facets.Add(new DaysFacet(days));
if (!String.IsNullOrWhiteSpace(avail))
{
if (avail == "All")
{
facets.Add(new AvailabilityFacet(AvailabilityFacet.Options.All));
}
if (avail == "Open")
{
facets.Add(new AvailabilityFacet(AvailabilityFacet.Options.Open));
}
}
if (!String.IsNullOrWhiteSpace(latestart))
{
if (latestart == "true")
{
facets.Add(new LateStartFacet());
}
}
if (!String.IsNullOrWhiteSpace(numcredits))
{
if (numcredits != "Any")
{
int credits;
try
{
credits = Convert.ToInt16(numcredits);
facets.Add(new CreditsFacet(credits));
}
catch
{
throw new FormatException("Number of credits was not a valid integer");
}
}
}
return facets;
}