Ejemplo n.º 1
0
        public async Task <string> LocarFilme([FromBody] DadosLocacao value)
        {
            var cliente = new tb_ClienteCF();
            var filme   = new tb_FilmeCF();
            var locacao = new tb_LocacaoCF();

            if (string.IsNullOrEmpty(value.cpfCliente) || !clienteHelper.IsCpf(value.cpfCliente) || clienteHelper.CPFshorter(value.cpfCliente).Length != 11)
            {
                return("O CPF está invalido ou incorreto");
            }
            else
            {
                cliente = clienteHelper.VerificaCliente(value.cpfCliente, value.nomeCliente, value.idCliente);
                if (cliente == null)
                {
                    return("Cliente não foi encontrado");
                }
            }
            var locacaoPendente = locacaoHelper.VerificaLocacaoPendente(value.idCliente);

            if (locacaoPendente != null)
            {
                return(locacaoPendente.Item1);
            }
            var result = filmeHelper.VerificaFilme(value.idCliente, value.nomeFilme);

            if (result.Item2 == null || !result.Item2.filmeAtivo)
            {
                return(result.Item1);
            }
            else
            {
                filme = result.Item2;
            }
            locacao.idCliente     = cliente.idCliente;
            locacao.idFilme       = filme.idFilme;
            locacao.locacaoAtiva  = true;
            locacao.dataLocacao   = DateTime.UtcNow;
            locacao.dataDevolucao = DateTime.UtcNow.AddDays(7);
            await locacaoHelper.SalvarLocacaoAsync(locacao);

            await filmeHelper.DesativarFilmeAsync(filme);

            return("A locação do filme " + filme.nomeFilme + " foi realizada em nome de " + cliente.nomeCliente + ", a data de devolução foi marcada para " + locacao.dataDevolucao.Value.ToShortDateString() + ", Essa data pode ser renovada se necessário, se não for devolvido até a data uma multa será cobrada!");
        }
Ejemplo n.º 2
0
 // Desativa a locação
 public async Task DesativarLocacaoAsync(tb_LocacaoCF value)
 {
     value.locacaoAtiva  = false;
     value.dataDevolucao = DateTime.UtcNow;
     await SalvarLocacaoAsync(value);
 }
Ejemplo n.º 3
0
 // Salva Locação
 public async Task SalvarLocacaoAsync(tb_LocacaoCF value)
 {
     DataModel.Entry(value).State = value.idLocacao == 0 ?
                                    System.Data.Entity.EntityState.Added : System.Data.Entity.EntityState.Modified;
     await DataModel.SaveChangesAsync();
 }