/// <summary>
        /// Inserir um novo registro
        /// </summary>
        private bool inserir(ConfiguracaoAssociadoCampoTipoAssociado OConfiguracaoTipoAssociado)
        {
            OConfiguracaoTipoAssociado.setDefaultInsertValues();

            db.ConfiguracaoAssociadoCampoTipoAssociado.Add(OConfiguracaoTipoAssociado);

            db.SaveChanges();

            return(OConfiguracaoTipoAssociado.id > 0);
        }
        /// <summary>
        /// Salvar um novo registro o atualizar
        /// </summary>
        public bool salvar(ConfiguracaoAssociadoCampoTipoAssociado OConfiguracaoTipoAssociado)
        {
            CacheService.getInstance.remover(chaveCache);

            if (OConfiguracaoTipoAssociado.id == 0)
            {
                return(this.inserir(OConfiguracaoTipoAssociado));
            }

            return(this.atualizar(OConfiguracaoTipoAssociado));
        }
        public bool clonarConfiguracaoCampos(int idOrganizacaoInf, int idTipoAssociadoOrigem, List <int> listIdTipoAssociadoDestino)
        {
            var idUsuarioLogado = User.id();

            if (idOrganizacao > 0)
            {
                idOrganizacaoInf = idOrganizacao;
            }

            if (idOrganizacaoInf == 0)
            {
                return(false);
            }

            List <ConfiguracaoAssociadoCampoTipoAssociado> listaNovasConfiguracoes = new List <ConfiguracaoAssociadoCampoTipoAssociado>();

            var listIdsCampos = OConfiguracaoAssociadoCampoTipoAssociadoBL.listar(idOrganizacaoInf).Where(x => x.idTipoAssociado == idTipoAssociadoOrigem).Select(x => x.idConfiguracaoAssociadoCampo).ToList();

            var idsConfiguracaoCampoTipoAssociadoExcluir = OConfiguracaoAssociadoCampoTipoAssociadoBL.listar(idOrganizacaoInf).Where(x => listIdTipoAssociadoDestino.Contains(x.idTipoAssociado)).Select(x => x.id).ToList();

            if (idsConfiguracaoCampoTipoAssociadoExcluir.Any())
            {
                OConfiguracaoAssociadoCampoTipoAssociadoBL.excluir(idsConfiguracaoCampoTipoAssociadoExcluir);
            }

            foreach (var idTipoAssociadoDestino in listIdTipoAssociadoDestino)
            {
                foreach (var idConfiguracaoCampo in listIdsCampos)
                {
                    var ONovaConfiguracao = new ConfiguracaoAssociadoCampoTipoAssociado();

                    ONovaConfiguracao.idConfiguracaoAssociadoCampo = idConfiguracaoCampo;
                    ONovaConfiguracao.idTipoAssociado   = idTipoAssociadoDestino;
                    ONovaConfiguracao.idUsuarioCadastro = idUsuarioLogado;

                    listaNovasConfiguracoes.Add(ONovaConfiguracao);
                }
            }

            return(OConfiguracaoAssociadoCampoTipoAssociadoBL.salvarEmLote(listaNovasConfiguracoes));
        }
        /// <summary>
        /// Atualizar os dados de um registro existente
        /// </summary>
        private bool atualizar(ConfiguracaoAssociadoCampoTipoAssociado OConfiguracaoTipoAssociado)
        {
            ConfiguracaoAssociadoCampoTipoAssociado dbRegistro = this.carregar(OConfiguracaoTipoAssociado.id);

            if (dbRegistro == null)
            {
                return(false);
            }

            var TipoEntry = db.Entry(dbRegistro);

            OConfiguracaoTipoAssociado.setDefaultUpdateValues();

            TipoEntry.CurrentValues.SetValues(OConfiguracaoTipoAssociado);

            TipoEntry.State = EntityState.Modified;

            TipoEntry.ignoreFields();

            db.SaveChanges();

            return(OConfiguracaoTipoAssociado.id > 0);
        }