/// <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); } }
/// <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(); } }
/// <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(); }
/// <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(); }
/// <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(); }