public async Task HandleSearchBaseTermsAction(SearchBaseTermsAction action, IDispatcher dispatcher) { var returnCode = HttpStatusCode.OK; var currentString = "true"; if (!action.Current) { currentString = "false"; } var translationResult = new RootObject <ResultBaseTranslation>(); var hasTranslations = action.HasTranslations switch { EnumHasTranslations.WithTranslations => "true", EnumHasTranslations.WithoutTranslations => "false", _ => string.Empty }; var queryString = $"{Const.BaseTerms}?text={action.SearchText}&page={action.SearchPageNr}&per_page={action.ItemsPerPage}¤t={currentString}&base_term_language_id={action.BaseTermLangId}&has_translations={hasTranslations}"; if (action.TranslationLangId != Const.PlLangId) { queryString += $"&translation_language_id={action.TranslationLangId}"; } try { translationResult = await _httpClient.GetFromJsonAsync <RootObject <ResultBaseTranslation> >( queryString, Const.HttpClientOptions); } catch (Exception e) { dispatcher.Dispatch(new NotificationAction(e.Message, SnackbarColor.Danger)); returnCode = HttpStatusCode.BadRequest; } if (translationResult is null) { dispatcher.Dispatch(new SearchBaseTermsResultAction( new RootObject <ResultBaseTranslation>(), returnCode: returnCode)); dispatcher.Dispatch(new NotificationAction(action.NoResults, SnackbarColor.Warning)); return; } if (translationResult.Count == 0) { //no data result dispatcher.Dispatch(new NotificationAction(action.NoResults, SnackbarColor.Warning)); } dispatcher.Dispatch(new SearchBaseTermsResultAction(translationResult, returnCode: returnCode)); if (returnCode != HttpStatusCode.BadRequest) { dispatcher.Dispatch( new NotificationAction(action.SearchBaseTermMessage, SnackbarColor.Success)); } }
public static SearchState ReduceSearchBaseTermsAction(SearchState state, SearchBaseTermsAction action) =>