public IActionResult Edit(int?id) { if (id == null) { return(NotFound()); } var userSector = _userSectorRepository.Find((int)id); if (userSector == null) { return(NotFound()); } List <Sector> selectedSectors = new List <Sector>(); string[] selectionIds = userSector.SelectedSectors.Split(','); foreach (var selectionId in selectionIds) { selectedSectors.Add(_sectorRepository.Find(Int32.Parse(selectionId))); } var sectors = _sectorRepository.GetAll(); var vm = new UserSectorEditViewModel { UserName = userSector.UserName, ID = userSector.UserSectorId, SectorSelectList = _sectorRepository.GetCompleteList(sectors), SelectionList = new SelectList(selectedSectors, nameof(Sector.Id), nameof(Sector.Name)) }; return(View(vm)); }
public async Task <IActionResult> Edit(int id, UserSectorEditViewModel vm) { if (ModelState.IsValid) { var oldVersion = _userSectorRepository.Find(vm.ID); if (vm.NewSelection.Any()) { StringBuilder builder = new StringBuilder(); string last = vm.NewSelection.Last(); foreach (var selection in vm.NewSelection) { if (!(selection.Equals(last, StringComparison.Ordinal))) { builder.Append(selection); builder.Append(","); } else { builder.Append(selection); } } oldVersion.SelectedSectors = builder.ToString(); } oldVersion.UserName = vm.UserName; _userSectorRepository.Update(oldVersion); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(vm)); }