Esempio n. 1
0
        public override void OnResponse(int buttonID, int[] switches, Dictionary <int, string> textEntries = null)
        {
            if (buttonID == SEARCH_BUTTON)
            {
                string searchText = textEntries?.FirstOrDefault(i => i.Key == SEARCH_ENTRY_ID).Value ?? "";

                HttpClient httpClient = new HttpClient();

                httpClient.GetAsync($"{API_URL}/searchFull/{Uri.EscapeUriString( searchText )}").ContinueWith(
                    async t =>
                {
                    try
                    {
                        string response = await t.Result.Content.ReadAsStringAsync();

                        if (!t.Result.IsSuccessStatusCode)
                        {
                            throw new Exception("An error occurred.");
                        }

                        VendorItem[] results = JsonConvert.DeserializeObject <VendorItem[]>(response);

                        if (results?.Length == 0)
                        {
                            DemiseSearchGump gump = new DemiseSearchGump("No results found for search.");
                            gump.SendGump();
                        }
                        else
                        {
                            DemiseSearchGump gump =
                                new DemiseSearchGump($"{results?.Length} result(s) for search term.", searchText,
                                                     results);
                            gump.SendGump();
                        }
                    }
                    catch (Exception e)
                    {
                        DemiseSearchGump gump = new DemiseSearchGump(e.Message);
                        gump.SendGump();
                    }
                });
            }
            else if (buttonID >= 0x40000000)
            {
                DemiseSearchGump gump = new DemiseSearchGump(_message, _searchTerm, _results);
                gump.SendGump();

                VendorItem item = _results.FirstOrDefault(i => i.Serial == buttonID);

                if (item == null)
                {
                    return;
                }

                SendMap(item.Serial, item.X, item.Y, item.Map);
            }

            Engine.RemoveSendPostFilter(_pfi);
        }
Esempio n. 2
0
        private static void OnStoreClick(byte[] arg1, PacketFilterInfo arg2)
        {
            DemiseSearchGump gump = new DemiseSearchGump();

            gump.SendGump();
        }