void IFilterConsumer.SetFilter(object sender, SetFilterEventArgs e)
        {
            string lastName = null;

            string []     arr;
            List <string> names = new List <string> ();

            foreach (string pair in e.FilterExpression.Split(new char [] { '&' }, StringSplitOptions.RemoveEmptyEntries))
            {
                if (((arr = pair.Split(new char [] { '=' }, StringSplitOptions.RemoveEmptyEntries))).Length > 1)
                {
                    if (lastName == null)
                    {
                        names.Add(lastName = string.Join("=", arr, 1, arr.Length - 1));
                    }
                    else
                    {
                        filterValues [lastName] = string.Join("=", arr, 1, arr.Length - 1);
                        lastName = null;
                    }
                }
            }
            Fields = new Duo <string [], string []> (names.ToArray(), names.ToArray());
            if ((--consumersWaiting) == 0)
            {
                PartCommunicationMain();
            }
        }
        void IFilterConsumer.SetFilter(object sender, SetFilterEventArgs e)
        {
            string        str  = null;
            List <string> list = new List <string>();

            foreach (string str2 in e.FilterExpression.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries))
            {
                string[] strArray;
                if ((strArray = str2.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries)).Length > 1)
                {
                    if (str == null)
                    {
                        list.Add(str = string.Join("=", strArray, 1, strArray.Length - 1));
                    }
                    else
                    {
                        this.filterValues[str] = string.Join("=", strArray, 1, strArray.Length - 1);
                        str = null;
                    }
                }
            }
            this.Fields = new Duo <string[], string[]>(list.ToArray(), list.ToArray());
            if (--this.consumersWaiting == 0)
            {
                this.PartCommunicationMain();
            }
        }
 public void SetFilter(object sender, SetFilterEventArgs e)
 {
 }
 public override void PartCommunicationMain()
 {
     if (this.consumersWaiting == 0)
     {
         if (this.CellReady != null)
         {
             CellReadyEventArgs e = new CellReadyEventArgs {
                 Cell = this.Provide(ProviderPreference.SingleValue)
             };
             this.CellReady(this, e);
         }
         if (this.filterClear && (this.ClearFilter != null))
         {
             this.ClearFilter(this, EventArgs.Empty);
         }
         else if (this.filterNone && (this.NoFilter != null))
         {
             this.NoFilter(this, EventArgs.Empty);
         }
         else if (this.SetFilter != null)
         {
             SetFilterEventArgs args2 = new SetFilterEventArgs {
                 FilterExpression = this.Provide(ProviderPreference.FilterString) as string
             };
             this.SetFilter(this, args2);
         }
         if (this.listPartial && (this.PartialListReady != null))
         {
             PartialListReadyEventArgs args3 = new PartialListReadyEventArgs {
                 List = this.Provide(ProviderPreference.Table) as DataTable
             };
             this.PartialListReady(this, args3);
         }
         else if (this.ListReady != null)
         {
             ListReadyEventArgs args4 = new ListReadyEventArgs {
                 List = this.Provide(ProviderPreference.Table) as DataTable
             };
             this.ListReady(this, args4);
         }
         if (this.paramInNone && (this.NoParametersIn != null))
         {
             this.NoParametersIn(this, EventArgs.Empty);
         }
         else if (this.ParametersInReady != null)
         {
             ParametersInReadyEventArgs args5 = new ParametersInReadyEventArgs {
                 ParameterValues = this.Provide(ProviderPreference.Values) as string[]
             };
             this.ParametersInReady(this, args5);
         }
         if (this.paramOutNone && (this.NoParametersOut != null))
         {
             this.NoParametersOut(this, EventArgs.Empty);
         }
         else if (this.ParametersOutReady != null)
         {
             ParametersOutReadyEventArgs args6 = new ParametersOutReadyEventArgs {
                 ParameterValues = this.Provide(ProviderPreference.Values) as string[]
             };
             this.ParametersOutReady(this, args6);
         }
         if (this.RowReady != null)
         {
             RowReadyEventArgs args7 = new RowReadyEventArgs {
                 SelectionStatus = this.rowSel,
                 Rows            = this.Provide(ProviderPreference.Rows) as DataRow[]
             };
             this.RowReady(this, args7);
         }
     }
 }