public string Post(Locacao locacao) { string mRetorno = String.Empty; try { ClienteRepository clienteRepository = new ClienteRepository(); FilmeRepository filmeRepository = new FilmeRepository(); // Verificando se o cliente existe if (clienteRepository.GetClienteById(locacao.IdCliente) != null) { Filme filme = filmeRepository.GetFilmeById(locacao.IdFilme); // Verificando se o filme existe e se está disponível para alugar if (filme != null && filme.Disponibilidade) { // Adicionando os valores da locação string query = @"INSERT INTO tb_Locacao (idCliente, idFilme, dtEntrega) VALUES (@idCliente, @idFilme, @dtEntrega);"; using (SqlConnection con = new SqlConnection(conexao.StringConexao)) { con.Open(); SqlCommand cmd = new SqlCommand(query, con); cmd.Parameters.AddWithValue("@idCliente", locacao.IdCliente); cmd.Parameters.AddWithValue("@idFilme", locacao.IdFilme); cmd.Parameters.AddWithValue("@dtEntrega", locacao.DtEntrega); cmd.ExecuteNonQuery(); } // Atualizando a disponibilidade do filme filme.Disponibilidade = false; filmeRepository.Put(filme); mRetorno = "Locação Realizada com sucesso!"; } else { mRetorno = "O Filme já está alugado."; } } } catch (Exception ex) { throw ex; } return(mRetorno); }
public string PutRealizarEntrega(int idLocacao) { string mRetorno = "Filme entregue com sucesso!"; try { string query = @"UPDATE tb_Locacao SET dtEntrega = @dtEntrega WHERE idLocacao = @idLocacao;"; // Buscando a locacao através do Id Locacao locacao = new Locacao(); locacao = GetLocacaoById(idLocacao); if (locacao != null) { // Verificando a data de entrega if (locacao.DtEntrega < DateTime.Now) { mRetorno = "Filme com atraso na entrega!"; } using (SqlConnection con = new SqlConnection(conexao.StringConexao)) { con.Open(); SqlCommand cmd = new SqlCommand(query, con); cmd.Parameters.AddWithValue("@idLocacao", idLocacao); cmd.Parameters.AddWithValue("@dtEntrega", DateTime.Now); cmd.ExecuteNonQuery(); } // Atualizando a disponibilidade do filme após a entrega FilmeRepository filmeRepository = new FilmeRepository(); filmeRepository.PutDisponibilidade(locacao.IdFilmeNavigation.IdFilme, true); } } catch (Exception ex) { throw ex; } return(mRetorno); }