public ActionResult PrzypiszPrzedmioty(int id) { ViewBag.Current = "Grupy"; // Aktualne zaznaczenie zakladki Profil w Menu var grupa = _repo.GetGroupByID(id); if (grupa != null) { var przedmiotyPrzypisane = grupa.Przedmioty.ToList(); var wszystkiePrzedmioty = _repo2.GetAllPrzedmioty.ToList(); var mozliweDoWyboru = wszystkiePrzedmioty.Except(przedmiotyPrzypisane).ToList(); PrzedmiotyGrupyViewModel model = new PrzedmiotyGrupyViewModel { AvailablePrzedmioty = mozliweDoWyboru, RequestedPrzedmioty = przedmiotyPrzypisane }; model.SavedRequested = string.Join(",", model.RequestedPrzedmioty.Select(p => p.id_przedmiotu.ToString()).ToArray()); return(View(model)); } else { TempData["message"] = "Taka grupa nie istnieje!"; TempData["status"] = "invalid"; return(View()); } }
void RemoveProducts(PrzedmiotyGrupyViewModel model) { if (model.RequestedSelected != null) { model.RequestedPrzedmioty.RemoveAll(p => model.RequestedSelected.Contains(p.id_przedmiotu)); model.RequestedSelected = null; } }
void AddProducts(PrzedmiotyGrupyViewModel model) { if (model.AvailableSelected != null) { var prods = _repo2.GetAllPrzedmioty.Where(p => model.AvailableSelected.Contains(p.id_przedmiotu)); model.RequestedPrzedmioty.AddRange(prods); model.AvailableSelected = null; } }
void RestoreSavedState(PrzedmiotyGrupyViewModel model) { model.RequestedPrzedmioty = new List <Przedmioty>(); //get the previously stored items if (!string.IsNullOrEmpty(model.SavedRequested)) { int[] prodids = model.SavedRequested.Split(',').Select(s => int.Parse(s)).ToArray(); var prods = _repo2.GetAllPrzedmioty.Where(p => prodids.Contains(p.id_przedmiotu)); model.RequestedPrzedmioty.AddRange(prods); } }
void SaveState(PrzedmiotyGrupyViewModel model) { //create comma delimited list of product ids model.SavedRequested = string.Join(",", model.RequestedPrzedmioty.Select(p => p.id_przedmiotu.ToString()).ToArray()); //Available products = All - Requested var wszystkiePrzedmioty = _repo2.GetAllPrzedmioty.ToList(); var zaznaczonePrzedmioty = model.RequestedPrzedmioty.ToList(); var bezZaznaczonego = wszystkiePrzedmioty.Except(zaznaczonePrzedmioty).ToList(); //var przedmioty = .Except(.AsQueryable()).ToList(); model.AvailablePrzedmioty = bezZaznaczonego; }
public ActionResult PrzypiszPrzedmioty(PrzedmiotyGrupyViewModel model, string add, string remove, string send, int id) { ViewBag.Current = "Grupy"; // Aktualne zaznaczenie zakladki Profil w Menu //Need to clear model state or it will interfere with the updated model ModelState.Clear(); RestoreSavedState(model); if (!string.IsNullOrEmpty(add)) { AddProducts(model); } else if (!string.IsNullOrEmpty(remove)) { RemoveProducts(model); } else if (!string.IsNullOrEmpty(send)) { if (ModelState.IsValid) { var grupa = _repo.GetGroupByID(id); grupa.Przedmioty.Clear(); foreach (Przedmioty przedmiot in model.RequestedPrzedmioty) { grupa.Przedmioty.Add(przedmiot); } _repo.EditGroup(grupa); _repo.Save(); _logger.Info("GrupyController.Edit => SUCCES = Edit PRZYPISZPRZEMDIOTY| HTTP POST"); TempData["message"] = "Zauktalizowano grupę!"; TempData["status"] = "valid"; return(RedirectToAction("List")); } //todo: implement SendListToSanta method... } SaveState(model); return(View(model)); }