Exemple #1
0
        public async Task <IActionResult> Create([Bind("AluguerId,Valor,MesId,Ano")] Aluguer aluguer)
        {
            if (ModelState.IsValid)
            {
                // verificar se o aluguer já nao está registado
                if (!_aluguerRepositorio.AluguerJaExiste(aluguer.MesId, aluguer.Ano))
                { // se nao nenhum erro, regista o novo aluguer
                    await _aluguerRepositorio.Inserir(aluguer);

                    IEnumerable <Utilizador> utilizadores = await _utilizadorRepositorio.ObterTodos();

                    Pagamento        pagamento;
                    List <Pagamento> pagamentos = new List <Pagamento>();

                    // percorrer a lista de utilizadores para obter o ID de cada um e ir adicionando ao pagamento
                    foreach (Utilizador u in utilizadores)
                    {
                        pagamento = new Pagamento
                        {
                            AluguerId     = aluguer.AluguerId,
                            UtilizadorId  = u.Id,
                            DataPagamento = null, // null porque o pagamento nao foi efetuado
                            Status        = StatusPagamento.Pendente
                        };

                        pagamentos.Add(pagamento); // add pagamento á lista de pagamentos
                    }

                    await _pagamentoRepositorio.Inserir(pagamentos); // save na BD

                    TempData["NovoRegisto"] = $"O aluguer de valor {aluguer.Valor} € do mês {aluguer.MesId} ano {aluguer.Ano} adicionado";
                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    ModelState.AddModelError("", "Aluguer já existe");
                    ViewData["MesId"] = new SelectList(await _mesRepositorio.ObterTodos(), "MesId", "Nome", aluguer.MesId);
                    return(View(aluguer));
                }
            }
            ViewData["MesId"] = new SelectList(await _mesRepositorio.ObterTodos(), "MesId", "Nome", aluguer.MesId);
            return(View(aluguer));
        }
Exemple #2
0
        public async Task <IActionResult> Create([Bind("AluguelId,Valor,MesId,Ano")] Aluguel aluguel)
        {
            if (ModelState.IsValid)
            {
                if (!AluguelRepositorio.AluguelJaExiste(aluguel.MesId, aluguel.Ano))
                {
                    await AluguelRepositorio.Inserir(aluguel);

                    var usuarios = await UsuariosRepositorio.PegarTodos();

                    Pagamento pagamento;
                    var       pagamentos = new List <Pagamento>();

                    foreach (var u in usuarios)
                    {
                        pagamento = new Pagamento
                        {
                            AluguelId     = aluguel.AluguelId,
                            UsuarioId     = u.Id,
                            DataPagamento = null,
                            Status        = StatusPagamento.Pendente
                        };

                        pagamentos.Add(pagamento);
                    }

                    await PagamentoRepositorio.Inserir(pagamentos);

                    TempData["NovoRegistro"] = $"Aluguel no valor de {aluguel.Valor} do mês {aluguel.MesId} do ano {aluguel.Ano} adicionado";
                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    ModelState.AddModelError("", "Aluguel já existe");
                    ViewData["MesId"] = new SelectList(await MesRepositorio.PegarTodos(), "MesId", "Nome");
                    return(View(aluguel));
                }
            }

            ViewData["MesId"] = new SelectList(await MesRepositorio.PegarTodos(), "MesId", "Nome");
            return(View(aluguel));
        }