public static void Show(object sender, ShowPageEventArgs e) { e.Template.SetTemplate("Groups", "viewsubgroup"); SubUserGroup subgroup; try { subgroup = new SubUserGroup(e.Core, e.Core.PagePathParts[1].Value); } catch (InvalidSubGroupException) { e.Core.Functions.Generate404(); return; } e.Template.Parse("U_FILTER_ALL", subgroup.Uri); e.Template.Parse("U_FILTER_BEGINS_A", subgroup.GetUri("a")); e.Template.Parse("U_FILTER_BEGINS_B", subgroup.GetUri("b")); e.Template.Parse("U_FILTER_BEGINS_C", subgroup.GetUri("c")); e.Template.Parse("U_FILTER_BEGINS_D", subgroup.GetUri("d")); e.Template.Parse("U_FILTER_BEGINS_E", subgroup.GetUri("e")); e.Template.Parse("U_FILTER_BEGINS_F", subgroup.GetUri("f")); e.Template.Parse("U_FILTER_BEGINS_G", subgroup.GetUri("g")); e.Template.Parse("U_FILTER_BEGINS_H", subgroup.GetUri("h")); e.Template.Parse("U_FILTER_BEGINS_I", subgroup.GetUri("i")); e.Template.Parse("U_FILTER_BEGINS_J", subgroup.GetUri("j")); e.Template.Parse("U_FILTER_BEGINS_K", subgroup.GetUri("k")); e.Template.Parse("U_FILTER_BEGINS_L", subgroup.GetUri("l")); e.Template.Parse("U_FILTER_BEGINS_M", subgroup.GetUri("m")); e.Template.Parse("U_FILTER_BEGINS_N", subgroup.GetUri("n")); e.Template.Parse("U_FILTER_BEGINS_O", subgroup.GetUri("o")); e.Template.Parse("U_FILTER_BEGINS_P", subgroup.GetUri("p")); e.Template.Parse("U_FILTER_BEGINS_Q", subgroup.GetUri("q")); e.Template.Parse("U_FILTER_BEGINS_R", subgroup.GetUri("r")); e.Template.Parse("U_FILTER_BEGINS_S", subgroup.GetUri("s")); e.Template.Parse("U_FILTER_BEGINS_T", subgroup.GetUri("t")); e.Template.Parse("U_FILTER_BEGINS_U", subgroup.GetUri("u")); e.Template.Parse("U_FILTER_BEGINS_V", subgroup.GetUri("v")); e.Template.Parse("U_FILTER_BEGINS_W", subgroup.GetUri("w")); e.Template.Parse("U_FILTER_BEGINS_X", subgroup.GetUri("x")); e.Template.Parse("U_FILTER_BEGINS_Y", subgroup.GetUri("y")); e.Template.Parse("U_FILTER_BEGINS_Z", subgroup.GetUri("z")); List<SubGroupMember> awaitingApproval = subgroup.GetMembersWaitingApproval(); foreach (SubGroupMember member in awaitingApproval) { VariableCollection approvalVariableCollection = e.Core.Template.CreateChild("approval_list"); approvalVariableCollection.Parse("U_MEMBER", member.Uri); approvalVariableCollection.Parse("DISPLAY_NAME", member.DisplayName); approvalVariableCollection.Parse("LOCATION", member.Profile.Country); approvalVariableCollection.Parse("JOINED", e.Core.Tz.DateTimeToDateString(member.GetJoinedDate(e.Core.Tz))); } if (awaitingApproval.Count > 0) { e.Core.Template.Parse("IS_WAITING_APPROVAL", "TRUE"); } List<SubGroupMember> leaders = subgroup.GetLeaders(); foreach (SubGroupMember member in leaders) { VariableCollection leaderVariableCollection = e.Core.Template.CreateChild("leader_list"); leaderVariableCollection.Parse("U_MEMBER", member.Uri); leaderVariableCollection.Parse("DISPLAY_NAME", member.DisplayName); leaderVariableCollection.Parse("LOCATION", member.Profile.Country); leaderVariableCollection.Parse("JOINED", e.Core.Tz.DateTimeToDateString(member.GetJoinedDate(e.Core.Tz))); } List<SubGroupMember> members = subgroup.GetMembers(e.Page.TopLevelPageNumber, 20, e.Core.Functions.GetFilter()); // TODO, cache long memberCount = members.Count; // e.Db.LastQueryRows; foreach (SubGroupMember member in members) { VariableCollection memberVariableCollection = e.Core.Template.CreateChild("member_list"); memberVariableCollection.Parse("U_MEMBER", member.Uri); memberVariableCollection.Parse("DISPLAY_NAME", member.DisplayName); memberVariableCollection.Parse("LOCATION", member.Profile.Country); memberVariableCollection.Parse("JOINED", e.Core.Tz.DateTimeToDateString(member.GetJoinedDate(e.Core.Tz))); /*if (string.IsNullOrEmpty(member.UserThumbnail)) { memberVariableCollection.Parse("I_DISPLAY_PIC", string.Empty); } else { Image displayPic = new Image("display-pic[" + member.Id.ToString() + "]", member.UserThumbnail); memberVariableCollection.Parse("I_DISPLAY_PIC", displayPic); }*/ } if (e.Core.Session.IsLoggedIn) { if (subgroup.IsSubGroupMember(e.Core.Session.LoggedInMember.ItemKey)) { if (!subgroup.IsSubGroupLeader(e.Core.Session.LoggedInMember)) { e.Template.Parse("U_LEAVE", subgroup.LeaveUri); } } else { if (subgroup.SubGroupType == "OPEN" || subgroup.SubGroupType == "REQUEST") { e.Template.Parse("U_JOIN", subgroup.JoinUri); } } } e.Core.Display.ParsePagination(subgroup.GetUri(e.Core.Functions.GetFilter()), e.Page.TopLevelPageNumber, (int)(Math.Ceiling(memberCount / 20.0))); }