public async Task <StackLayout> AddBooksWithSpecial(string title, IOrderedEnumerable <WordbookImpressLibrary.Schemas.WordbookSuggestion.infoBooksBook> books, StackLayout stack = null, Action action = null) { try { var PreferPrintedBook = WordbookImpressLibrary.Storage.ConfigStorage.Content?.StorePreferPrintedBook ?? true; var w = books?.Select((b) => (b?.ids?.FirstOrDefault((id) => id.type == "ASIN" && id.binding == (PreferPrintedBook ? "printed_book" : "ebook")) ?? b?.ids?.FirstOrDefault((id) => id.type == "ASIN" && id.binding == (PreferPrintedBook ? "ebook" : "printed_book")))?.Value)?.Where((s) => s != null)?.ToArray(); if (w?.Count() > 0) { StoreItemsCardContentView storeItems; stack = stack ?? AddFrame(); stack.Children.Add(storeItems = new StoreItemsCardContentView(title)); var res = await storeItems.StoreItems.AddASIN(w.ToArray()); if (action != null) { storeItems.ActionMore = () => { try { action(); } catch { } }; } else if (res?.Items?.MoreSearchResultsUrl != null) { storeItems.ActionMore = () => { try { Device.OpenUri(new Uri(res?.Items?.MoreSearchResultsUrl)); } catch { } }; } return(stack); } else { return(null); } } catch { return(null); } }
public async Task <StackLayout> AddSearchResult(string title, string word, StackLayout stack = null) { try { StoreItemsCardContentView storeItems; stack = stack ?? AddFrame(); stack.Children.Add(storeItems = new StoreItemsCardContentView(title)); var res = await storeItems.StoreItems.AddSearchResult(word, Nager.AmazonProductAdvertising.Model.AmazonSearchIndex.Books); if (res?.Items?.MoreSearchResultsUrl != null) { storeItems.ActionMore = () => { try { Device.OpenUri(new Uri(res?.Items?.MoreSearchResultsUrl)); } catch { } }; } return(stack); } catch { return(null); } }
public async Task <StackLayout> AddRelated(Func <Nager.AmazonProductAdvertising.Model.AmazonItemResponse, string> titleFunc, string ASIN, StackLayout stack = null) { try { StoreItemsCardContentView storeItems; stack = stack ?? AddFrame(); stack.Children.Add(storeItems = new StoreItemsCardContentView()); var res = await storeItems.StoreItems.AddRelaed(ASIN); storeItems.ItemsTitle = titleFunc?.Invoke(res.Item1) ?? ""; if (res.Item2?.Items?.MoreSearchResultsUrl != null) { storeItems.ActionMore = () => { try { Device.OpenUri(new Uri(res.Item2?.Items?.MoreSearchResultsUrl)); } catch { } }; } return(stack); } catch { return(null); } }