示例#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()));
        }
示例#2
0
        public InspireDatasetViewModel NewInspireDatasetViewModel(string parentRegister, string register)
        {
            var model = new InspireDatasetViewModel
            {
                RegisterId = _registerService.GetRegisterId(parentRegister, register)
            };

            return(model);
        }
示例#3
0
 //[Route("inspire/{parentRegister}/{registerowner}/{registername}/{itemowner}/{itemname}/rediger")]
 //[Route("inspire/{registername}/{itemowner}/{itemname}/rediger")]
 public ActionResult Edit(InspireDatasetViewModel viewModel, List <System.Guid> inspireThemesId)
 {
     if (ModelState.IsValid)
     {
         var inspireDataset = _inspireDatasetService.UpdateInspireDataset(viewModel);
         return(Redirect(inspireDataset.DetailPageUrl()));
     }
     ViewBags(viewModel);
     return(View(viewModel));
 }
示例#4
0
 private void GetDeliveryStatuses(InspireDatasetViewModel inspireDatasetViewModel, InspireDataset inspireDataset)
 {
     inspireDatasetViewModel.MetadataStatusId           = _datasetDeliveryService.GetMetadataStatus(inspireDataset.Uuid, true, inspireDatasetViewModel.MetadataStatusId);
     inspireDatasetViewModel.MetadataServiceStatusId    = "good"; // skal alltid være ok.... inspireDatasetViewModel.InspireDeliveryMetadataStatus;
     inspireDatasetViewModel.DistributionStatusId       = _datasetDeliveryService.GetDeliveryDistributionStatus(inspireDataset.Uuid, inspireDataset.DistributionUrl, true, inspireDatasetViewModel.DistributionStatusId);
     inspireDatasetViewModel.WmsStatusId                = _datasetDeliveryService.GetDokDeliveryServiceStatus(inspireDataset.Uuid, true, inspireDatasetViewModel.WmsStatusId, inspireDataset.UuidService);
     inspireDatasetViewModel.WfsStatusId                = _datasetDeliveryService.GetWfsStatus(inspireDataset.Uuid, true, inspireDatasetViewModel.WfsStatusId);
     inspireDatasetViewModel.AtomFeedStatusId           = _datasetDeliveryService.GetAtomFeedStatus(inspireDataset.Uuid, true, inspireDatasetViewModel.AtomFeedStatusId);
     inspireDatasetViewModel.WfsOrAtomStatusId          = _datasetDeliveryService.GetDownloadRequirementsStatus(inspireDatasetViewModel.WfsStatusId, inspireDatasetViewModel.AtomFeedStatusId);
     inspireDatasetViewModel.HarmonizedDataStatusId     = _datasetDeliveryService.GetHarmonizedStatus(inspireDataset.Uuid, true, inspireDatasetViewModel.HarmonizedDataStatusId);
     inspireDatasetViewModel.SpatialDataServiceStatusId = _datasetDeliveryService.GetSpatialDataStatus(inspireDataset.Uuid, true, inspireDatasetViewModel.SpatialDataServiceStatusId);
 }
示例#5
0
        public InspireDataset NewInspireDataset(InspireDatasetViewModel inspireDatasetViewModel, string parentregister, string registername)
        {
            var inspireDataset = new InspireDataset();

            inspireDataset.SystemId      = Guid.NewGuid();
            inspireDataset.Name          = inspireDatasetViewModel.Name;
            inspireDataset.Seoname       = RegisterUrls.MakeSeoFriendlyString(inspireDataset.Name);
            inspireDataset.Description   = inspireDatasetViewModel.Description;
            inspireDataset.SubmitterId   = _registerService.GetOrganizationIdByUserName();
            inspireDataset.OwnerId       = inspireDatasetViewModel.OwnerId;
            inspireDataset.DateSubmitted = DateTime.Now;
            inspireDataset.Modified      = DateTime.Now;
            inspireDataset.RegisterId    = _registerService.GetRegisterId(parentregister, registername);
            inspireDataset.VersioningId  = _registerItemService.NewVersioningGroup(inspireDataset);
            inspireDataset.VersionNumber = 1;
            inspireDataset.StatusId      = "Submitted";

            inspireDataset.Uuid                    = inspireDatasetViewModel.Uuid;
            inspireDataset.Notes                   = inspireDatasetViewModel.Notes;
            inspireDataset.SpecificUsage           = inspireDatasetViewModel.SpecificUsage;
            inspireDataset.ProductSheetUrl         = inspireDatasetViewModel.ProductSheetUrl;
            inspireDataset.PresentationRulesUrl    = inspireDatasetViewModel.PresentationRulesUrl;
            inspireDataset.ProductSpecificationUrl = inspireDatasetViewModel.ProductSpecificationUrl;
            inspireDataset.MetadataUrl             = inspireDatasetViewModel.MetadataUrl;
            inspireDataset.DistributionFormat      = inspireDatasetViewModel.DistributionFormat;
            inspireDataset.DistributionUrl         = inspireDatasetViewModel.DistributionUrl;
            inspireDataset.DistributionArea        = inspireDatasetViewModel.DistributionArea;
            inspireDataset.WmsUrl                  = inspireDatasetViewModel.WmsUrl;
            inspireDataset.ThemeGroupId            = inspireDatasetViewModel.ThemeGroupId;
            inspireDataset.DatasetThumbnail        = inspireDatasetViewModel.DatasetThumbnail;
            inspireDataset.DokStatusId             = "Proposal";
            inspireDataset.UuidService             = inspireDatasetViewModel.UuidService;

            GetDeliveryStatuses(inspireDatasetViewModel, inspireDataset);

            inspireDataset.InspireThemes                       = inspireDatasetViewModel.InspireThemes;
            inspireDataset.InspireDeliveryMetadataId           = _datasetDeliveryService.CreateDatasetDelivery(inspireDatasetViewModel.MetadataStatusId, inspireDatasetViewModel.MetadataNote);
            inspireDataset.InspireDeliveryMetadataServiceId    = _datasetDeliveryService.CreateDatasetDelivery(inspireDatasetViewModel.MetadataServiceStatusId, inspireDatasetViewModel.MetadataServiceNote);
            inspireDataset.InspireDeliveryDistributionId       = _datasetDeliveryService.CreateDatasetDelivery(inspireDatasetViewModel.DistributionStatusId, inspireDatasetViewModel.DistributionNote);
            inspireDataset.InspireDeliveryWmsId                = _datasetDeliveryService.CreateDatasetDelivery(inspireDatasetViewModel.WmsStatusId, inspireDatasetViewModel.WmsNote);
            inspireDataset.InspireDeliveryWfsId                = _datasetDeliveryService.CreateDatasetDelivery(inspireDatasetViewModel.WfsStatusId, inspireDatasetViewModel.WfsNote);
            inspireDataset.InspireDeliveryAtomFeedId           = _datasetDeliveryService.CreateDatasetDelivery(inspireDatasetViewModel.AtomFeedStatusId, inspireDatasetViewModel.AtomFeedNote);
            inspireDataset.InspireDeliveryWfsOrAtomId          = _datasetDeliveryService.CreateDatasetDelivery(inspireDatasetViewModel.WfsOrAtomStatusId, inspireDatasetViewModel.WfsOrAtomNote);
            inspireDataset.InspireDeliveryHarmonizedDataId     = _datasetDeliveryService.CreateDatasetDelivery(inspireDatasetViewModel.HarmonizedDataStatusId, inspireDatasetViewModel.HarmonizedDataNote);
            inspireDataset.InspireDeliverySpatialDataServiceId = _datasetDeliveryService.CreateDatasetDelivery(inspireDatasetViewModel.SpatialDataServiceStatusId, inspireDatasetViewModel.SpatialDataServiceNote);
            _dbContext.InspireDatasets.Add(inspireDataset);
            _dbContext.SaveChanges();

            return(inspireDataset);
        }
示例#6
0
 private void ViewBags(InspireDatasetViewModel viewModel)
 {
     ViewBag.DokStatusId                = _registerItemService.GetDokStatusSelectList(viewModel.DokStatusId);
     ViewBag.SubmitterId                = _registerItemService.GetSubmitterSelectList(viewModel.SubmitterId);
     ViewBag.OwnerId                    = _registerItemService.GetOwnerSelectList(viewModel.OwnerId);
     ViewBag.MetadataStatusId           = _datasetDeliveryService.GetDokDeliveryStatusesAsSelectlist(viewModel.MetadataStatusId);
     ViewBag.MetadataServiceStatusId    = _datasetDeliveryService.GetDokDeliveryStatusesAsSelectlist(viewModel.MetadataServiceStatusId);
     ViewBag.DistributionStatusId       = _datasetDeliveryService.GetDokDeliveryStatusesAsSelectlist(viewModel.DistributionStatusId);
     ViewBag.WmsStatusId                = _datasetDeliveryService.GetDokDeliveryStatusesAsSelectlist(viewModel.WmsStatusId);
     ViewBag.WfsStatusId                = _datasetDeliveryService.GetDokDeliveryStatusesAsSelectlist(viewModel.WfsStatusId);
     ViewBag.AtomFeedStatusId           = _datasetDeliveryService.GetDokDeliveryStatusesAsSelectlist(viewModel.AtomFeedStatusId);
     ViewBag.WfsOrAtomStatusId          = _datasetDeliveryService.GetDokDeliveryStatusesAsSelectlist(viewModel.WfsOrAtomStatusId);
     ViewBag.HarmonizedDataStatusId     = _datasetDeliveryService.GetDokDeliveryStatusesAsSelectlist(viewModel.HarmonizedDataStatusId);
     ViewBag.SpatialDataServiceStatusId = _datasetDeliveryService.GetDokDeliveryStatusesAsSelectlist(viewModel.SpatialDataServiceStatusId);
 }
示例#7
0
        //[Route("inspire/{parentRegister}/{registerowner}/{registername}/{itemowner}/{itemname}/rediger")]
        //[Route("inspire/{registername}/{itemowner}/{itemname}/rediger")]
        public ActionResult Edit(string registername, string itemname)
        {
            var inspireDataset = _inspireDatasetService.GetInspireDatasetByName(registername, itemname);

            if (inspireDataset == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (_accessControlService.HasAccessTo(inspireDataset))
            {
                inspireDataset = _inspireDatasetService.UpdateInspireDatasetFromKartkatalogen(inspireDataset);
                var viewModel = new InspireDatasetViewModel(inspireDataset);
                ViewBags(viewModel);
                return(View(viewModel));
            }
            throw new HttpException(401, "Access Denied");
        }
        private RegisterItemV2ViewModel GetRegisterItemById(string parentregister, string registername, string systemId, string inspireRegistryType)
        {
            var register = _registerService.GetRegister(parentregister, registername);

            if (register.IsInspireStatusRegister())
            {
                RegisterItemV2ViewModel viewModel = null;
                if (string.IsNullOrWhiteSpace(inspireRegistryType) || inspireRegistryType == "dataset")
                {
                    var inspireDataset = _inspireDatasetService.GetInspireDatasetById(systemId);
                    if (inspireDataset != null)
                    {
                        viewModel = new InspireDatasetViewModel(inspireDataset);
                    }
                    else
                    {
                        viewModel = new InspireDataServiceViewModel(_inspireDatasetService.GetInspireDataServiceById(systemId));
                    }
                }
                else
                {
                    viewModel = new InspireDataServiceViewModel(_inspireDatasetService.GetInspireDataServiceById(systemId));
                }
                return(viewModel);
            }
            if (register.IsGeodatalovStatusRegister())
            {
                return(new GeodatalovDatasetViewModel(_geodatalovDatasetService.GetGeodatalovDatasetById(systemId)));
            }
            if (register.IsDokMunicipal())
            {
                return(new RegisterItemV2ViewModel(_registerItemService.GetRegisterItemBySystemId(Guid.Parse(systemId))));
            }

            if (register.ContainedItemClassIsDataset())
            {
                return(new DokDatasetViewModel(_registerItemService.GetDatasetById(Guid.Parse(systemId), register.systemId)));
            }
            if (register.ContainedItemClassIsDocument())
            {
                return(new DocumentViewModel((Document)_registerItemService.GetRegisterItemBySystemId(Guid.Parse(systemId))));
            }

            return(new RegisterItemV2ViewModel(_registerItemService.GetRegisterItemBySystemId(Guid.Parse(systemId))));
        }
示例#9
0
        public InspireDataset UpdateInspireDataset(InspireDatasetViewModel viewModel)
        {
            var inspireDataset = GetInspireDatasetBySystemId(viewModel.SystemId);

            inspireDataset.Name          = viewModel.Name;
            inspireDataset.Seoname       = RegisterUrls.MakeSeoFriendlyString(inspireDataset.Name);
            inspireDataset.Description   = viewModel.Description;
            inspireDataset.SubmitterId   = viewModel.SubmitterId;
            inspireDataset.OwnerId       = viewModel.OwnerId;
            inspireDataset.Modified      = DateTime.Now;
            inspireDataset.DateSubmitted = DateTime.Now;
            inspireDataset.RegisterId    = viewModel.RegisterId;

            inspireDataset.Uuid                    = viewModel.Uuid;
            inspireDataset.Notes                   = viewModel.Notes;
            inspireDataset.SpecificUsage           = viewModel.SpecificUsage;
            inspireDataset.ProductSheetUrl         = viewModel.ProductSheetUrl;
            inspireDataset.PresentationRulesUrl    = viewModel.PresentationRulesUrl;
            inspireDataset.ProductSpecificationUrl = viewModel.ProductSpecificationUrl;
            inspireDataset.MetadataUrl             = viewModel.MetadataUrl;
            inspireDataset.DistributionFormat      = viewModel.DistributionFormat;
            inspireDataset.DistributionUrl         = viewModel.DistributionUrl;
            inspireDataset.DistributionArea        = viewModel.DistributionArea;
            inspireDataset.WmsUrl                  = viewModel.WmsUrl;
            inspireDataset.ThemeGroupId            = viewModel.ThemeGroupId;
            inspireDataset.DatasetThumbnail        = viewModel.DatasetThumbnail;
            inspireDataset.DokStatusId             = viewModel.DokStatusId;
            inspireDataset.DokStatusDateAccepted   = viewModel.GetDateAccepted();
            inspireDataset.UuidService             = viewModel.UuidService;
            inspireDataset.Area                    = viewModel.Area;
            inspireDataset.RelevantArea            = viewModel.RelevantArea;

            if (inspireDataset.InspireDeliveryMetadata != null)
            {
                inspireDataset.InspireDeliveryMetadata.StatusId   = viewModel.MetadataStatusId;
                inspireDataset.InspireDeliveryMetadata.Note       = viewModel.MetadataNote;
                inspireDataset.InspireDeliveryMetadata.AutoUpdate = viewModel.MetadataAutoUpdate;
            }

            if (inspireDataset.InspireDeliveryMetadataService != null)
            {
                inspireDataset.InspireDeliveryMetadataService.StatusId   = viewModel.MetadataServiceStatusId;
                inspireDataset.InspireDeliveryMetadataService.Note       = viewModel.MetadataServiceNote;
                inspireDataset.InspireDeliveryMetadataService.AutoUpdate = viewModel.MetadataServiceAutoUpdate;
            }

            if (inspireDataset.InspireDeliveryDistribution != null)
            {
                inspireDataset.InspireDeliveryDistribution.StatusId   = viewModel.DistributionStatusId;
                inspireDataset.InspireDeliveryDistribution.Note       = viewModel.DistributionNote;
                inspireDataset.InspireDeliveryDistribution.AutoUpdate = viewModel.DistributionAutoUpdate;
            }

            if (inspireDataset.InspireDeliveryWms != null)
            {
                inspireDataset.InspireDeliveryWms.StatusId   = viewModel.WmsStatusId;
                inspireDataset.InspireDeliveryWms.Note       = viewModel.WmsNote;
                inspireDataset.InspireDeliveryWms.AutoUpdate = viewModel.WmsAutoUpdate;
            }

            if (inspireDataset.InspireDeliveryWfs != null)
            {
                inspireDataset.InspireDeliveryWfs.StatusId   = viewModel.WfsStatusId;
                inspireDataset.InspireDeliveryWfs.Note       = viewModel.WfsNote;
                inspireDataset.InspireDeliveryWfs.AutoUpdate = viewModel.WfsAutoUpdate;
            }

            if (inspireDataset.InspireDeliveryAtomFeed != null)
            {
                inspireDataset.InspireDeliveryAtomFeed.StatusId   = viewModel.AtomFeedStatusId;
                inspireDataset.InspireDeliveryAtomFeed.Note       = viewModel.AtomFeedNote;
                inspireDataset.InspireDeliveryAtomFeed.AutoUpdate = viewModel.AtomFeedAutoUpdate;
            }

            if (inspireDataset.InspireDeliveryWfsOrAtom != null)
            {
                inspireDataset.InspireDeliveryWfsOrAtom.StatusId   = viewModel.WfsOrAtomStatusId;
                inspireDataset.InspireDeliveryWfsOrAtom.Note       = viewModel.WfsOrAtomNote;
                inspireDataset.InspireDeliveryWfsOrAtom.AutoUpdate = viewModel.WfsOrAtomAutoUpdate;
            }

            if (inspireDataset.InspireDeliveryHarmonizedData != null)
            {
                inspireDataset.InspireDeliveryHarmonizedData.StatusId   = viewModel.HarmonizedDataStatusId;
                inspireDataset.InspireDeliveryHarmonizedData.Note       = viewModel.HarmonizedDataNote;
                inspireDataset.InspireDeliveryHarmonizedData.AutoUpdate = viewModel.HarmonizedDataAutoUpdate;
            }

            if (inspireDataset.InspireDeliverySpatialDataService != null)
            {
                inspireDataset.InspireDeliverySpatialDataService.StatusId   = viewModel.SpatialDataServiceStatusId;
                inspireDataset.InspireDeliverySpatialDataService.Note       = viewModel.SpatialDataServiceNote;
                inspireDataset.InspireDeliverySpatialDataService.AutoUpdate = viewModel.SpatialDataServiceAutoUpdate;
            }

            _dbContext.Entry(inspireDataset).State = EntityState.Modified;
            _dbContext.SaveChanges();

            return(inspireDataset);
        }