public MareanoDatasetViewModel NewMareanoDatasetViewModel(string parentregister, string registername)
        {
            var model = new MareanoDatasetViewModel()
            {
                RegisterId = _registerService.GetRegisterId(parentregister, registername)
            };

            return(model);
        }
        public MareanoDataset NewMareanoDataset(MareanoDatasetViewModel MareanoViewModel, string parentregister, string registername)
        {
            var MareanoDataset = new MareanoDataset();

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

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

            GetDeliveryStatuses(MareanoViewModel, MareanoDataset);

            MareanoDataset.MetadataStatusId             = _datasetDeliveryService.CreateDatasetDelivery(MareanoViewModel.MetadataStatusId, MareanoViewModel.MetadataNote);
            MareanoDataset.ProductSpesificationStatusId = _datasetDeliveryService.CreateDatasetDelivery(MareanoViewModel.WmsStatusId, MareanoViewModel.WmsNote);
            MareanoDataset.SosiDataStatusId             = _datasetDeliveryService.CreateDatasetDelivery(MareanoViewModel.WmsStatusId, MareanoViewModel.WmsNote);
            MareanoDataset.GmlDataStatusId  = _datasetDeliveryService.CreateDatasetDelivery(MareanoViewModel.WmsStatusId, MareanoViewModel.WmsNote);
            MareanoDataset.WmsStatusId      = _datasetDeliveryService.CreateDatasetDelivery(MareanoViewModel.WmsStatusId, MareanoViewModel.WmsNote);
            MareanoDataset.WfsStatusId      = _datasetDeliveryService.CreateDatasetDelivery(MareanoViewModel.WfsStatusId, MareanoViewModel.WfsNote);
            MareanoDataset.AtomFeedStatusId = _datasetDeliveryService.CreateDatasetDelivery(MareanoViewModel.AtomFeedStatusId, MareanoViewModel.AtomFeedNote);
            MareanoDataset.CommonStatusId   = _datasetDeliveryService.CreateDatasetDelivery(MareanoViewModel.WmsStatusId, MareanoViewModel.WmsNote);
            MareanoDataset.Grade            = GetGrade(MareanoDataset);
            _dbContext.MareanoDatasets.Add(MareanoDataset);
            _dbContext.SaveChanges();

            return(MareanoDataset);
        }
 private void GetDeliveryStatuses(MareanoDatasetViewModel MareanoDatasetViewModel, MareanoDataset MareanoDataset)
 {
     MareanoDatasetViewModel.MetadataStatusId             = _datasetDeliveryService.GetMetadataStatus(MareanoDataset.Uuid, true, MareanoDatasetViewModel.MetadataStatusId);
     MareanoDatasetViewModel.ProductSpesificationStatusId = _registerService.GetDOKStatus(MareanoDataset.ProductSpecificationUrl, true, MareanoDatasetViewModel.ProductSpesificationStatusId);
     MareanoDatasetViewModel.ProductSheetStatusId         = _registerService.GetDOKStatus(MareanoDataset.ProductSheetUrl, true, MareanoDatasetViewModel.ProductSpesificationStatusId);
     MareanoDatasetViewModel.PresentationRulesStatusId    = _registerService.GetDOKStatus(MareanoDataset.PresentationRulesUrl, true, MareanoDatasetViewModel.PresentationRulesStatusId);
     MareanoDatasetViewModel.SosiDataStatusId             = _registerService.GetSosiRequirements(MareanoDataset.Uuid, MareanoDatasetViewModel.ProductSpecificationUrl, true, MareanoDatasetViewModel.SosiDataStatusId);
     MareanoDatasetViewModel.GmlDataStatusId  = _registerService.GetGmlRequirements(MareanoDataset.Uuid, true, MareanoDatasetViewModel.GmlDataStatusId);
     MareanoDatasetViewModel.WmsStatusId      = _datasetDeliveryService.GetDokDeliveryServiceStatus(MareanoDataset.Uuid, true, MareanoDatasetViewModel.WmsStatusId, MareanoDataset.UuidService);
     MareanoDatasetViewModel.WfsStatusId      = _datasetDeliveryService.GetWfsStatus(MareanoDataset.Uuid, true, MareanoDatasetViewModel.WfsStatusId);
     MareanoDatasetViewModel.AtomFeedStatusId = _datasetDeliveryService.GetAtomFeedStatus(MareanoDataset.Uuid, true, MareanoDatasetViewModel.AtomFeedStatusId);
     MareanoDatasetViewModel.CommonStatusId   = _datasetDeliveryService.GetDownloadRequirementsStatus(MareanoDatasetViewModel.WfsStatusId, MareanoDatasetViewModel.AtomFeedStatusId);
     if (MareanoDataset.Grade.HasValue)
     {
         MareanoDatasetViewModel.Grade = MareanoDataset.Grade.Value;
     }
 }
        public MareanoDataset UpdateMareanoDataset(MareanoDatasetViewModel viewModel)
        {
            var MareanoDataset = GetMareanoDatasetBySystemId(viewModel.SystemId);

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

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

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

            if (MareanoDataset.ProductSpesificationStatus != null)
            {
                MareanoDataset.ProductSpesificationStatus.StatusId   = viewModel.ProductSpesificationStatusId;
                MareanoDataset.ProductSpesificationStatus.Note       = viewModel.ProduktspesifikasjonNote;
                MareanoDataset.ProductSpesificationStatus.AutoUpdate = viewModel.ProduktspesifikasjonAutoUpdate;
            }

            if (MareanoDataset.SosiDataStatus != null)
            {
                MareanoDataset.SosiDataStatus.StatusId   = viewModel.SosiDataStatusId;
                MareanoDataset.SosiDataStatus.Note       = viewModel.SosiDataNote;
                MareanoDataset.SosiDataStatus.AutoUpdate = viewModel.SosiDataAutoUpdate;
            }

            if (MareanoDataset.GmlDataStatus != null)
            {
                MareanoDataset.GmlDataStatus.StatusId   = viewModel.GmlDataStatusId;
                MareanoDataset.GmlDataStatus.Note       = viewModel.GmlDataNote;
                MareanoDataset.GmlDataStatus.AutoUpdate = viewModel.GmlDataAutoUpdate;
            }

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

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

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

            if (MareanoDataset.CommonStatus != null)
            {
                MareanoDataset.CommonStatus.StatusId   = viewModel.CommonStatusId;
                MareanoDataset.CommonStatus.Note       = viewModel.CommonNote;
                MareanoDataset.CommonStatus.AutoUpdate = viewModel.CommonAutoUpdate;
            }

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

            return(MareanoDataset);
        }