diff --git a/IISMainHandler/handlers/response/PollsListHandler.cs b/IISMainHandler/handlers/response/PollsListHandler.cs new file mode 100644 index 0000000..bf625d4 --- /dev/null +++ b/IISMainHandler/handlers/response/PollsListHandler.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Web; +using System.Xml.Linq; +using FLocal.Common; +using FLocal.Common.dataobjects; +using FLocal.Core; +using FLocal.Core.DB; +using FLocal.Core.DB.conditions; + +namespace FLocal.IISHandler.handlers.response { + + class PollsListHandler : AbstractGetHandler { + + override protected string templateName { + get { + return "PollsList.xslt"; + } + } + + override protected IEnumerable getSpecificData(WebContext context) { + PageOuter pageOuter = PageOuter.createFromUrl(this.url, context.userSettings.threadsPerPage); + IEnumerable polls = Poll.LoadByIds( + from stringId in Config.instance.mainConnection.LoadIdsByConditions( + Poll.TableSpec.instance, + new EmptyCondition(), + pageOuter, + new JoinSpec[0], + new SortSpec[] { + new SortSpec( + Poll.TableSpec.instance.getIdSpec(), + pageOuter.reversed + ) + } + ) select int.Parse(stringId) + ); + + return new XElement[] { + new XElement("polls", + from poll in polls select poll.exportToXml(context), + pageOuter.exportToXml(2, 5, 2) + ) + }; + } + + } + +} \ No newline at end of file