コード例 #1
0
        public async Task <IActionResult> SalvarEmpresa([FromBody] EmpresaItem empresaToSave)
        {
            //AREA DE VALIDACAO
            string msgRule = "";

            if (!ruleValidaNomeEmpresa(empresaToSave.Nome_Empresa, ref msgRule))
            {
                return(BadRequest(msgRule));
            }

            if (!ruleValidaCodExternoEmpresa(empresaToSave.CodExterno_Empresa, ref msgRule))
            {
                return(BadRequest(msgRule));
            }

            //FIM AREA DE VALIDACAO

            if (_administrativoContext.Set <EmpresaItem>().Any(e => e.id_Empresa == empresaToSave.id_Empresa))
            {
                _administrativoContext.EmpresaItems.Update(empresaToSave);
            }
            else
            {
                _administrativoContext.EmpresaItems.Add(empresaToSave);
            }

            //Create Integration Event to be published through the Event Bus
            var empresaSaveEvent = new EmpresaSaveIE(
                empresaToSave.Nome_Empresa, empresaToSave.CodExterno_Empresa, empresaToSave.Endereco_Empresa,
                empresaToSave.Complemento_Empresa, empresaToSave.Numero_Empresa, empresaToSave.Bairro_Empresa,
                empresaToSave.Cidade_Empresa, empresaToSave.Estado_Empresa, empresaToSave.Cep_Empresa,
                empresaToSave.Fone_Empresa, empresaToSave.Contato_Empresa, empresaToSave.CGC_Empresa,
                empresaToSave.InscricaoMunicipal_Empresa, empresaToSave.InscricaoEstadual_Empresa, empresaToSave.CNES_Empresa);

            try
            {
                // Achieving atomicity between original Catalog database operation and the IntegrationEventLog thanks to a local transaction
                await _administrativoIntegrationEventService.SaveEventAndEmpresaContextChangesAsync(empresaSaveEvent, empresaToSave);
            }
            catch (Exception e)
            {
                //Validações das CONSTRAINTS do BANCO
                if (ruleValidaNomeEmpresaUnique(e.Message, ref msgRule))
                {
                    return(BadRequest(msgRule));
                }
                else
                {
                    return(BadRequest(e.Message));
                }
            }
            // Publish through the Event Bus and mark the saved event as published
            await _administrativoIntegrationEventService.PublishThroughEventBusAsync(empresaSaveEvent);


            return(CreatedAtAction(nameof(SalvarEmpresa), empresaToSave.id_Empresa));
        }
コード例 #2
0
        public async Task <IActionResult> SalvarTipoAcomodacao([FromBody] TipoAcomodacaoItem tipoAcomodacaoToSave)
        {
            //AREA DE VALIDACAO
            string msgRule = "";

            if (!ruleValidaNomeTipoAcomodacao(tipoAcomodacaoToSave.Nome_TipoAcomodacao, ref msgRule))
            {
                return(BadRequest(msgRule));
            }

            if (!ruleValidaCodExternoTipoAcomodacao(tipoAcomodacaoToSave.CodExterno_TipoAcomodacao, ref msgRule))
            {
                return(BadRequest(msgRule));
            }

            //FIM AREA DE VALIDACAO

            if (_administrativoContext.Set <TipoAcomodacaoItem>().Any(e => e.Id_Empresa == tipoAcomodacaoToSave.Id_Empresa && e.Id_TipoAcomodacao == tipoAcomodacaoToSave.Id_TipoAcomodacao))
            {
                _administrativoContext.TipoAcomodacaoItems.Update(tipoAcomodacaoToSave);
            }
            else
            {
                _administrativoContext.TipoAcomodacaoItems.Add(tipoAcomodacaoToSave);
            }

            //Create Integration Event to be published through the Event Bus
            var tipoAcomodacaoSaveEvent = new TipoAcomodacaoSaveIE(tipoAcomodacaoToSave.Id_Empresa, tipoAcomodacaoToSave.Id_TipoAcomodacao, tipoAcomodacaoToSave.Nome_TipoAcomodacao, tipoAcomodacaoToSave.CodExterno_TipoAcomodacao, tipoAcomodacaoToSave.Id_CaracteristicaAcomodacao);

            try
            {
                // Achieving atomicity between original Catalog database operation and the IntegrationEventLog thanks to a local transaction
                await _administrativoIntegrationEventService.SaveEventAndTipoAcomodacaoContextChangesAsync(tipoAcomodacaoSaveEvent);
            }
            catch (Exception e)
            {
                //Validações das CONSTRAINTS do BANCO
                if (ruleValidaNomeTipoAcomodacaoUnique(e.Message, ref msgRule))
                {
                    return(BadRequest(msgRule));
                }
                else
                {
                    return(BadRequest(e.Message));
                }
            }
            // Publish through the Event Bus and mark the saved event as published
            await _administrativoIntegrationEventService.PublishThroughEventBusAsync(tipoAcomodacaoSaveEvent);


            return(CreatedAtAction(nameof(SalvarTipoAcomodacao), null));
        }
コード例 #3
0
        public async Task <IActionResult> SalvarSetor([FromBody] SetorItem setorToSave)
        {
            //AREA DE VALIDACAO
            string msgRule = "";

            if (!ruleValidaNomeSetor(setorToSave.nome_Setor, ref msgRule))
            {
                return(BadRequest(msgRule));
            }

            if (!ruleValidaCodExternoSetor(setorToSave.CodExterno_Setor, ref msgRule))
            {
                return(BadRequest(msgRule));
            }

            //FIM AREA DE VALIDACAO

            if (_administrativoContext.Set <SetorItem>().Any(e => e.id_Empresa == setorToSave.id_Empresa && e.id_Setor == setorToSave.id_Setor))
            {
                _administrativoContext.SetorItems.Update(setorToSave);
            }
            else
            {
                _administrativoContext.SetorItems.Add(setorToSave);
            }

            //Create Integration Event to be published through the Event Bus
            var setorSaveEvent = new SetorSaveIE(setorToSave.id_Empresa, setorToSave.nome_Setor, setorToSave.CodExterno_Setor);

            try
            {
                // Achieving atomicity between original Catalog database operation and the IntegrationEventLog thanks to a local transaction
                await _administrativoIntegrationEventService.SaveEventAndSetorContextChangesAsync(setorSaveEvent, setorToSave);
            }
            catch (Exception e)
            {
                //Validações das CONSTRAINTS do BANCO
                if (ruleValidaNomeSetorUnique(e.Message, ref msgRule))
                {
                    return(BadRequest(msgRule));
                }
                else
                {
                    return(BadRequest(e.Message));
                }
            }
            // Publish through the Event Bus and mark the saved event as published
            await _administrativoIntegrationEventService.PublishThroughEventBusAsync(setorSaveEvent);


            return(CreatedAtAction(nameof(SalvarSetor), setorToSave.id_Setor));
        }
コード例 #4
0
        public async Task <IActionResult> SalvarAcessoEmpresaPerfilTSTA([FromBody] AcessoEmpresaPerfilTSTAItem acessoToSave)
        {
            //AREA DE VALIDACAO
            string msgRule = "";

            //FIM AREA DE VALIDACAO

            if (_administrativoContext.Set <AcessoEmpresaPerfilTSTAItem>().Any(e => e.Id_AcessoEmpresaPerfilTipoSituacaoTipoAtividade == acessoToSave.Id_AcessoEmpresaPerfilTipoSituacaoTipoAtividade))
            {
                _administrativoContext.AcessoEmpresaPerfilTSTAItems.Update(acessoToSave);
            }
            else
            {
                _administrativoContext.AcessoEmpresaPerfilTSTAItems.Add(acessoToSave);
            }

            //Create Integration Event to be published through the Event Bus
            var acessoSaveEvent = new AcessoEmpresaPerfilTSTASaveIE(acessoToSave.Id_AcessoEmpresaPerfilTipoSituacaoTipoAtividade,
                                                                    acessoToSave.Id_Perfil,
                                                                    acessoToSave.Id_Empresa,
                                                                    acessoToSave.Id_TipoSituacaoAcomodacao,
                                                                    acessoToSave.Id_TipoAtividadeAcomodacao,
                                                                    acessoToSave.Cod_Tipo);

            try
            {
                // Achieving atomicity between original Catalog database operation and the IntegrationEventLog thanks to a local transaction
                await _administrativoIntegrationEventService.SaveEventAndAcessoEmpresaPerfilTSTAContextChangesAsync(acessoSaveEvent, acessoToSave);
            }
            catch (Exception e)
            {
                //Validações das CONSTRAINTS do BANCO
                if (ruleValidaAcessoEmpresaPerfilTipoSituacaoTipoAtividadeUnique(e.Message, ref msgRule))
                {
                    return(BadRequest(msgRule));
                }
                else
                {
                    return(BadRequest(e.Message));
                }
            }
            // Publish through the Event Bus and mark the saved event as published
            await _administrativoIntegrationEventService.PublishThroughEventBusAsync(acessoSaveEvent);


            return(CreatedAtAction(nameof(SalvarAcessoEmpresaPerfilTSTA), acessoToSave.Id_AcessoEmpresaPerfilTipoSituacaoTipoAtividade));
        }