using System; namespace Hcs.ClientNet.Api.Request { internal class PaginationData { /// /// Состояние, указывающее на то, что это последняя страница /// internal bool IsLastPage { get; private set; } /// /// Идентификатор следующей страницы /// internal Guid NextGuid { get; private set; } public PaginationData(object item) { if (item == null) { throw new System.Exception($"[{nameof(PaginationData)}] item is null"); } else if (item is bool boolItem) { if (boolItem == false) { throw new System.Exception($"[{nameof(PaginationData)}] item is false"); } IsLastPage = true; } else if (item is string stringItem) { IsLastPage = false; NextGuid = Guid.Parse(stringItem); } else { throw new System.Exception($"[{nameof(PaginationData)}] failed to handle item of {item.GetType().FullName} type"); } } internal static PaginationData CreateLastPageData() { return new PaginationData(true); } public override string ToString() { return $"[{nameof(PaginationData)}] {nameof(IsLastPage)} = {IsLastPage}" + (IsLastPage ? "" : $", {nameof(NextGuid)} = {NextGuid}"); } } }