private OpResult do_basic_list(OpResult or, WMPLib.IWMPStringCollection list, string list_type, string template, string default_template) { int result_count = list.count; or.AppendFormat("{0}", basic_replacer(getTemplate(template + ".H", ""), "", "", result_count, -1)); // Header string c_last = " "; for (int j = 0; j < list.count; j++) { string list_item = list.Item(j); if (list_item.Length > 0) { string s_out = ""; if (first_letter(list_item) != c_last) { if (j > 0) { s_out = getTemplate(template + ".Alpha-", ""); s_out = basic_replacer(s_out, list_type, list.Item(j - 1), result_count, j); s_out = basic_replacer(s_out, "letter", c_last, result_count, j); if (s_out.Length > 0) or.AppendFormat("{0}", s_out); // Alpha- } c_last = first_letter(list_item); s_out = getTemplate(template + ".Alpha+", ""); s_out = basic_replacer(s_out, list_type, list_item, result_count, j); s_out = basic_replacer(s_out, "letter", c_last, result_count, j); if (s_out.Length > 0) or.AppendFormat("{0}", s_out); // Alpha + } s_out = getTemplate(template + ".Entry", default_template); s_out = basic_replacer(s_out, list_type, list_item, result_count, j); s_out = basic_replacer(s_out, "letter", c_last, result_count, j); s_out = do_conditional_replace(s_out, "all_filters", request_params); s_out = do_conditional_replace(s_out, "genreFilter", genre_filter); s_out = do_conditional_replace(s_out, "artistFilter", artist_filter); s_out = do_conditional_replace(s_out, "albumFilter", album_filter); //opResult.AppendFormat("artist={0}", artists.Item(j)); if (s_out.Length > 0) or.AppendFormat("{0}", s_out); // Entry } } if (result_count > 0) // Close the final alpha grouping { string s_out = getTemplate(template + ".Alpha-", ""); s_out = basic_replacer(s_out, list_type, list.Item(result_count - 1), result_count, result_count); s_out = basic_replacer(s_out, "letter", c_last, result_count, result_count); if (s_out.Length > 0) or.AppendFormat("{0}", s_out); // Alpha- } return or; }