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)); }
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)); }