public bool ClientePossuiAluguelGratuito(int clienteId) { try { ControlePromocional ultimoControlePromocional = _controlePromocionalBusiness.Last(); IEnumerable <Aluguel> ultimosDezAlugueis = _aluguelRepository.Get(p => p.ClienteId == clienteId && p.Cadastro > ultimoControlePromocional.Inicio && p.Cadastro < ultimoControlePromocional.Fim) .OrderByDescending(p => p.Cadastro) .Take(10); bool atrasoMaiorQueDoisDias = _aluguelRepository.Get(p => p.ClienteId == clienteId && p.Cadastro > ultimoControlePromocional.Inicio && p.Cadastro < ultimoControlePromocional.Fim && (p.Devolveu > p.Devolucao.AddDays(2) || (p.Devolveu == null && DateTime.Now > p.Devolucao.AddDays(2)))) .Any(); return(ultimosDezAlugueis.Count() == 10 && !ultimosDezAlugueis.Any(p => (p.ValorPago == 0)) && !atrasoMaiorQueDoisDias); } catch (Exception ex) { throw ex; } }
public void Add(ControlePromocional controlePromocional) { try { _videolocadoraContext.ControlePromocional.Add(controlePromocional); _videolocadoraContext.SaveChanges(); } catch (Exception ex) { throw ex; } }
private ControlePromocional Add() { try { ControlePromocional controle = ControlePromocionalUtils.GetControlePromocional(_configuration); _controlePromocionalRepository.Add(controle); return(controle); } catch (Exception ex) { throw ex; } }
public ControlePromocional Last() { try { ControlePromocional ultimoControlePromocional = _controlePromocionalRepository.Last(); if (ultimoControlePromocional == null || DateTime.Now > ultimoControlePromocional.Fim) { ultimoControlePromocional = this.Add(); } return(ultimoControlePromocional); } catch (Exception ex) { throw ex; } }