// PUT /tbContaCorrente_tbLoginAdquirenteEmpresa/token/ public HttpResponseMessage Put(string token, [FromBody] tbContaCorrente_tbLoginAdquirenteEmpresa 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)) { GatewayTbContaCorrenteTbLoginAdquirenteEmpresa.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); throw new HttpResponseException(HttpStatusCode.InternalServerError); } } }
/// <summary> /// Altera tbContaCorrente_tbLoginAdquirenteEmpresa /// </summary> /// <param name="param"></param> /// <returns></returns> public static void Update(string token, tbContaCorrente_tbLoginAdquirenteEmpresa param, 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_tbLoginAdquirenteEmpresa value = _db.tbContaCorrente_tbLoginAdquirenteEmpresas .Where(e => e.cdContaCorrente == param.cdContaCorrente) .Where(e => e.cdLoginAdquirenteEmpresa == param.cdLoginAdquirenteEmpresa) .Where(e => e.dtInicio.Equals(param.dtInicio)) .FirstOrDefault(); if (value == null) { throw new Exception("Vigência inválida!"); } if (conflitoPeriodoVigencia(param) != null) { throw new Exception("Conflito de período de vigência"); } // Só altera a data fim => SEMPRE TEM QUE SER ENVIADO A DATA FIM, POIS ESTÁ PODE SER SETADA PARA NULL if (!param.dtFim.Equals(value.dtFim)) { value.dtFim = param.dtFim; _db.SaveChanges(); } } catch (Exception e) { if (e is DbEntityValidationException) { string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e); throw new Exception(erro.Equals("") ? "Falha ao alterar adquirente empresa" : 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_tbLoginAdquirenteEmpresa /// </summary> /// <param name="param"></param> /// <returns></returns> public static Int32 Add(string token, tbContaCorrente_tbLoginAdquirenteEmpresa param, 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_tbLoginAdquirenteEmpresa value = _db.tbContaCorrente_tbLoginAdquirenteEmpresas .Where(e => e.cdContaCorrente == param.cdContaCorrente) .Where(e => e.cdLoginAdquirenteEmpresa == param.cdLoginAdquirenteEmpresa) .Where(e => e.dtInicio.Equals(param.dtInicio)) .FirstOrDefault(); if (value != null) { throw new Exception("Vigência já existe!"); } if (conflitoPeriodoVigencia(param) != null) { throw new Exception("Conflito de período de vigência"); } _db.tbContaCorrente_tbLoginAdquirenteEmpresas.Add(param); _db.SaveChanges(); transaction.Commit(); return(param.cdContaCorrente); } catch (Exception e) { transaction.Rollback(); if (e is DbEntityValidationException) { string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e); throw new Exception(erro.Equals("") ? "Falha ao salvar adquirente empresa" : 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> /// Apaga uma TbContaCorrente_tbLoginAdquirenteEmpresa /// </summary> /// <param name="param"></param> /// <returns></returns> public static void Delete(string token, Int32 cdContaCorrente, Int32 cdLoginAdquirenteEmpresa, DateTime dtInicio, 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_tbLoginAdquirenteEmpresa value = _db.tbContaCorrente_tbLoginAdquirenteEmpresas .Where(e => e.cdContaCorrente == cdContaCorrente) .Where(e => e.cdLoginAdquirenteEmpresa == cdLoginAdquirenteEmpresa) .Where(e => e.dtInicio.Equals(dtInicio)) .FirstOrDefault(); if (value == null) { throw new Exception("Vigência inválida!"); } _db.tbContaCorrente_tbLoginAdquirenteEmpresas.Remove(value); _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 adquirente empresa" : 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(); } } }
/** * Procura por conflitos de período de vigência a partir do parâmetro * Retorna null se não houve conflito. Caso contrário, retorna o registro ao qual o período conflita */ private static tbContaCorrente_tbLoginAdquirenteEmpresa conflitoPeriodoVigencia(tbContaCorrente_tbLoginAdquirenteEmpresa param, painel_taxservices_dbContext _dbContext = null) { painel_taxservices_dbContext _db; if (_dbContext == null) { _db = new painel_taxservices_dbContext(); } else { _db = _dbContext; } try { // Avalia se, para o mesmo cdContaCorrente e cdLoginAdquirenteEmpresa // o período informado já consta List <tbContaCorrente_tbLoginAdquirenteEmpresa> values = _db.tbContaCorrente_tbLoginAdquirenteEmpresas .Where(e => e.cdContaCorrente == param.cdContaCorrente) .Where(e => e.cdLoginAdquirenteEmpresa == param.cdLoginAdquirenteEmpresa) .ToList <tbContaCorrente_tbLoginAdquirenteEmpresa>(); foreach (var value in values) { // Não avalia o período se o parâmetro for mesmo elemento "value" corrente if (value.cdContaCorrente == param.cdContaCorrente && value.cdLoginAdquirenteEmpresa == param.cdLoginAdquirenteEmpresa && value.dtInicio.Equals(param.dtInicio)) { continue; } if (value.dtFim != null) { // Não é o vigente de dtFim nulo if (param.dtFim == null) { // Data início do parâmetro deve ser superior a dtFim do encontrado na base if (param.dtInicio.Year < Convert.ToDateTime(value.dtFim).Year || (param.dtInicio.Year == Convert.ToDateTime(value.dtFim).Year&& param.dtInicio.Month < Convert.ToDateTime(value.dtFim).Month) || (param.dtInicio.Year == Convert.ToDateTime(value.dtFim).Year&& param.dtInicio.Month == Convert.ToDateTime(value.dtFim).Month&& param.dtInicio.Day <= Convert.ToDateTime(value.dtFim).Day)) { return(value); } } else { // Avalia intervalos por completo => compara desconsiderando os horários DateTime paramInicio = new DateTime(param.dtInicio.Year, param.dtInicio.Month, param.dtInicio.Day); DateTime paramFim = new DateTime(Convert.ToDateTime(param.dtInicio).Year, Convert.ToDateTime(param.dtFim).Month, Convert.ToDateTime(param.dtFim).Day); DateTime valueInicio = new DateTime(value.dtInicio.Year, value.dtInicio.Month, value.dtInicio.Day); DateTime valueFim = new DateTime(Convert.ToDateTime(value.dtInicio).Year, Convert.ToDateTime(value.dtFim).Month, Convert.ToDateTime(value.dtFim).Day); // Início de um não pode estar dentro do intervalo do outro if (paramInicio.Ticks >= valueInicio.Ticks && paramInicio.Ticks <= valueFim.Ticks) { return(value); } if (valueInicio.Ticks >= paramInicio.Ticks && valueInicio.Ticks <= paramFim.Ticks) { return(value); } // Fim de um não pode estar dentro do intervalo do outro if (paramFim.Ticks >= valueInicio.Ticks && paramFim.Ticks <= valueFim.Ticks) { return(value); } if (valueFim.Ticks >= paramInicio.Ticks && valueFim.Ticks <= paramFim.Ticks) { return(value); } } } else { // Já existe um vigente com dtFim nulo => período de dtInicio até oo if (param.dtFim == null) { return(value); // Só pode existir um com dtFim nulo } // Data início do parâmetro deve ser inferior a do encontrado na base if (param.dtInicio.Year > value.dtInicio.Year || (param.dtInicio.Year == value.dtInicio.Year && param.dtInicio.Month > value.dtInicio.Month) || (param.dtInicio.Year == value.dtInicio.Year && param.dtInicio.Month == value.dtInicio.Month && param.dtInicio.Day >= value.dtInicio.Day) || // Data fim do parâmetro deve ser inferior a dtInício do encontrado na base Convert.ToDateTime(param.dtFim).Year > value.dtInicio.Year || (Convert.ToDateTime(param.dtFim).Year == value.dtInicio.Year && Convert.ToDateTime(param.dtFim).Month > value.dtInicio.Month) || (Convert.ToDateTime(param.dtFim).Year == value.dtInicio.Year && Convert.ToDateTime(param.dtFim).Month == value.dtInicio.Month && Convert.ToDateTime(param.dtFim).Day >= value.dtInicio.Day)) { return(value); } } } // Não teve conflito de período de vigência return(null); } catch (Exception e) { if (e is DbEntityValidationException) { string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e); throw new Exception(erro.Equals("") ? "Falha ao verificar conflito em adquirente empresa" : 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(); } } }