Пример #1
0
        public static string Serializar(object objeto, ComportamentoFlags comportamentoExpecifico)
        {
            var comportamentoAtual = ComportamentoAtual.DevolverComportamentoAtual();

            ComportamentoAtual.AtualizarComportamentoGeral(comportamentoExpecifico);

            try
            {
                if (objeto == null)
                {
                    throw new ArgumentNullException(nameof(objeto));
                }

                var tipo = objeto.GetType();

                var cabecalhoTx2 = Resolvedor.Cabecalho.RetornaValorCabecalho(tipo);

                var corpoTx2 = Resolvedor.Propriedades.RetornaValorPropriedades(objeto, tipo);

                if (string.IsNullOrWhiteSpace(cabecalhoTx2) &&
                    ComportamentoAtual.NaoAdicionarCabecalhoRodapeQuandoVazio)
                {
                    return($"{corpoTx2}");
                }

                return($"INCLUIR{cabecalhoTx2}\n{corpoTx2}SALVAR{cabecalhoTx2}");
            }
            finally
            {
                ComportamentoAtual.AtualizarComportamentoGeral(comportamentoAtual);
            }
        }
Пример #2
0
        internal static ComportamentoFlags DevolverComportamentoAtual()
        {
            ComportamentoFlags comportamentoAtual = 0;

            if (NomeDaClasseNoCabecalhoQuandoNaoInformadoOuVazio)
            {
                comportamentoAtual = ComportamentoFlags.NomeDaClasseNoCabecalhoNaoInformadoOuVazio;
            }

            if (SerializarPropriedadesSemAtributo)
            {
                comportamentoAtual = comportamentoAtual == 0
                    ? ComportamentoFlags.SerializarPropriedadesSemAtributo
                    : comportamentoAtual | ComportamentoFlags.SerializarPropriedadesSemAtributo;
            }

            if (NomeDaPropriedadeQuandoNomeCampoVazio)
            {
                comportamentoAtual = comportamentoAtual == 0
                    ? ComportamentoFlags.NomeDaPropriedadeQuandoNomeCampoVazio
                    : comportamentoAtual | ComportamentoFlags.NomeDaPropriedadeQuandoNomeCampoVazio;
            }

            if (NaoDispararExceptionPropriedadesObrigatoriasVazias)
            {
                comportamentoAtual = comportamentoAtual == 0
                    ? ComportamentoFlags.NaoDispararExceptionPropriedadesObrigatoriasVazias
                    : comportamentoAtual | ComportamentoFlags.NaoDispararExceptionPropriedadesObrigatoriasVazias;
            }

            if (NaoDispararExceptionPropriedadesMaioresPermitido)
            {
                comportamentoAtual = comportamentoAtual == 0
                    ? ComportamentoFlags.NaoDispararExceptionPropriedadesMaioresPermitido
                    : comportamentoAtual | ComportamentoFlags.NaoDispararExceptionPropriedadesMaioresPermitido;
            }

            if (NaoSerializarCamposNulosNaoObrigatorios)
            {
                comportamentoAtual = comportamentoAtual == 0
                    ? ComportamentoFlags.NaoSerializarCamposNulosNaoObrigatorios
                    : comportamentoAtual | ComportamentoFlags.NaoSerializarCamposNulosNaoObrigatorios;
            }

            if (NaoAdicionarCabecalhoRodapeQuandoVazio)
            {
                comportamentoAtual = comportamentoAtual == 0
                    ? ComportamentoFlags.NaoAdicionarCabecalhoRodapeQuandoVazio
                    : comportamentoAtual | ComportamentoFlags.NaoAdicionarCabecalhoRodapeQuandoVazio;
            }

            return(comportamentoAtual);
        }
        internal static void AtualizarComportamentoGeral(ComportamentoFlags configuracoes)
        {
            NomeDaClasseNoCabecalhoQuandoNaoInformadoOuVazio =
                configuracoes.HasFlag(ComportamentoFlags.NomeDaClasseNoCabecalhoNaoInformadoOuVazio);

            SerializarPropriedadesSemAtributo =
                configuracoes.HasFlag(ComportamentoFlags.SerializarPropriedadesSemAtributo);

            NomeDaPropriedadeQuandoNomeCampoVazio =
                configuracoes.HasFlag(ComportamentoFlags.NomeDaPropriedadeQuandoNomeCampoVazio);

            NaoDispararExceptionPropriedadesObrigatoriasVazias =
                configuracoes.HasFlag(ComportamentoFlags.NaoDispararExceptionPropriedadesObrigatoriasVazias);

            NaoDispararExceptionPropriedadesMaioresPermitido =
                configuracoes.HasFlag(ComportamentoFlags.NaoDispararExceptionPropriedadesMaioresPermitido);
        }
 public static void ConfigurarComportamento(ComportamentoFlags comportamentos) =>
 ComportamentoAtual.AtualizarComportamentoGeral(comportamentos);