using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using FourLayer.ApplicationLogic;
using FourLayer.BusinessEntity;

public partial class ExtenderTester : System.Web.UI.Page
{
   /// <summary>
   /// Obsługuje zdarzenia związane z wybieraniem przez użytkownika książek w kontrolce GridView
   /// </summary>
   protected void grdBookList_SelectedIndexChanged(object sender, EventArgs e)
   {
      string isbn = (string)grdBookList.SelectedDataKey.Value;

      BookCatalogLogic logic = new BookCatalogLogic();
      Book book = logic.GetBookByIsbn(isbn);
      if (book != null) DisplayBook(book);    
   }

   /// <summary>
   /// Obsługa zdarzenia związanego z kliknięciem przycisku szukania
   /// </summary>
   protected void btnSearch_Click(object sender, EventArgs e)
   {
      System.Threading.Thread.Sleep(2000);
      // spróbuj odczytać książkę na podstawie wprowadzanego tekstu
      BookCatalogLogic logic = new BookCatalogLogic();
      EntityCollection<Book> books = logic.GetBooksByTitle(txtSearch.Text);
      // jeśli książka została odnaleziona, wyświetl ją w panelu
      if (books == null || books.Count <= 0)
         labNotFound.Text = "Książki nie odnaleziono";
      else
         DisplayBook(books[0]);
   }

   /// <summary>
   /// Wyświetla informacje o książce w panelu
   /// </summary>
   private void DisplayBook(Book book)
   {
      labNotFound.Text = "";
      labBookTitle.Text = book.Title;
      labBookAuthors.Text = book.AuthorsCommaList;
      labBookPublisher.Text = book.BookPublisher.Name;
      labBookDesc.Text = book.BriefDescription;
   }
}

/*
 ROZWIĄZANIE ALTERNATYWNE Z UŻYCIEM ROZSZERZEŃ
 * 
<atlas:AutoCompleteExtender MinimumPrefixLength="1" runat="server" 
   ServiceMethod="GetTitleSuggestions" ServicePath="BookService.asmx" >

   <atlas:AutoCompleteProperties TargetControlID="txtSearch" Enabled="true" />
</atlas:AutoCompleteExtender>


 *  
 * alternatywa z użyciem kodu po stronie klienta
 * 
      <script type="text/xml-script">
         <page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
            <components>
               <textBox id="txtSearch">
                  <behaviors>
                     <autoComplete 
                        completionList="drpSearchDiv"
                        serviceURL="BookService.asmx" 
                        serviceMethod="GetTitleSuggestions"
                        minimumPrefixLength="1" 
                        completionSetCount="8" 
                        completionInterval="200" />
                  </behaviors>
               </textBox>
            </components>
         </page>
      </script>
*/