/// <summary> /// Create query from current parameters for search request. /// </summary> /// <returns>Query from current parameters for search request</returns> public string ConfigToString() { StringBuilder builder = new StringBuilder(); if (Type != AnimeType.EveryType) { builder.Append($"&type={Type.GetDescription()}"); } if (Score.HasValue) { builder.Append($"&score={Score}"); } if (Rating != AgeRating.EveryRating) { builder.Append($"&rated={Rating.GetDescription()}"); } if (Status != AiringStatus.EveryStatus) { builder.Append($"&status={Status.GetDescription()}"); } if (StartDate.HasValue) { builder.Append($"&start_date={StartDate.Value.ToString("yyyy-MM-dd")}"); } if (EndDate.HasValue) { builder.Append($"&end_date={EndDate.Value.ToString("yyyy-MM-dd")}"); } if (Genres.Count > 0) { var genresId = Genres.Select(x => x.GetDescription()).ToArray(); builder.Append($"&genre={string.Join(",", genresId)}"); } if (GenreIncluded) { builder.Append($"$genre_exclude=0"); } if (OrderBy != AnimeSearchSortable.NoSorting) { builder.Append($"&order_by={OrderBy.GetDescription()}"); builder.Append($"&sort={SortDirection.GetDescription()}"); } if (ProducerId > 0) { builder.Append($"&producer={ProducerId}"); } return(builder.ToString().TrimEnd('&')); }
/// <summary> /// Create query from current parameters for search request. /// </summary> /// <returns>Query from current parameters for search request</returns> public string ConfigToString() { StringBuilder builder = new StringBuilder(); if (!string.IsNullOrWhiteSpace(Query)) { builder.Append($"q={Query}"); } if (Page > 0) { builder.Append($"&page={Page}"); } if (OrderBy != UserListAnimeSearchSortable.NoSorting) { Guard.IsValidEnum(OrderBy, nameof(OrderBy)); Guard.IsValidEnum(SortDirection, nameof(SortDirection)); builder.Append($"&order_by={OrderBy.GetDescription()}"); builder.Append($"&sort={SortDirection.GetDescription()}"); if (OrderBy2 != UserListAnimeSearchSortable.NoSorting) { Guard.IsValidEnum(OrderBy2, nameof(OrderBy2)); builder.Append($"&order_by2={OrderBy2.GetDescription()}"); } } if (ProducerId > 0) { builder.Append($"&producer={ProducerId}"); } if (Year > 0) { Guard.IsValidEnum(Season, nameof(Season)); builder.Append($"&year={Year}"); builder.Append($"&season={Season.GetDescription()}"); } if (AiringStatus != UserListAnimeAiringStatus.NoFilter) { Guard.IsValidEnum(AiringStatus, nameof(AiringStatus)); builder.Append($"&airing_status={AiringStatus.GetDescription()}"); } // change first ampersand into question mark return(string.Concat("?", builder.ToString().TrimEnd('&').TrimStart('&'))); }
/// <summary> /// Create query from current parameters for search request. /// </summary> /// <returns>Query from current parameters for search request</returns> public string ConfigToString() { StringBuilder builder = new StringBuilder(); if (!string.IsNullOrWhiteSpace(Query)) { builder.Append($"q={Query}"); } if (Page > 0) { builder.Append($"&page={Page}"); } if (OrderBy != UserListMangaSearchSortable.NoSorting) { builder.Append($"&order_by={OrderBy.GetDescription()}"); builder.Append($"&sort={SortDirection.GetDescription()}"); if (OrderBy2 != UserListMangaSearchSortable.NoSorting) { builder.Append($"&order_by2={OrderBy2.GetDescription()}"); } } if (MagazineId > 0) { builder.Append($"&magazine={MagazineId}"); } if (PublishingStatus != UserListMangaPublishingStatus.NoFilter) { builder.Append($"&publishing_status={PublishingStatus.GetDescription()}"); } // change first ampersand into question mark return(string.Concat("?", builder.ToString().TrimEnd('&').TrimStart('&'))); }
/// <summary> /// Create query from current parameters for search request. /// </summary> /// <returns>Query from current parameters for search request</returns> public string ConfigToString() { StringBuilder builder = new StringBuilder(); if (Type != MangaType.EveryType) { Guard.IsValidEnum(Type, nameof(Type)); builder.Append($"&type={Type.GetDescription()}"); } if (Score.HasValue) { builder.Append($"&score={Score}"); } if (Rating != AgeRating.EveryRating) { Guard.IsValidEnum(Rating, nameof(Rating)); builder.Append($"&rated={Rating.GetDescription()}"); } if (Status != AiringStatus.EveryStatus) { Guard.IsValidEnum(Status, nameof(Status)); builder.Append($"&status={Status.GetDescription()}"); } if (StartDate.HasValue) { builder.Append($"&start_date={StartDate.Value:yyyy-MM-dd}"); } if (EndDate.HasValue) { builder.Append($"&end_date={EndDate.Value:yyyy-MM-dd}"); } if (Genres.Count > 0) { var genresId = Genres.Select(genreSearch => { Guard.IsValidEnum(genreSearch, nameof(genreSearch)); return(genreSearch.GetDescription()); }).ToArray(); builder.Append($"&genre={string.Join(",", genresId)}"); } if (!GenreIncluded) { builder.Append($"&genre_exclude=0$"); } if (OrderBy != MangaSearchSortable.NoSorting) { Guard.IsValidEnum(OrderBy, nameof(OrderBy)); Guard.IsValidEnum(SortDirection, nameof(SortDirection)); builder.Append($"&order_by={OrderBy.GetDescription()}"); builder.Append($"&sort={SortDirection.GetDescription()}"); } if (MagazineId > 0) { builder.Append($"&magazine={MagazineId}"); } return(builder.ToString().Trim('&')); }
/// <summary> /// Create query from current parameters for search request. /// </summary> /// <returns>Query from current parameters for search request</returns> public string ConfigToString() { var builder = new StringBuilder().Append('?'); if (Page.HasValue) { Guard.IsGreaterThanZero(Page.Value, nameof(Page.Value)); builder.Append($"page={Page.Value}&"); } if (PageSize.HasValue) { Guard.IsGreaterThanZero(PageSize.Value, nameof(PageSize.Value)); Guard.IsLesserOrEqualThan(PageSize.Value, ParameterConsts.MaximumPageSize, nameof(PageSize.Value)); builder.Append($"limit={PageSize.Value}&"); } if (!string.IsNullOrWhiteSpace(Query)) { builder.Append($"q={Query}&"); } if (Letter.HasValue) { Guard.IsLetter(Letter.Value, nameof(Letter.Value)); builder.Append($"letter={Letter.Value}&"); } if (Type != AnimeType.EveryType) { Guard.IsValidEnum(Type, nameof(Type)); builder.Append($"type={Type.GetDescription()}&"); } if (MinimumScore.HasValue) { builder.Append($"min_score={MinimumScore}&"); } if (MaximumScore.HasValue) { builder.Append($"max_score={MaximumScore}&"); } if (Rating != AnimeAgeRating.EveryRating) { Guard.IsValidEnum(Rating, nameof(Rating)); builder.Append($"rated={Rating.GetDescription()}&"); } if (Status != AiringStatus.EveryStatus) { Guard.IsValidEnum(Status, nameof(Status)); builder.Append($"status={Status.GetDescription()}&"); } if (Genres.Count > 0) { var genresIds = Genres.Select(genreSearch => { Guard.IsValidEnum(genreSearch, nameof(genreSearch)); return(genreSearch.GetDescription()); }).ToArray(); builder.Append($"genres={string.Join(",", genresIds)}&"); } if (ExcludedGenres.Count > 0) { var genresIds = ExcludedGenres.Select(genreSearch => { Guard.IsValidEnum(genreSearch, nameof(genreSearch)); return(genreSearch.GetDescription()); }).ToArray(); builder.Append($"genre_exclude={string.Join(",", genresIds)}&"); } if (OrderBy != AnimeSearchOrderBy.NoSorting) { Guard.IsValidEnum(OrderBy, nameof(OrderBy)); Guard.IsValidEnum(SortDirection, nameof(SortDirection)); builder.Append($"order_by={OrderBy.GetDescription()}&"); builder.Append($"sort={SortDirection.GetDescription()}&"); } if (ProducerIds.Any()) { builder.Append($"producers={string.Join(",", ProducerIds)}&"); } if (Sfw) { builder.Append("sfw"); } return(builder.ToString().Trim('&')); }