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!"); }
// Desativa a locação public async Task DesativarLocacaoAsync(tb_LocacaoCF value) { value.locacaoAtiva = false; value.dataDevolucao = DateTime.UtcNow; await SalvarLocacaoAsync(value); }
// 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(); }