// PUT /tbContaCorrente/token/ public HttpResponseMessage Put(string token, [FromBody] tbContaCorrente param) { // Abre nova conexão using (painel_taxservices_dbContext _db = new painel_taxservices_dbContext()) { tbLogAcessoUsuario log = new tbLogAcessoUsuario(); try { log = Bibliotecas.LogAcaoUsuario.New(token, JsonConvert.SerializeObject(param), "Put", _db); HttpResponseMessage retorno = new HttpResponseMessage(); if (Permissoes.Autenticado(token, _db)) { GatewayTbContaCorrente.Update(token, param, _db); log.codResposta = (int)HttpStatusCode.OK; Bibliotecas.LogAcaoUsuario.Save(log, _db); return(Request.CreateResponse(HttpStatusCode.OK)); } else { log.codResposta = (int)HttpStatusCode.Unauthorized; Bibliotecas.LogAcaoUsuario.Save(log, _db); return(Request.CreateResponse(HttpStatusCode.Unauthorized)); } } catch (Exception e) { log.codResposta = (int)HttpStatusCode.InternalServerError; log.msgErro = e.Message; Bibliotecas.LogAcaoUsuario.Save(log);//, _db); throw new HttpResponseException(HttpStatusCode.InternalServerError); } } }
/// <summary> /// Apaga uma TbContaCorrente /// </summary> /// <param name="param"></param> /// <returns></returns> public static void Delete(string token, Int32 cdContaCorrente, painel_taxservices_dbContext _dbContext = null) { painel_taxservices_dbContext _db; if (_dbContext == null) { _db = new painel_taxservices_dbContext(); } else { _db = _dbContext; } //DbContextTransaction transaction = _db.Database.BeginTransaction(); try { tbContaCorrente conta = _db.tbContaCorrentes.Where(e => e.cdContaCorrente == cdContaCorrente).FirstOrDefault(); if (conta == null) { throw new Exception("Conta inexistente!"); } // Remove as vigências /*GatewayTbContaCorrenteTbLoginAdquirenteEmpresa.Delete(token, conta.cdContaCorrente); * // Remove os extratos e os arquivos associados * List<tbExtrato> extratos = _db.tbExtratos.Where(e => e.cdContaCorrente == conta.cdContaCorrente).ToList<tbExtrato>(); * foreach (var extrato in extratos) GatewayTbExtrato.Delete(token, extrato.idExtrato);*/ // Remove a conta _db.tbContaCorrentes.Remove(conta); _db.SaveChanges(); //transaction.Commit(); } catch (Exception e) { //transaction.Rollback(); if (e is DbEntityValidationException) { string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e); throw new Exception(erro.Equals("") ? "Falha ao apagar conta corrente" : erro); } throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message); } finally { if (_dbContext == null) { // Fecha conexão _db.Database.Connection.Close(); _db.Dispose(); } } }
/// <summary> /// Altera tbContaCorrente /// </summary> /// <param name="param"></param> /// <returns></returns> public static void Update(string token, tbContaCorrente param, painel_taxservices_dbContext _dbContext = null) { painel_taxservices_dbContext _db; if (_dbContext == null) { _db = new painel_taxservices_dbContext(); } else { _db = _dbContext; } try { // Avalia grupo Int32 IdGrupo = Permissoes.GetIdGrupo(token, _db); if (IdGrupo > 0) { param.cdGrupo = IdGrupo; int id_grupo = _db.empresas.Where(t => t.nu_cnpj.Equals(param.nrCnpj)).Select(t => t.id_grupo).FirstOrDefault(); if (id_grupo != IdGrupo) { //if (_db.empresas.Where(t => t.nu_cnpj.Equals(param.nrCnpj)).Select(t => t.id_grupo).FirstOrDefault() != IdGrupo) throw new Exception("Filial não pertence ao grupo que o usuário está associado!"); } } else { IdGrupo = _db.empresas.Where(t => t.nu_cnpj.Equals(param.nrCnpj)).Select(t => t.id_grupo).FirstOrDefault(); if (IdGrupo == 0) { throw new Exception("Filial inválida!"); } if (!Permissoes.usuarioPodeSeAssociarAoGrupo(token, IdGrupo, _db)) { throw new Exception("Unauthorized"); } param.cdGrupo = IdGrupo; } tbContaCorrente value = _db.tbContaCorrentes .Where(e => e.cdContaCorrente == param.cdContaCorrente) .First <tbContaCorrente>(); if (value == null) { throw new Exception("Conta inexistente!"); } if (param.nrCnpj != null && param.nrCnpj != value.nrCnpj) { value.nrCnpj = param.nrCnpj; } if (param.cdBanco != null && param.cdBanco != value.cdBanco) { value.cdBanco = param.cdBanco; } if (param.nrAgencia != null && param.nrAgencia != value.nrAgencia) { value.nrAgencia = param.nrAgencia; } if (param.nrConta != null && param.nrConta != value.nrConta) { value.nrConta = param.nrConta; } if (param.flAtivo != value.flAtivo) { value.flAtivo = param.flAtivo; } _db.SaveChanges(); //transaction.Commit(); } catch (Exception e) { //transaction.Rollback(); if (e is DbEntityValidationException) { string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e); throw new Exception(erro.Equals("") ? "Falha ao alterar conta corrente" : erro); } throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message); } finally { if (_dbContext == null) { // Fecha conexão _db.Database.Connection.Close(); _db.Dispose(); } } }
/// <summary> /// Adiciona nova TbContaCorrente /// </summary> /// <param name="param"></param> /// <returns></returns> public static Int32 Add(string token, tbContaCorrente param, painel_taxservices_dbContext _dbContext = null) { painel_taxservices_dbContext _db; if (_dbContext == null) { _db = new painel_taxservices_dbContext(); } else { _db = _dbContext; } try { // Avalia grupo Int32 IdGrupo = Permissoes.GetIdGrupo(token, _db); if (IdGrupo > 0) { param.cdGrupo = IdGrupo; int id_grupo = _db.empresas.Where(t => t.nu_cnpj.Equals(param.nrCnpj)).Select(t => t.id_grupo).FirstOrDefault(); if (id_grupo != IdGrupo) { throw new Exception("Filial não pertence ao grupo que o usuário está associado!"); } } else { IdGrupo = _db.empresas.Where(t => t.nu_cnpj.Equals(param.nrCnpj)).Select(t => t.id_grupo).FirstOrDefault(); if (IdGrupo == 0) { throw new Exception("Filial inválida!"); } if (!Permissoes.usuarioPodeSeAssociarAoGrupo(token, IdGrupo, _db)) { throw new Exception("Unauthorized"); } param.cdGrupo = IdGrupo; } //DbContextTransaction transaction = _db.Database.BeginTransaction(); var verify = _db.tbContaCorrentes .Where(e => e.cdGrupo == param.cdGrupo) .Where(e => e.nrCnpj.Equals(param.nrCnpj)) .Where(e => e.cdBanco.Equals(param.cdBanco)) .Where(e => e.nrAgencia.Equals(param.nrAgencia)) .Where(e => e.nrConta.Equals(param.nrConta)) .FirstOrDefault(); if (verify == null) { param.flAtivo = true; _db.tbContaCorrentes.Add(param); _db.SaveChanges(); //transaction.Commit(); return(param.cdContaCorrente); } throw new Exception("Conta já cadastrada!"); } catch (Exception e) { //transaction.Rollback(); if (e is DbEntityValidationException) { string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e); throw new Exception(erro.Equals("") ? "Falha ao salvar conta corrente" : erro); } throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message); } finally { if (_dbContext == null) { // Fecha conexão _db.Database.Connection.Close(); _db.Dispose(); } } }