/// <summary>
        /// Cria ou modifica o atributo adicional
        /// </summary>
        /// <param name="atributoAdicional">Atributo adicional base para a criação ou modificação</param>
        /// <param name="valoresAdicionados">Valores de domínio do atributo adicional a serem criados</param>
        /// <param name="valoresExcluidos">Valores de domínio do atributo adicional a serem excluídos</param>
        /// <returns>Indica se a criação ou modificação foi bem sucedida</returns>
        public static bool AtualizaAtributoAdicional(AtributoAdicional atributoAdicional, List <string> valoresAdicionados, List <int> valoresExcluidos)
        {
            string json;

            try
            {
                if (atributoAdicional.Id.HasValue)
                {
                    string lAtributoAdicional = "[{ \"Nome\" : \"" + atributoAdicional.Nome + "\" }]";
                    json = AuxiliarJson.Coloca(lAtributoAdicional, EnderecosApi.AtributoAdicional + "/" + atributoAdicional.Id.Value, true);
                }
                else
                {
                    json = AuxiliarJson.Posta(atributoAdicional, EnderecosApi.AtributoAdicional);
                    atributoAdicional = (AtributoAdicional)AuxiliarJson.Desserializa <AtributoAdicional>(json);
                }

                foreach (string valorAdicionado in valoresAdicionados)
                {
                    CriaValorAtributoAdicional(atributoAdicional.Id.Value, valorAdicionado);
                }

                foreach (int valorExcluido in valoresExcluidos)
                {
                    ExcluiValorAtributoAdicional(atributoAdicional.Id.Value, valorExcluido);
                }

                return(true);
            }
            catch (Exception ex)
            {
                Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString());
                return(false);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Evento de construção de cada linha de atributo adicional na tabela
        /// </summary>
        /// <param name="sender">Objeto que disparou esse evento</param>
        /// <param name="e">Contém os argumentos fornecidos nesse evento</param>
        protected void RptAtributoAdicional_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e != null && (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem))
            {
                AtributoAdicional atributo   = (AtributoAdicional)e.Item.DataItem;
                Label             lblNome    = (Label)e.Item.FindControl("LblNome");
                LinkButton        btnEditar  = (LinkButton)e.Item.FindControl("btnEditar");
                LinkButton        btnExcluir = (LinkButton)e.Item.FindControl("BtnExcluir");

                lblNome.Text = atributo.Nome;
                btnEditar.CommandArgument  = atributo.Id.ToString();
                btnExcluir.CommandArgument = atributo.Id.ToString();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Define os controles de edição com os valores do atributo adicional
        /// </summary>
        /// <param name="idAtributoAdicional">Identificador do atributo adicional</param>
        private void EditaAtributoAdicional(int idAtributoAdicional)
        {
            AtributoAdicional atributo = GerenciamentoAtributoAdicional.ObtemAtributoAdicional(idAtributoAdicional);
            string            valores  = string.Empty;

            foreach (Parametro valor in atributo.Valores)
            {
                valores += string.IsNullOrEmpty(valores) ? valor.Valor : ConstantesGlobais.SEPARADOR_TAG + valor.Valor;
            }

            this.TxtNome.Text              = atributo.Nome;
            this.TxtValores.Text           = valores;
            this.BtnSalvar.CommandArgument = idAtributoAdicional.ToString();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Altera o atributo adiconal e os seus valores, quando necessário
        /// </summary>
        /// <param name="idAtributoAdicional">Identificador do atributo adicional</param>
        private void AtualizaAtributoAdicional(int?idAtributoAdicional)
        {
            AtributoAdicional atributoAdicional = idAtributoAdicional.HasValue ?
                                                  GerenciamentoAtributoAdicional.ObtemAtributoAdicional(idAtributoAdicional.Value) : new AtributoAdicional();
            List <string> valoresCarregados = atributoAdicional.Valores != null?atributoAdicional.Valores.Select(v => v.Valor).ToList() : new List <string>();

            List <string> valoresDigitados = !string.IsNullOrEmpty(this.TxtValores.Text) ? this.TxtValores.Text.Split(ConstantesGlobais.SEPARADOR_TAG).ToList() : new List <string>();
            List <int>    valoresExcluidos = atributoAdicional.Valores != null?atributoAdicional.Valores.Select(v => v.Id.Value).ToList() : new List <int>();

            List <string> valoresAdicionados = new List <string>();
            int           idValor;

            foreach (string valor in valoresDigitados)
            {
                if (valoresCarregados.Contains(valor))
                {
                    idValor = atributoAdicional.Valores.First(v => v.Valor == valor).Id.Value;
                    valoresExcluidos.Remove(idValor);
                }
                else
                {
                    valoresAdicionados.Add(valor);
                }
            }

            atributoAdicional.Nome = this.TxtNome.Text;

            this.DivMensagem.Visible             = true;
            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO;

            if (string.IsNullOrEmpty(atributoAdicional.Nome))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_NOME_VAZIO;
                return;
            }

            if (!GerenciamentoAtributoAdicional.AtualizaAtributoAdicional(atributoAdicional, valoresAdicionados, valoresExcluidos))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_ALTERACAO;
                return;
            }

            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO;
            this.LblMensagem.Text = idAtributoAdicional.HasValue ? MENSAGEM_SUCESSO_ALTERACAO : MENSAGEM_SUCESSO_INCLUSAO;

            this.ReiniciaControles();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Exclui o atributo adiconal e todos os seus valores
        /// </summary>
        /// <param name="idAtributoAdicional">Identificador do atributo adicional</param>
        private void ExcluiAtributoAdicional(int idAtributoAdicional)
        {
            AtributoAdicional atributoAdicional = GerenciamentoAtributoAdicional.ObtemAtributoAdicional(idAtributoAdicional);
            List <int>        valoresAExcluir   = atributoAdicional.Valores != null?atributoAdicional.Valores.Select(v => v.Id.Value).ToList() : new List <int>();

            this.DivMensagem.Visible             = true;
            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO;

            if (!GerenciamentoAtributoAdicional.ExcluiAtributoAdicional(idAtributoAdicional, valoresAExcluir))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_EXCLUSAO;
                return;
            }

            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO;
            this.LblMensagem.Text = MENSAGEM_SUCESSO_EXCLUSAO;

            this.ReiniciaControles();
        }