Exemple #1
0
        public void Inserir(EstruturaParceiroNovo parceiro, Dictionary <int, string> listaCodigos)
        {
            try
            {
                bd.IniciarTransacao();

                this.Parceiro.Valor = parceiro.Parceiro;
                this.Tipo.Valor     = (int)parceiro.Tipo;
                this.Url.Valor      = parceiro.Url;

                this.Inserir(bd);

                if (listaCodigos.Count > 0)
                {
                    this.InserirCodigos(bd, this.Control.ID, parceiro.Tipo, listaCodigos);
                }

                bd.FinalizarTransacao();
            }
            catch (Exception)
            {
                bd.DesfazerTransacao();
                throw;
            }
            finally
            {
                bd.Fechar();
            }
        }
Exemple #2
0
        public void Excluir(EstruturaParceiroNovo parceiro)
        {
            try
            {
                bd.IniciarTransacao();
                bd.Executar(
                    "DELETE FROM tCodigoPromo WHERE ParceiroID = " + parceiro.ID);
                bd.Executar(
                    "DELETE FROM tBin WHERE ParceiroID = " + parceiro.ID);
                bd.Executar(
                    "UPDATE tCotaItem SET ParceiroID = 0 WHERE ParceiroID = " + parceiro.ID);

                this.Excluir(bd, parceiro.ID);

                bd.FinalizarTransacao();
            }
            catch (Exception)
            {
                bd.DesfazerTransacao();
                throw;
            }
            finally
            {
                bd.Fechar();
            }
        }
Exemple #3
0
        public void Atualizar(EstruturaParceiroNovo parceiro, Dictionary <int, string> listaCodigos, bool limparCodigos)
        {
            BD bdAux = new BD();

            try
            {
                bd.IniciarTransacao();

                this.Parceiro.Valor = parceiro.Parceiro;
                this.Tipo.Valor     = (int)parceiro.Tipo;
                this.Url.Valor      = parceiro.Url;

                this.Control.ID = parceiro.ID;

                this.Atualizar(bd);

                Dictionary <int, string> listaCodigosAntigos = new Dictionary <int, string>();
                Dictionary <int, string> listaCodigoInserir  = new Dictionary <int, string>();
                //Excluir os códigos se tiver marcado pra excluir e/ou o tipo for diferente do selecionado
                if (limparCodigos || parceiro.Tipo == Enumerators.TipoParceiro.Bin)
                {
                    bd.Executar("DELETE FROM tCodigoPromo WHERE ParceiroID = " + parceiro.ID);
                }
                else
                {
                    bdAux.Consulta("SELECT ID, BIN FROM tBin (NOLOCK) WHERE ParceiroID = " + parceiro.ID);
                    while (bdAux.Consulta().Read())
                    {
                        listaCodigosAntigos.Add(bdAux.LerInt("ID"), bdAux.LerString("BIN"));
                    }
                }

                if (limparCodigos || parceiro.Tipo == Enumerators.TipoParceiro.Codigo)
                {
                    bd.Executar("DELETE FROM tBin WHERE ParceiroID = " + parceiro.ID);
                }
                else
                {
                    bdAux.Consulta("SELECT ID, Codigo FROM tCodigoPromo (NOLOCK) WHERE ParceiroID = " + parceiro.ID);
                    while (bdAux.Consulta().Read())
                    {
                        listaCodigosAntigos.Add(bdAux.LerInt("ID"), bdAux.LerString("Codigo"));
                    }
                }
                bdAux.FecharConsulta();

                //Se limpou os códigos, só inclui a lista inteira
                if (limparCodigos && listaCodigos.Count > 0)
                {
                    this.InserirCodigos(bd, parceiro.ID, parceiro.Tipo, listaCodigos);
                }
                //Do contrario, pega os itens que não são duplicados e inclui
                else if (listaCodigos.Count > 0)
                {
                    foreach (var codigo in listaCodigos)
                    {
                        if (!listaCodigosAntigos.ContainsValue(codigo.Value))
                        {
                            listaCodigoInserir.Add(codigo.Key, codigo.Value);
                        }
                    }

                    if (listaCodigoInserir.Count > 0)
                    {
                        this.InserirCodigos(bd, parceiro.ID, parceiro.Tipo, listaCodigoInserir);
                    }
                }

                bd.FinalizarTransacao();
            }
            catch (Exception)
            {
                bd.DesfazerTransacao();
                throw;
            }
            finally
            {
                bdAux.Fechar();
                bd.Fechar();
            }
        }