public void Standalone()
        {
            var json = @"
{
    ""compute"": {
        ""location"": ""eastus"",
        ""name"": ""n111"",
        ""resourceGroupName"": ""RG1"",
        ""subscriptionId"": ""FE9CE53F-277C-48BB-950D-265EBA922B9D"",
        ""zone"": """"
    },
    ""network"": {}
}
";
            var im   = InstanceMetadata.Parse(json);

            Assert.Equal("eastus", im.Compute.Location);
            Assert.Equal("n111", im.Compute.Name);
            Assert.Equal("RG1", im.Compute.ResourceGroupName);
            Assert.Equal("FE9CE53F-277C-48BB-950D-265EBA922B9D", im.Compute.SubscriptionId);

            Assert.Equal(
                "/subscriptions/fe9ce53f-277c-48bb-950d-265eba922b9d/resourcegroups/rg1"
                + "/providers/Microsoft.Compute/virtualMachines/n111",
                im.GetResourceId().Id);
        }
Example #2
0
        private void DeleteMediaLocations(InstanceMetadata objectMetaRaw)
        {
            if (null != objectMetaRaw)
            {
                var mediaLocations = objectMetaRaw.MediaLocations;


                foreach (var dicomMediaLocation in mediaLocations)
                {
                    foreach (var locationParts in dicomMediaLocation.Locations)
                    {
                        IStorageLocation location;
                        IMediaId         mediaId;


                        mediaId  = MediaFactory.Create(locationParts.Parts);
                        location = StorageService.GetLocation(mediaId);

                        if (location.Exists( ))
                        {
                            location.Delete( );
                        }
                    }
                }
            }
        }
Example #3
0
 private static IEnumerable <DicomMediaLocations> GetDistinctMedia(InstanceMetadata objectMetaRaw)
 {
     //http://stackoverflow.com/questions/489258/linqs-distinct-on-a-particular-property
     return(objectMetaRaw.MediaLocations
            .GroupBy(n => new
     {
         n.TransferSyntax,
         n.MediaType
     })
            .Select(m => m.First( )));
 }
Example #4
0
        public DCloudCommandResult StoreDicom
        (
            fo.DicomDataset dataset,
            InstanceMetadata metadata
        )
        {
            IStoreCommand    storeCommand = CommandFactory.CreateStoreCommand( );
            StoreCommandData storeData    = new StoreCommandData( )
            {
                Dataset = dataset, Metadata = metadata
            };

            return(storeCommand.Execute(storeData));
        }
        public virtual IDbCommand CreateInsertCommand
        (
            IEnumerable <IDicomDataParameter> conditions,
            InstanceMetadata data = null
        )
        {
            IDbCommand insertCommand = CreateCommand( );

            BuildInsert(conditions, data, insertCommand);

            SetConnectionIfNull(insertCommand);

            return(insertCommand);
        }
        protected virtual void BuildInsert
        (
            IEnumerable <IDicomDataParameter> conditions,
            InstanceMetadata data,
            IDbCommand insertCommand
        )
        {
            if (null == conditions)
            {
                throw new ArgumentNullException( );
            }

            var stroageBuilder = CreateStorageBuilder( );

            FillParameters(conditions, data, insertCommand, stroageBuilder);

            insertCommand.CommandText = stroageBuilder.GetInsertText( );
        }
        protected virtual void FillParameters
        (
            IEnumerable <IDicomDataParameter> dicomParameters,
            InstanceMetadata data,
            IDbCommand insertCommad,
            ObjectArchieveStorageBuilder stroageBuilder
        )
        {
            foreach (var dicomParam in dicomParameters)
            {
                if (dicomParam.VR == fo.DicomVR.PN)
                {
                    List <PersonNameData> pnValues;


                    pnValues = dicomParam.GetPNValues( );

                    foreach (var values in pnValues)
                    {
                        string[]      stringValues = values.ToArray( );
                        int           index        = -1;
                        List <string> pnConditions = new List <string> ( );

                        foreach (var column in SchemaProvider.GetColumnInfo(dicomParam.KeyTag))
                        {
                            column.Values = new string [] { stringValues[++index] };

                            stroageBuilder.ProcessColumn(column, insertCommad, CreateParameter);
                        }
                    }

                    continue;
                }


                foreach (var column in SchemaProvider.GetColumnInfo(dicomParam.KeyTag))
                {
                    column.Values = GetValues(dicomParam);

                    stroageBuilder.ProcessColumn(column, insertCommad, CreateParameter);
                }
            }
        }
Example #8
0
 public McLauncher(PackMetadata packMetadata, InstanceMetadata instanceMetadata, bool isVrEnabled = false)
 {
     this.packMetadata     = packMetadata;
     this.instanceMetadata = instanceMetadata;
     this.isVrEnabled      = isVrEnabled;
 }
Example #9
0
 public StoreCommandData( )
 {
     Metadata = new InstanceMetadata( );
 }
 public DicomStoreSuccessMessage(InstanceMetadata instanceMetadata)
 {
     InstanceMetadata = instanceMetadata;
 }
        public IDataAdapterCommand <int> CreateUpdateMetadataCommand(IObjectId objectId, InstanceMetadata data)
        {
            IDbCommand insertCommand = CreateCommand( );
            var        instance      = objectId;


            insertCommand = CreateCommand( );

            insertCommand.CommandText = string.Format(@"
UPDATE {0} SET {2}=@{2}, {3}=@{3} WHERE {1}=@{1}

IF @@ROWCOUNT = 0
   INSERT INTO {0} ({2}, {3}) VALUES (@{2}, @{3})
",
                                                      StorageDbSchemaProvider.MetadataTable.TableName,
                                                      StorageDbSchemaProvider.MetadataTable.SopInstanceColumn,
                                                      StorageDbSchemaProvider.MetadataTable.MetadataColumn,
                                                      StorageDbSchemaProvider.MetadataTable.OwnerColumn);

            var sopParam   = CreateParameter("@" + StorageDbSchemaProvider.MetadataTable.SopInstanceColumn, instance.SOPInstanceUID);
            var metaParam  = CreateParameter("@" + StorageDbSchemaProvider.MetadataTable.MetadataColumn, data.ToJson( ));
            var ownerParam = CreateParameter("@" + StorageDbSchemaProvider.MetadataTable.OwnerColumn, data.Owner);

            insertCommand.Parameters.Add(sopParam);
            insertCommand.Parameters.Add(metaParam);
            insertCommand.Parameters.Add(ownerParam);

            SetConnectionIfNull(insertCommand);

            return(new ExecuteNonQueryCommand(insertCommand));
        }
        private async Task CheckCurrentInstanceAsync()
        {
            try
            {
                var instanceMetadata     = InstanceMetadataReader.ReadInstanceMetadata(PackBuilder.ProfilePath);
                var useCanaryVersion     = this.chkUseCanaryVersion.Checked;
                var currentRemoteVersion = useCanaryVersion
                                                                                           ? this.packMetadata.CanaryVersion ?? this.packMetadata.CurrentVersion
                                                                                           : this.packMetadata.CurrentVersion;

                // Beeg long list of checks to see if this pack needs to be completely converted or not
                if (instanceMetadata == null ||
                    instanceMetadata.Version == "0.0.0" ||
                    !SemVersion.TryParse(instanceMetadata.Version, out var instanceSemVersion) ||
                    !SemVersion.TryParse(currentRemoteVersion, out var serverSemVersion) ||
                    instanceMetadata.CurrentLaunchVersion == null ||
                    instanceMetadata.CurrentMinecraftVersion != this.packMetadata.IntendedMinecraftVersion ||
                    instanceMetadata.CurrentForgeVersion != this.packMetadata.RequiredForgeVersion ||
                    instanceMetadata.BuiltFromServerPack != this.packMetadata.ServerPack)
                {
                    // Never converted
                    this.currentPackState = PackMode.NeedsInstallation;
                }
                else
                {
                    var outOfDate = instanceSemVersion < serverSemVersion;

                    // Check server pack MD5 if necessary
                    if (this.packMetadata.VerifyServerPackMd5)
                    {
                        using var web = new WebClient();
                        var basePackMd5Url = $"{this.packMetadata.ServerPack}.md5";
                        var basePackMd5    = await web.DownloadStringTaskAsync(basePackMd5Url);

                        outOfDate |= basePackMd5 != instanceMetadata.BuiltFromServerPackMd5;
                    }

                    if (outOfDate)
                    {
                        // Out of date
                        this.currentPackState = PackMode.NeedsUpdate;
                    }
                    else
                    {
                        // Up-to-date
                        this.currentPackState = PackMode.ReadyToPlay;

                        UpdateVrUi();
                    }
                }

                this.instanceMetadata = instanceMetadata;
                UpdateLayoutFromState();
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    this,
                    $"An error occurred while checking if the instance was up-to-date:\n\n{ex}",
                    "Unexpected Error",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error
                    );
            }
        }