Ejemplo n.º 1
0
        public async Task <String> Devolver(Locacao locacao)
        {
            var mensagem = "Devolucao realizada com sucesso";

            if (locacao.Id == Guid.Empty)
            {
                throw new Exception("Locação Invalida");
            }

            var devolucao = await _locacaoRepository.ObterPorId(locacao.Id);

            if (devolucao == null)
            {
                throw new Exception("Locacao nao encontrada");
            }

            if (devolucao.Devolucao != DateTime.MinValue)
            {
                throw new Exception("Devolucao ja realizada");
            }

            var filme = await _filmeRepository.ObterPorId(devolucao.FilmeId);

            var dataDevolucao       = DateTime.Today;
            var dataMaximaDevolucao = devolucao.Inicio.AddDays(QTDE_DIAS_DEVOLUCAO);

            if (dataDevolucao > dataMaximaDevolucao)
            {
                mensagem = "Devolucao com atraso";
            }

            devolucao.Devolucao = DateTime.Now;
            await _locacaoRepository.Atualizar(devolucao);

            filme.QuantidadeDisponivel++;
            await _filmeRepository.Atualizar(filme);


            return(mensagem);
        }
Ejemplo n.º 2
0
 public override Locacao Atualizar(Locacao locacao)
 {
     return(_repository.Atualizar(locacao));
 }
Ejemplo n.º 3
0
 public void Atualizar(Business.Models.Locacao locacao)
 {
     locacaoRepository.Atualizar(locacao).Wait();
 }