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