示例#1
0
        //[Route("inspire/{registername}/ny")]
        //[Route("inspire/{parentregister}/{registerowner}/{registername}/ny")]
        public ActionResult Create(InspireDatasetViewModel viewModel, string parentregister, string registername, string metadataUuid)
        {
            viewModel.Register = _registerService.GetRegisterBySystemId(viewModel.RegisterId);
            if (!_accessControlService.HasAccessTo(viewModel.Register))
            {
                throw new HttpException(401, "Access Denied");
            }

            if (viewModel.SearchString != null)
            {
                viewModel.SearchResultList = _metadataService.SearchMetadataFromKartkatalogen(viewModel.SearchString);
                return(View(viewModel));
            }

            if (metadataUuid != null)
            {
                viewModel.Update(_metadataService.FetchInspireDatasetFromKartkatalogen(metadataUuid));
                if (viewModel.Name == null)
                {
                    ModelState.AddModelError("ErrorMessage", "Det har oppstått en feil ved henting av metadata...");
                }
            }
            if (!_registerItemService.ItemNameIsValid(viewModel))
            {
                ModelState.AddModelError("ErrorMessage", HtmlHelperExtensions.ErrorMessageValidationDataset());
                return(View(viewModel));
            }
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }
            var inspireDataset = _inspireDatasetService.NewInspireDataset(viewModel, parentregister, registername);

            return(Redirect(inspireDataset.Register.GetObjectUrl()));
        }