Пример #1
0
        /// <summary>
        /// Navega pelos preços.
        /// </summary>
        /// <param name="benefConfig"></param>
        /// <returns></returns>
        private static IEnumerable <Negocios.Entidades.BenefConfigPreco> NavegarPrecos
            (Negocios.Entidades.BenefConfig benefConfig)
        {
            foreach (var i in benefConfig.Precos)
            {
                yield return(i);
            }

            foreach (var i in benefConfig.Filhos)
            {
                foreach (var j in NavegarPrecos(i))
                {
                    yield return(j);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Executa o processamento das opções.
        /// </summary>
        private void ProcessarOpcoes()
        {
            var opcoes = new List <string>();
            var itens  = new List <ItemInfo>();

            if (!string.IsNullOrEmpty(ListaSelecao))
            {
                opcoes.AddRange(ListaSelecao.TrimEnd('|').Split('|'));
            }

            if (!string.IsNullOrEmpty(ListaItens))
            {
                itens.AddRange(ListaItens.TrimEnd('|').Split('|').Select(f => ItemInfo.Parse(f)).Where(f => f != null));
            }


            // Se o controle possuir lista de opções
            if (TipoControle != Glass.Data.Model.TipoControleBenef.SelecaoSimples &&
                TipoControle != Glass.Data.Model.TipoControleBenef.Quantidade)
            {
                var atualizados = new List <Glass.Global.Negocios.Entidades.BenefConfig>();

                // Insere a lista de opções
                for (var i = 0; i < opcoes.Count; i++)
                {
                    // Tenta recupera o beneficiamento existente
                    var benef = Filhos.FirstOrDefault(f =>
                                                      StringComparer.InvariantCultureIgnoreCase.Equals(f.Nome, opcoes[i]));

                    if (benef == null)
                    {
                        benef          = new Negocios.Entidades.BenefConfig();
                        benef.IdParent = IdBenefConfig;
                        // Recupera o nome da opção
                        benef.Nome = opcoes[i];

                        Filhos.Add(benef);
                    }

                    benef.Descricao        = benef.Nome;
                    benef.CobrarAreaMinima = CobrarAreaMinima;

                    benef.TipoEspessura = CobrarPorEspessura ?
                                          Glass.Data.Model.TipoEspessuraBenef.ItemPossui :
                                          Glass.Data.Model.TipoEspessuraBenef.ItemNaoPossui;

                    benef.Situacao    = Glass.Situacao.Ativo;
                    benef.TipoCalculo = TipoCalculo;

                    var item = itens[i];

                    benef.IdProcesso       = item.IdProcesso;
                    benef.IdAplicacao      = item.IdAplicacao;
                    benef.IdProd           = item.IdProd;
                    benef.AcrescimoAltura  = item.AcrescimoAltura;
                    benef.AcrescimoLargura = item.AcrescimoLargura;

                    atualizados.Add(benef);
                }

                // Recupera os filhos que devem ser apagados
                foreach (var i in Filhos.Where(f => !atualizados.Exists(x => f.Equals(x))).ToArray())
                {
                    Filhos.Remove(i);
                }
            }
        }