private ILinkViewModel GetPreviousLink(int total, int skip, int take) { if (skip == 0) { return(null); } if (skip > total) { return(GetLastLink(total, take)); } var previousPage = Math.Max(skip - take, 0); if (previousPage <= 0) { return(GetFirstLink(take)); } var newLink = new PlaceholderLinkViewModel(_meta); SafeSetValue(newLink.Values, nameof(take), take); SafeSetValue(newLink.Values, nameof(skip), previousPage); newLink.Href = GetNewHrefByValues(newLink.Values); return(newLink); }
private ILinkViewModel GetFirstLink(int take) { var newLink = new PlaceholderLinkViewModel(_meta); SafeSetValue(newLink.Values, nameof(take), take); SafeSetValue(newLink.Values, "skip", 0); newLink.Href = GetNewHrefByValues(newLink.Values); return(newLink); }
public FormViewModel(string path, string method, string relation, IEnumerable <FormFieldViewModel> fields) { Meta = new PlaceholderLinkViewModel { Href = path, Method = method, Relations = new[] { relation } }; Items = fields.ToArray(); }
private ILinkViewModel GetNextLink(int total, int skip, int take) { var nextPage = skip + take; if (nextPage >= total) { return(null); } var newLink = new PlaceholderLinkViewModel(_meta); SafeSetValue(newLink.Values, nameof(take), take); SafeSetValue(newLink.Values, nameof(skip), nextPage); newLink.Href = GetNewHrefByValues(newLink.Values); return(newLink); }
private ILinkViewModel GetLastLink(int total, int take) { if (total <= take) { return(null); } var skip = Math.Ceiling((total - (double)take) / take) * take; var newLink = new PlaceholderLinkViewModel(_meta); SafeSetValue(newLink.Values, nameof(take), take); SafeSetValue(newLink.Values, nameof(skip), skip); newLink.Href = GetNewHrefByValues(newLink.Values); return(newLink); }
public static PlaceholderLinkViewModel ToCollection(string hrefPattern, string method = "GET", object values = null) { var placeholderLinkViewModel = new PlaceholderLinkViewModel { Method = method, Relations = new[] { "collection" }, Values = new RouteValueDictionary(values) }; placeholderLinkViewModel.Href = hrefPattern; foreach (var newLinkValue in placeholderLinkViewModel.Values) { var hrefKey = "{" + newLinkValue.Key + "}"; placeholderLinkViewModel.Href = placeholderLinkViewModel.Href.Replace(hrefKey, newLinkValue.Value.ToString()); } return(placeholderLinkViewModel); }