private async void btnEjecutar_Click(object sender, RoutedEventArgs e)
        {
            lblNombre.Content      = validador.validarNombre(txtNombre.Text);
            lblEmail.Content       = validador.validarCorreo(txtEmail.Text);
            lblRazonSocial.Content = validador.validarRazonSocial(txtRazonSocial.Text);
            lblRut.Content         = validador.validarRut(txtRut.Text);

            Retail ret = new Retail();

            ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client();
            if (cbComuna.SelectedIndex.Equals(-1))
            {
                lblComuna.Content    = "Seleccione una opcion";
                lblComuna.Visibility = Visibility.Visible;
            }

            if (lblRut.Content.Equals("OK") && lblNombre.Content.Equals("OK") && lblRazonSocial.Content.Equals("OK") && lblEmail.Content.Equals("OK"))
            {
                lblEmail.Visibility = Visibility.Hidden;
                string json;
                switch (btnEjecutar.Content.ToString())
                {
                case "Agregar":

                    ret.RutRetail    = txtRut.Text;
                    ret.NombreRetail = txtNombre.Text;
                    ret.RazonSocial  = txtRazonSocial.Text;
                    int tele;
                    int.TryParse(txtTelefono.Text, out tele);
                    ret.Telefono  = tele;
                    ret.Email     = txtEmail.Text;
                    ret.Direccion = txtDireccion.Text;
                    ret.IdRegion  = (int)cbRegion.SelectedValue;
                    ret.IdComuna  = (int)cbComuna.SelectedValue;

                    json = ret.Serializar();
                    if (proxy.CrearRetail(json))
                    {
                        await this.ShowMessageAsync("Exito", "Retail creado");

                        LimpiarControles();
                    }
                    else
                    {
                        await this.ShowMessageAsync("Error", "No se a podido crear");

                        LimpiarControles();
                    }

                    break;

                case "Modificar":

                    ret.RutRetail    = txtRut.Text;
                    ret.NombreRetail = txtNombre.Text;
                    ret.RazonSocial  = txtRazonSocial.Text;
                    int tel;
                    int.TryParse(txtTelefono.Text, out tel);
                    ret.Telefono  = tel;
                    ret.Email     = txtEmail.Text;
                    ret.Direccion = txtDireccion.Text;
                    ret.IdRegion  = (int)cbRegion.SelectedValue;
                    ret.IdComuna  = (int)cbComuna.SelectedValue;
                    Retail id = (Retail)dgRetail.SelectedItem;
                    ret.IdRetail = id.IdRetail;
                    json         = ret.Serializar();
                    if (proxy.ActualizarRetail(json))
                    {
                        await this.ShowMessageAsync("Exito", "Retail actualizado");

                        LimpiarControles();
                    }
                    else
                    {
                        await this.ShowMessageAsync("Error", "No se a podido actualizar");

                        LimpiarControles();
                    }
                    break;

                case "Eliminar":

                    Retail r = (Retail)dgRetail.SelectedValue;
                    json = r.Serializar();
                    if (proxy.EliminarRetail(json))
                    {
                        await this.ShowMessageAsync("Exito", "Retail eliminado");

                        LimpiarControles();
                    }
                    else
                    {
                        await this.ShowMessageAsync("Error", "No se a podido eliminar");

                        LimpiarControles();
                    }

                    break;

                default:
                    break;
                }
            }
            else
            {
                if (lblEmail.Content.Equals("OK"))
                {
                    lblEmail.Visibility = Visibility.Hidden;
                }
                else
                {
                    lblEmail.Visibility = Visibility.Visible;
                }

                if (lblRazonSocial.Content.Equals("OK"))
                {
                    lblRazonSocial.Visibility = Visibility.Hidden;
                }
                else
                {
                    lblRazonSocial.Visibility = Visibility.Visible;
                }

                if (lblNombre.Content.Equals("OK"))
                {
                    lblNombre.Visibility = Visibility.Hidden;
                }
                else
                {
                    lblNombre.Visibility = Visibility.Visible;
                }

                if (lblRut.Content.Equals("OK"))
                {
                    lblRut.Visibility = Visibility.Hidden;
                }
                else
                {
                    lblRut.Visibility = Visibility.Visible;
                }
            }
        }