public override MobileBlockResponse HandleRequest(string request, Dictionary <string, string> Body) { if (request == "") { return(new MobileBlockResponse() { Request = request, Response = JsonConvert.SerializeObject(new ListViewResponse()), TTL = GetAttributeValue("OutputCacheDuration").AsInteger() }); } var start = request.AsInteger(); List <ListElement> groups = GetGroupElements(start); var response = new ListViewResponse { Content = groups, }; if (groups.Any()) { response.NextRequest = (start + 1).ToString(); } return(new MobileBlockResponse() { Request = request, Response = JsonConvert.SerializeObject(response), TTL = GetAttributeValue("OutputCacheDuration").AsInteger(), }); }
private void MessageHandler_Response(object sender, MobileBlockResponse e) { var response = e.Response; if (_manualRefresh) { listViewComponent.ItemsSource.Clear(); _manualRefresh = false; } try { ListViewResponse listViewResponse = JsonConvert.DeserializeObject <ListViewResponse>(response); if (listViewResponse?.Content == null || !listViewResponse.Content.Any()) { _endOfList = true; listViewComponent.IsRefreshing = false; return; } if (!string.IsNullOrWhiteSpace(listViewResponse.NextRequest)) { _nextRequest = listViewResponse.NextRequest; } else { _nextRequest = null; } foreach (var listElement in listViewResponse.Content) { try { AddElement(listElement); } catch { } } listViewComponent.IsRefreshing = false; listViewComponent.ItemsSource = listViewComponent.ItemsSource.OrderBy(i => i.Order).ToList(); listViewComponent.Draw(); } catch (Exception ex) { _endOfList = true; listViewComponent.IsRefreshing = false; } }
public MobileBlockResponse HandleRequest(string request, Dictionary <string, string> Body) { var page = request.AsInteger(); var listElements = ShowView(page); var response = new ListViewResponse { Content = listElements, NextRequest = (page + 1).ToString() }; return(new MobileBlockResponse() { Request = request, Response = JsonConvert.SerializeObject(response), TTL = GetAttributeValue("OutputCacheDuration").AsInteger() }); }
public override MobileBlockResponse HandleRequest(string request, Dictionary <string, string> Body) { var splitRequest = request.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); if (splitRequest.Length < 2) { return(new MobileBlockResponse() // send nothing if bad request { Request = request, Response = JsonConvert.SerializeObject(new List <ListViewResponse>()), TTL = 0 }); } var parameter = splitRequest[0]; var page = splitRequest[1].AsInteger(); var groupMembers = GetGroupMembers(parameter, page); if (groupMembers == null) { return(new MobileBlockResponse() // send nothing if no members { Request = request, Response = JsonConvert.SerializeObject(new List <ListViewResponse>()), TTL = 0 }); } var response = new ListViewResponse { Content = groupMembers, NextRequest = string.Format("{0}|{1}", parameter, (page + 1)) }; return(new MobileBlockResponse() { Request = request, Response = JsonConvert.SerializeObject(response), TTL = 0 }); }