public ActionResult AssociarFuncionario(int?coletaId) { if (coletaId == null) { string mensagem = "Id da coleta não informado!"; return(RedirectToAction("Erro", "Home", new { Mensagem = mensagem })); } if (cooperativa == null) { string id = User.Identity.GetUserId(); cooperativa = db.Cooperativas.Find(id); } var funcionariosCoop = cooperativa.Funcionarios.ToList(); var funcionarios = new List <FuncionarioColetaViewModel>(); Coletas c = db.Coletas.Find(coletaId); foreach (var f in funcionariosCoop) { if (!c.Funcionarios.Contains(f)) { funcionarios.Add(new FuncionarioColetaViewModel() { funcionarioId = f.funcionarioId, nome = f.nome, selecionado = false }); } } AssociarFuncionarioViewModel model = new AssociarFuncionarioViewModel() { coletaId = coletaId.Value, funcionarios = funcionarios }; ViewBag.retorno = @Url.Action("DetalheColeta", "Cooperativas", new { id = coletaId, aba = 1 }); return(View(model)); }
public ActionResult AssociarFuncionario(AssociarFuncionarioViewModel model) { Coletas c = db.Coletas.Find(model.coletaId); bool achou = false; foreach (var mf in model.funcionarios) { if (mf.selecionado) { achou = true; Funcionarios f = db.Funcionarios.Find(mf.funcionarioId); c.Funcionarios.Add(f); } } if (achou) { db.SaveChanges(); return(RedirectToAction("DetalheColeta", "Cooperativas", new { id = model.coletaId, aba = 1 })); } ViewBag.aviso = "Selecione pelo menos um funcionário!"; return(View(model)); }