using GMW_data;
using SteamWare;
using System.Collections.Generic;
using System.Web.Script.Services;
using System.Web.Services;

namespace GMW.WS
{
    /// <summary>
    /// servizi per AutoCompletamento oggetti
    /// </summary>
    [WebService(Namespace = "http://www.steamware.net/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService]
    public class AutoCompletamento : System.Web.Services.WebService
    {

        [System.Web.Services.WebMethod]
        public string[] elencoAnime(string prefixText, int count)
        {
            // inizializzo risposta
            List<string> suggerimenti = new List<string>();
            // proseguo SOLO SE min "MinCharAutocomplete" char...
            if (count >= memLayer.ML.cdvi("MinCharAutocomplete"))
            {
                // elenco candidati
                GMW_data.DS_Utility.v_selParticolariDataTable tabParticolari = utils.obj.taSelPart.getByConditioPref("A", prefixText);
                // aggiungo ogni riga...
                foreach (GMW_data.DS_Utility.v_selParticolariRow riga in tabParticolari)
                {
                    suggerimenti.Add(riga.value);
                }
            }
            return suggerimenti.ToArray();
        }
        [System.Web.Services.WebMethod]
        public string[] elencoParticolari(string prefixText, int count)
        {
            // inizializzo risposta
            List<string> suggerimenti = new List<string>();
            // proseguo SOLO SE min "MinCharAutocomplete" char...
            if (count >= memLayer.ML.cdvi("MinCharAutocomplete"))
            {
                // elenco candidati
                GMW_data.DS_Utility.v_selParticolariDataTable tabParticolari = utils.obj.taSelPart.getByConditioPref("P", prefixText);
                // aggiungo ogni riga...
                foreach (GMW_data.DS_Utility.v_selParticolariRow riga in tabParticolari)
                {
                    suggerimenti.Add(riga.value);
                }
            }
            return suggerimenti.ToArray();
        }

        [System.Web.Services.WebMethod]
        public string[] elencoParticolariAnime(string prefixText, int count)
        {
            // inizializzo risposta
            List<string> suggerimenti = new List<string>();
            // proseguo SOLO SE min "MinCharAutocomplete" char...
            if (count >= memLayer.ML.cdvi("MinCharAutocomplete"))
            {
                // elenco candidati
                GMW_data.DS_Utility.v_selParticolariDataTable tabParticolari = utils.obj.taSelPart.getByConditioPref("", prefixText);
                // aggiungo ogni riga...
                foreach (GMW_data.DS_Utility.v_selParticolariRow riga in tabParticolari)
                {
                    suggerimenti.Add(riga.value);
                }
            }
            return suggerimenti.ToArray();
        }
        [System.Web.Services.WebMethod]
        public string[] elencoCelle(string prefixText, int count)
        {
            // inizializzo risposta
            List<string> suggerimenti = new List<string>();
            // proseguo SOLO SE min "MinCharAutocomplete" char...
            if (count >= memLayer.ML.cdvi("MinCharAutocomplete"))
            {
                // elenco candidati
                DS_magazzino.CelleDataTable tabCelle = MagClass.magazzino.taCelle.getByCodCellaLike(prefixText, memLayer.ML.cdv("CodCS"));
                // aggiungo ogni riga...
                foreach (DS_magazzino.CelleRow riga in tabCelle)
                {
                    suggerimenti.Add(riga.CodCella);
                }
            }
            return suggerimenti.ToArray();
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string[] celle(string prefixText, int count)
        {
            // inizializzo risposta
            List<string> suggerimenti = new List<string>();
            // proseguo SOLO SE min "MinCharAutocomplete" char...
            if (count >= memLayer.ML.cdvi("MinCharAutocomplete"))
            {
                // elenco candidati
                DS_magazzino.CelleDataTable tabCelle = MagClass.magazzino.taCelle.getByCodCellaLike(prefixText, memLayer.ML.cdv("CodCS"));
                // aggiungo ogni riga...
                foreach (DS_magazzino.CelleRow riga in tabCelle)
                {
                    suggerimenti.Add(string.Format("{0}#{1}", riga.CodCella, riga.CodCella));
                }
            }
            return suggerimenti.ToArray();
        }


        [System.Web.Services.WebMethod]
        public string[] elencoImballi(string prefixText, int count)
        {
            // inizializzo risposta
            List<string> suggerimenti = new List<string>();
            // proseguo SOLO SE min "MinCharAutocomplete" char...
            if (count >= memLayer.ML.cdvi("MinCharAutocomplete"))
            {
                // elenco candidati
                GMW_data.DS_Utility.v_selImballiDataTable tabValori = utils.obj.taSelImballi.getLikePref(prefixText);
                // aggiungo ogni riga...
                foreach (GMW_data.DS_Utility.v_selImballiRow riga in tabValori)
                {
                    suggerimenti.Add(riga.value);
                }
            }
            return suggerimenti.ToArray();
        }
    }
}
