//[Route("dataset/{parentRegister}/{registerowner}/{registername}/{municipality}/ny")]
        //[Route("dataset/{registername}/{municipality}/ny")]
        public ActionResult CreateMunicipalDataset(string municipality)
        {
            if (municipality != null)
            {
                CreateDokMunicipalViewModel model = new CreateDokMunicipalViewModel();
                model.Register         = _registerService.GetDokMunicipalRegister();
                model.MunicipalityCode = municipality;
                model.DatasetOwner     = _registerItemService.GetMunicipalityOrganizationByNr(municipality);

                if (_accessControlService.AccessEditOrCreateDOKMunicipalBySelectedMunicipality(model.MunicipalityCode))
                {
                    return(View(model));
                }
                else
                {
                    throw new HttpException(401, "Access Denied");
                }
            }
            return(HttpNotFound("Finner ikke kommunenr."));
        }
        //[Route("dataset/{parentRegister}/{registerowner}/{registername}/{municipality}/ny")]
        //[Route("dataset/{registername}/{municipality}/ny")]
        public ActionResult CreateMunicipalDataset(CreateDokMunicipalViewModel model, string searchString, bool save = false)
        {
            model.Register = _registerService.GetDokMunicipalRegister();
            if (_accessControlService.AccessEditOrCreateDOKMunicipalBySelectedMunicipality(model.MunicipalityCode))
            {
                ViewBag.SearchString = searchString;
                model.DatasetOwner   = _registerItemService.GetMunicipalityOrganizationByNr(model.MunicipalityCode);

                if (model.SelectedList != null)
                {
                    List <MetadataItemViewModel> items = new List <MetadataItemViewModel>();
                    foreach (var metaItem in model.SelectedList)
                    {
                        items.Add(metaItem);
                    }

                    foreach (var item in items)
                    {
                        if (!item.Selected)
                        {
                            model.SelectedList.Remove(item);
                        }
                    }
                }

                if (model.SearchResult != null)
                {
                    foreach (var item in model.SearchResult)
                    {
                        if (item.Selected)
                        {
                            if (model.SelectedList == null)
                            {
                                model.SelectedList = new List <MetadataItemViewModel>();
                            }
                            if (model.SelectedList.All(metaItem => metaItem.Uuid != item.Uuid))
                            {
                                model.SelectedList.Add(item);
                            }
                        }
                    }
                    model.SearchResult = null;
                }
                if (!string.IsNullOrEmpty(searchString) && !save)
                {
                    SearchResultsType result = SearchMetadataFromKartkatalogen(searchString);
                    model.SearchResult = ParseSearchResult(result);
                    return(View(model));
                }
                if (save)
                {
                    foreach (var item in model.SelectedList)
                    {
                        Dataset dataset = new Dataset();
                        dataset                = GetMetadataFromKartkatalogen(dataset, item.Uuid);
                        dataset.register       = model.Register;
                        dataset.datasetowner   = model.DatasetOwner;
                        dataset.datasetownerId = model.DatasetOwner.systemId;
                        dataset                = _datasetService.UpdateDataset(dataset);
                        _registerItemService.SaveNewRegisterItem(dataset);
                    }
                    return(Redirect(model.Register.GetObjectUrl() + "?municipality=" + model.MunicipalityCode));
                }
                return(View(model));
            }
            else
            {
                throw new HttpException(401, "Access Denied");
            }
        }