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