private async void btnBusquedaCO_Click(object sender, RoutedEventArgs e)
        {
            var listasu = dgSucCO.Items.OfType <Sucursal>();
            var listaCa = dgCat.Items.OfType <CategoriaOferta>();

            ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client();
            string json = proxy.ReadAllOfertas(mainwindow.RetailActual.IdRetail);

            Core.Negocio.OfertaCollections collof = new Core.Negocio.OfertaCollections(json);
            var  colloff = new OfertaCollections();
            var  colmost = new OfertaCollections();
            bool pas     = false;

            //primer filtro

            if (txtBusquedaCO.Text.Length > 0)
            {
                foreach (var item in collof)
                {
                    if (item.Nombre.ToUpper().Contains(txtBusquedaCO.Text))
                    {
                        colloff.Add(item);
                    }
                }
                colmost = colloff;
            }
            else
            {
                colloff = collof;
                colmost = colloff;
            }
            // segundo filtro

            collof  = colmost;
            colloff = new OfertaCollections();
            if (cbPublicadasCO.IsChecked == true)
            {
                foreach (var item in collof)
                {
                    if (item.EstadoOferta.Equals('1'))
                    {
                        colloff.Add(item);
                    }
                }
                colmost = colloff;
            }
            else
            {
                foreach (var item in collof)
                {
                    if (item.EstadoOferta.Equals('0'))
                    {
                        colloff.Add(item);
                    }
                }
                colmost = colloff;
            }
            collof  = colmost;
            colloff = new OfertaCollections();
            //tercer filtro
            foreach (var item in listasu)
            {
                if (item.Selec == true)
                {
                    pas = true;
                }
            }

            if (pas)
            {
                foreach (var item in listasu)
                {
                    if (item.Selec == true)
                    {
                        foreach (var item2 in collof)
                        {
                            if (item.IdSucursal == item2.IdSucursal)
                            {
                                colloff.Add(item2);
                            }
                        }
                    }
                }
                colmost = colloff;
            }
            else
            {
                collof = colmost;
            }

            pas = false;

            //Cuarto filtro
            foreach (var item in listaCa)
            {
                if (item.Selec == true)
                {
                    pas = true;
                }
            }

            if (pas)
            {
                foreach (var item in listaCa)
                {
                    if (item.Selec == true)
                    {
                        foreach (var item2 in collof)
                        {
                            if (item.IdCategoria == item2.CategoriaIdOferta)
                            {
                                colloff.Add(item2);
                            }
                        }
                    }
                }
                colmost = colloff;
            }
            else
            {
                collof = colmost;
            }

            if (colmost.Count() > 0)
            {
                colmost.ToList();
                dgOfertasCO.ItemsSource = colmost;
            }
            else
            {
                await this.ShowMessageAsync("Error", "No hay coincidencias para mostrar");

                LimpiarControles();
            }
        }
        private async void btnBusquedaPu_Click(object sender, RoutedEventArgs e)
        {
            ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client();
            string json = proxy.ReadAllOfertas(mainwindow.RetailActual.IdRetail);

            Core.Negocio.OfertaCollections collof = new Core.Negocio.OfertaCollections(json);
            var colloff = new OfertaCollections();

            if (txtBusquedaPu.Text.Length > 0)
            {
                if (cbPublicadas.IsChecked == true)
                {
                    foreach (var item in collof)
                    {
                        if (item.Nombre.ToUpper().Contains(txtBusquedaPu.Text.ToUpper()) && item.EstadoOferta.Equals('1'))
                        {
                            colloff.Add(item);
                        }
                    }

                    if (colloff.Count > 0)
                    {
                        colloff.ToList();
                        dgOfertas.ItemsSource = colloff;
                    }
                    else
                    {
                        await this.ShowMessageAsync("Error", "No hay ofertas publicadas para mostrar");
                    }
                }
                else
                {
                    foreach (var item in collof)
                    {
                        if (item.EstadoOferta.Equals('0') && item.Nombre.ToUpper().Contains(txtBusquedaPu.Text.ToUpper()))
                        {
                            colloff.Add(item);
                        }
                    }

                    if (colloff.Count > 0)
                    {
                        colloff.ToList();
                        dgOfertas.ItemsSource = colloff;
                    }
                    else
                    {
                        await this.ShowMessageAsync("Error", "No hay ofertas no publicadas para mostrar");
                    }
                }
            }
            else
            {
                if (cbPublicadas.IsChecked == true)
                {
                    foreach (var item in collof)
                    {
                        if (item.EstadoOferta.Equals('1'))
                        {
                            colloff.Add(item);
                        }
                    }

                    if (colloff.Count > 0)
                    {
                        colloff.ToList();
                        dgOfertas.ItemsSource = colloff;
                    }
                    else
                    {
                        await this.ShowMessageAsync("Error", "No hay ofertas publicadas para mostrar");
                    }
                }
                else
                {
                    foreach (var item in collof)
                    {
                        if (item.EstadoOferta.Equals('0'))
                        {
                            colloff.Add(item);
                        }
                    }

                    if (colloff.Count > 0)
                    {
                        colloff.ToList();
                        dgOfertas.ItemsSource = colloff;
                    }
                    else
                    {
                        await this.ShowMessageAsync("Error", "No hay ofertas no publicadas para mostrar");
                    }
                }
            }
        }