public IActionResult SeleccionBares(int?id) { if (id == null) { return(NotFound()); } var dependiente = _context.Set <Dependiente>().Find(id); var turno = new DependienteBar() { DependienteId = id.Value, Dependiente = dependiente }; //CODIGO MIO ++++++++ foreach (var item in _context.Set <Bar>().ToList()) { if (_context.Set <DependienteBar>().Any(c => c.BarId == item.Id && c.DependienteId == turno.DependienteId)) { turno.CheckedTurnos.Add(new CheckedTurno() { Checked = true, BarId = item.Id, Bar = item }); } else { turno.CheckedTurnos.Add(new CheckedTurno() { Checked = false, BarId = item.Id, Bar = item }); } } //CODIGO MIO ------- return(View(turno)); }
public IActionResult SeleccionBares(int id, [Bind("Id,DependienteId,CheckedTurnos")] DependienteBar turno) { if (id != turno.Id) { return(NotFound()); } if (ModelState.IsValid) { if (_context.Set <DependienteBar>().Any(x => x.BarId == turno.BarId)) { ViewData["BarId"] = new SelectList(_context.Bares, "Id", "Nombre", turno.BarId); ViewData["DependienteId"] = new SelectList(_context.Dependientes, "Id", "Nombre", turno.DependienteId); TempData["error"] = "El Bar ya estaba asignado al Dependiente"; return(View(turno)); } try { foreach (var item in turno.CheckedTurnos) { if (item.Checked == true) { if (_context.Set <DependienteBar>().Any(c => c.BarId == item.BarId && c.DependienteId == turno.DependienteId)) { //No hacer nada!!! } else { _context.Add(new DependienteBar() { DependienteId = turno.DependienteId, BarId = _context.Bares.Where(c => c.Id == item.BarId).Select(c => c.Id).Single() }); } } else { if (_context.Set <DependienteBar>().Any(c => c.BarId == item.BarId && c.DependienteId == turno.DependienteId)) { _context.Remove(_context.Set <DependienteBar>().Where(c => c.BarId == item.BarId && c.DependienteId == turno.DependienteId).Single()); } } } _context.SaveChanges(); TempData["exito"] = "La acción se ha realizado correctamente"; return(RedirectToAction(nameof(Index))); } catch (DbUpdateConcurrencyException) { if (!DependienteBarExists(turno.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["BarId"] = new SelectList(_context.Bares, "Id", "Nombre", turno.BarId); TempData["error"] = "Error en ralizar esta acción"; return(View(turno)); }