public IHttpActionResult CadastrarLocacao(LocacaoModel model)
        {
            var novaLocacao = new Locacao(model.Cliente, model.Pacote, model.Produto, model.DataEntrega, model.Adicional);

            repositorio.NovaLocacao(novaLocacao);
            return(Ok(new { mensagem = "Cadastrado com Sucesso" }));
        }
Exemple #2
0
        public async Task <ActionResult <IEnumerable <Filmes> > > GetNuncaAlugado()
        {
            var modelFilme   = new FilmesModel();
            var modelLocacao = new LocacaoModel();

            List <Filmes>  listaFilme             = modelFilme.Read();
            List <Locacao> listaLocacao           = modelLocacao.Read();
            var            listaNuncaAlugados     = new List <Filmes>();
            var            listaIdsFilmesAlugados = new List <int>();

            foreach (var locacao in listaLocacao)
            {
                if (!listaIdsFilmesAlugados.Contains(locacao.IdFilme))
                {
                    listaIdsFilmesAlugados.Add(locacao.IdFilme);
                }
            }
            foreach (var filme in listaFilme)
            {
                if (!listaIdsFilmesAlugados.Contains(filme.Id) && !listaNuncaAlugados.Contains(filme))
                {
                    listaNuncaAlugados.Add(filme);
                }
            }
            return(listaNuncaAlugados);
        }
Exemple #3
0
        public ActionResult SalvaLocacao(string ClienteId, string[] FilmesId)
        {
            var resultado = "OK";
            var mensagens = new List <string>();
            var idSalvo   = string.Empty;

            var locacao = new LocacaoModel();
            var cliente = db.Clientes.Find(Convert.ToInt32(ClienteId));

            locacao.Cpf_Cliente = cliente.NumDocumento;
            locacao.Id_Cliente  = cliente.Id;
            locacao.Devolvido   = false;
            foreach (var FI in FilmesId)
            {
                FilmesModel Fil = db.Filmes.Find(Convert.ToInt32(FI));
                locacao.Filmes.Add(Fil);
            }
            locacao.DtLocacao = DateTime.Now;
            db.Locacao.Add(locacao);
            db.SaveChanges();
            idSalvo = locacao.Id.ToString();


            return(Json(new { Resultado = resultado, Mensagens = mensagens, IdSalvo = idSalvo }));
        }
        public HttpResponseMessage ObterValorLocacao(LocacaoModel model)
        {
            var locacao = repositorio.Criar(model.IdCliente, model.IdVeiculo,
                                            model.IdPacote, model.DataEntregaPrevista, model.IdLocacaoOpcional);

            return(ResponderOK(locacao.ValorLocacao));
        }
Exemple #5
0
 public async Task <ActionResult <List <Locacao> > > GetLocacao()
 {
     using (var model = new LocacaoModel())
     {
         List <Locacao> lista = model.Read();
         return(lista);
     }
 }
Exemple #6
0
        public ActionResult DevolverLocacao(int id)
        {
            LocacaoModel Loc = db.Locacao.Find(id);

            Loc.Devolvido = true;
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #7
0
        public async Task <ActionResult <Locacao> > DeleteLocacao(int id)
        {
            var locacao = new Locacao();

            locacao.Id = id;
            using (var model = new LocacaoModel())
            {
                model.Delete(locacao);
                return(NoContent());
            }
        }
Exemple #8
0
        public async Task <ActionResult <IEnumerable <FilmeAlugado> > > GetTop5NoAno()
        {
            var modelFilme   = new FilmesModel();
            var modelLocacao = new LocacaoModel();

            List <Filmes>  listaFilme             = modelFilme.Read();
            List <Locacao> listaLocacao           = modelLocacao.Read();
            var            lista5MaisAlugados     = new List <FilmeAlugado>();
            var            listaIdsFilmesAlugados = new List <int>();

            foreach (var locacao in listaLocacao)
            {
                if ((DateTime.Now - locacao.DataLocacao).Days <= 365)
                {
                    listaIdsFilmesAlugados.Add(locacao.IdFilme);
                }
            }
            foreach (var filme in listaFilme)
            {
                if (listaIdsFilmesAlugados.Contains(filme.Id) && lista5MaisAlugados.Count <= 5)
                {
                    var filmeAlugado = new FilmeAlugado();
                    filmeAlugado.Filme = filme;
                    filmeAlugado.QuantidadeDeAlugueis = 0;
                    lista5MaisAlugados.Add(filmeAlugado);
                }
            }

            foreach (var filme in listaFilme)
            {
                if (listaIdsFilmesAlugados.Contains(filme.Id))
                {
                    foreach (var idFilmeAlugado in listaIdsFilmesAlugados)
                    {
                        if (idFilmeAlugado == filme.Id)
                        {
                            foreach (var filmeAlugado in lista5MaisAlugados)
                            {
                                if (filmeAlugado.Filme.Id == filme.Id)
                                {
                                    filmeAlugado.QuantidadeDeAlugueis++;
                                }
                            }
                        }
                    }
                }
            }
            var listTop5Ano = lista5MaisAlugados.OrderByDescending(filme => filme.QuantidadeDeAlugueis).Take(5);

            return(listTop5Ano.ToList());
        }
        public HttpResponseMessage Post([FromBody] LocacaoModel model)
        {
            var locacao = repositorio.Criar(model.IdCliente, model.IdVeiculo,
                                            model.IdPacote, model.DataEntregaPrevista, model.IdLocacaoOpcional);

            if (!locacao.Validar())
            {
                return(ResponderErro(locacao.Mensagens));
            }

            repositorio.Cadastrar(locacao);

            return(ResponderOK(locacao));
        }
Exemple #10
0
 public async Task <ActionResult <Locacao> > GetLocacao(int id)
 {
     using (var model = new LocacaoModel())
     {
         List <Locacao> lista = model.Read();
         foreach (var locacao in lista)
         {
             if (locacao.Id == id)
             {
                 return(locacao);
             }
         }
         return(null);
     }
 }
Exemple #11
0
        public IHttpActionResult IncluirLocacao(LocacaoModel locacaoModel)
        {
            var cliente = locacaoModel.Cliente;
            var produto = locacaoModel.Produto;
            var pacote  = locacaoModel.Pacote;

            var locacao = new Locacao(produto, pacote, cliente);

            repositorioLocacao.CadastrarLocacao(locacao);

            repositorioProduto.DiminuirEstoque(produto.IdProduto);
            // repositorioOpcionais.DiminuirEstoque(locacaoModel.Opcionais);

            return(Ok(locacao));
        }
Exemple #12
0
        public async Task <ActionResult <ClienteAluga> > GetSecondBestClient()
        {
            var modelCliente = new ClientesModel();
            var modelLocacao = new LocacaoModel();

            List <Cliente> listaCliente            = modelCliente.Read();
            List <Locacao> listaLocacao            = modelLocacao.Read();
            var            lista5MaisAluga         = new List <ClienteAluga>();
            var            listaIdsClienteAlugaram = new List <int>();

            foreach (var locacao in listaLocacao)
            {
                listaIdsClienteAlugaram.Add(locacao.IdCliente);
            }
            foreach (var cliente in listaCliente)
            {
                if (listaIdsClienteAlugaram.Contains(cliente.Id))
                {
                    var clienteAluga = new ClienteAluga();
                    clienteAluga.Cliente = cliente;
                    clienteAluga.QuantidadeDeAlugueis = 0;
                    lista5MaisAluga.Add(clienteAluga);
                }
            }

            foreach (var cliente in listaCliente)
            {
                if (listaIdsClienteAlugaram.Contains(cliente.Id))
                {
                    foreach (var idFilmeAlugado in listaIdsClienteAlugaram)
                    {
                        if (idFilmeAlugado == cliente.Id)
                        {
                            foreach (var filmeAlugado in lista5MaisAluga)
                            {
                                if (filmeAlugado.Cliente.Id == cliente.Id)
                                {
                                    filmeAlugado.QuantidadeDeAlugueis++;
                                }
                            }
                        }
                    }
                }
            }
            var secondBestClient = lista5MaisAluga.OrderByDescending(cliente => cliente.QuantidadeDeAlugueis).Take(2);

            return(secondBestClient.Last());
        }
Exemple #13
0
        public async Task <ActionResult <Locacao> > PostLocacao(Locacao locacoes)
        {
            var locacao = new Locacao();

            locacao.IdFilme     = locacoes.IdFilme;
            locacao.IdCliente   = locacoes.IdCliente;
            locacao.DataLocacao = locacoes.DataLocacao;
            var filme = new FilmesController().GetFilmes(locacao.IdFilme);

            locacao.DataDevolucao = filme.Lancamento == true?locacoes.DataLocacao.AddDays(2) : locacoes.DataLocacao.AddDays(3);

            using (var model = new LocacaoModel())
            {
                model.Create(locacao);
                return(NoContent());
            }
        }
Exemple #14
0
        // POST: api/locacao
        public IHttpActionResult Post([FromBody] LocacaoModel value)
        {
            try

            {
                if (value == null)
                {
                    throw new Exception("Json invalido.");
                }
                Locacao l = value.ToEntity();
                _appService.Adicionar(l);
                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Exemple #15
0
        public async Task <IActionResult> PutLocacao(int id, Locacao locacoes)
        {
            if (id != locacoes.Id)
            {
                return(BadRequest());
            }

            var locacao = new Locacao();

            locacao.Id            = id;
            locacao.IdFilme       = locacoes.IdFilme;
            locacao.IdCliente     = locacoes.IdCliente;
            locacao.DataLocacao   = locacoes.DataLocacao;
            locacao.DataDevolucao = locacoes.DataDevolucao;
            using (var model = new LocacaoModel())
            {
                model.Update(locacao);
                return(NoContent());
            }
        }
Exemple #16
0
        public async Task <ActionResult <IEnumerable <Cliente> > > GetClientesAtraso()
        {
            var modelCliente = new ClientesModel();
            var modelLocacao = new LocacaoModel();

            List <Cliente> listaCliente     = modelCliente.Read();
            List <Locacao> listaLocacao     = modelLocacao.Read();
            var            listaDeAtrasados = new List <Cliente>();

            foreach (var locacao in listaLocacao)
            {
                if (locacao.DataDevolucao <= DateTime.Now)
                {
                    foreach (var cliente in listaCliente)
                    {
                        if (cliente.Id == locacao.IdCliente && !listaDeAtrasados.Contains(cliente))
                        {
                            listaDeAtrasados.Add(cliente);
                        }
                    }
                }
            }
            return(listaDeAtrasados);
        }