protected override void PrepareData()
 {
     Well = new Well
     {
         Uuid     = DevKit.Uid(),
         Citation = DevKit.Citation("Well"),
         GeographicLocationWGS84 = DevKit.Location(),
         SchemaVersion           = "2.0",
         TimeZone = DevKit.TimeZone
     };
     Wellbore = new Wellbore
     {
         Uuid          = DevKit.Uid(),
         Citation      = DevKit.Citation("Wellbore"),
         Well          = DevKit.DataObjectReference(Well),
         SchemaVersion = "2.0"
     };
     WellboreGeometry = new WellboreGeometry
     {
         Uuid          = DevKit.Uid(),
         Citation      = DevKit.Citation("WellboreGeometry"),
         Wellbore      = DevKit.DataObjectReference(Wellbore),
         SchemaVersion = EtpUris.GetUriFamily(typeof(WellboreGeometry)).Version,
     };
 }
        public async Task WellboreGeometry200_PutObject_Can_Add_WellboreGeometry()
        {
            AddParents();
            await RequestSessionAndAssert();

            var handler = _client.Handler <IStoreCustomer>();
            var uri     = WellboreGeometry.GetUri();

            var dataObject = CreateDataObject(uri, WellboreGeometry);

            // Get Object Expecting it Not to Exist
            await GetAndAssert(handler, uri, Energistics.EtpErrorCodes.NotFound);

            // Put Object
            await PutAndAssert(handler, dataObject);

            // Get Object
            var args = await GetAndAssert(handler, uri);

            // Check Data Object XML
            Assert.IsNotNull(args?.Message.DataObject);
            var xml = args.Message.DataObject.GetString();

            var result = Parse <WellboreGeometry>(xml);

            Assert.IsNotNull(result);
        }
        public void TestSetUp()
        {
            Logger.Debug($"Executing {TestContext.TestName}");
            DevKit = new DevKit200Aspect(TestContext);

            Well = new Well
            {
                Uuid     = DevKit.Uid(),
                Citation = DevKit.Citation("Well"),

                GeographicLocationWGS84 = DevKit.Location(),
                SchemaVersion           = "2.0",

                TimeZone = DevKit.TimeZone
            };
            Wellbore = new Wellbore
            {
                Uuid     = DevKit.Uid(),
                Citation = DevKit.Citation("Wellbore"),

                Well          = DevKit.DataObjectReference(Well),
                SchemaVersion = "2.0"
            };
            WellboreGeometry = new WellboreGeometry
            {
                Uuid     = DevKit.Uid(),
                Citation = DevKit.Citation("WellboreGeometry"),

                Wellbore      = DevKit.DataObjectReference(Wellbore),
                SchemaVersion = EtpUris.GetUriFamily(typeof(WellboreGeometry)).Version,
            };

            BeforeEachTest();
            OnTestSetUp();
        }
        public async Task WellboreGeometry200_PutObject_Can_Update_WellboreGeometry()
        {
            AddParents();
            await RequestSessionAndAssert();

            var handler = _client.Handler <IStoreCustomer>();
            var uri     = WellboreGeometry.GetUri();

            // Add a ExtensionNameValue to Data Object
            var envName = "TestPutObject";
            var env     = DevKit.ExtensionNameValue(envName, envName);

            WellboreGeometry.ExtensionNameValue = new List <ExtensionNameValue>()
            {
                env
            };

            var dataObject = CreateDataObject(uri, WellboreGeometry);

            // Get Object Expecting it Not to Exist
            await GetAndAssert(handler, uri, Energistics.EtpErrorCodes.NotFound);

            // Put Object for Add
            await PutAndAssert(handler, dataObject);

            // Get Added Object
            var args = await GetAndAssert(handler, uri);

            // Check Added Data Object XML
            Assert.IsNotNull(args?.Message.DataObject);
            var xml = args.Message.DataObject.GetString();

            var result = Parse <WellboreGeometry>(xml);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.ExtensionNameValue.FirstOrDefault(e => e.Name.Equals(envName)));

            // Remove Comment from Data Object
            result.ExtensionNameValue.Clear();

            var updateDataObject = CreateDataObject(uri, result);

            // Put Object for Update
            await PutAndAssert(handler, updateDataObject);

            // Get Updated Object
            args = await GetAndAssert(handler, uri);

            // Check Added Data Object XML
            Assert.IsNotNull(args?.Message.DataObject);
            var updateXml = args.Message.DataObject.GetString();

            result = Parse <WellboreGeometry>(updateXml);
            Assert.IsNotNull(result);

            // Test Data Object overwrite
            Assert.IsNull(result.ExtensionNameValue.FirstOrDefault(e => e.Name.Equals(envName)));
        }
        public async Task WellboreGeometry200_GetResources_Can_Get_All_WellboreGeometry_Resources()
        {
            AddParents();
            DevKit.AddAndAssert(WellboreGeometry);
            await RequestSessionAndAssert();

            var uri       = WellboreGeometry.GetUri();
            var parentUri = uri.Parent;

            await GetResourcesAndAssert(WellboreGeometry.Wellbore.GetUri());

            var folderUri = parentUri.Append(uri.ObjectType);

            await GetResourcesAndAssert(folderUri);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Gets the .NET type for the specified object type and WITSML version.
        /// </summary>
        /// <param name="objectType">The data object type.</param>
        /// <param name="family">THe data object family name.</param>
        /// <param name="version">The WITSML version.</param>
        /// <returns>The .NET type for the data object.</returns>
        /// <remarks>Handles versions of the format X.Y[.X.[.W]] and dataVersion=X.Y[.Z[.W]].</remarks>
        public static Type GetObjectType(string objectType, string family, string version)
        {
            if (string.IsNullOrEmpty(version) || version.Length < 3)
            {
                return(null);
            }

            Assembly assembly;
            string   familyUpper = family.ToUpperInvariant();

            if (familyUpper == ObjectFamilies.Witsml)
            {
                assembly = typeof(IWitsmlDataObject).Assembly;
            }
            else if (familyUpper == ObjectFamilies.Prodml)
            {
                assembly = typeof(IProdmlDataObject).Assembly;
            }
            else if (familyUpper == ObjectFamilies.Resqml)
            {
                assembly = typeof(IResqmlDataObject).Assembly;
            }
            else if (familyUpper == ObjectFamilies.Eml)
            {
                // TODO: Update this once common is implemented independently.
                familyUpper = "WITSML";
                version     = "2.0";
                assembly    = typeof(IWitsmlDataObject).Assembly;
            }
            else
            {
                return(null);
            }

            var index = version.LastIndexOf('=');

            index++; // index will be -1 if no '=' is found so no special case needed.

            char build = version.Length > index + 4 ? version[index + 4] : '0';
            var  ns    = $"Energistics.DataAccess.{familyUpper}{version[index]}{version[index + 2]}{build}.";

            if (WbGeometry.EqualsIgnoreCase(objectType) && !OptionsIn.DataVersion.Version200.Equals(version))
            {
                objectType = $"StandAlone{WellboreGeometry.ToPascalCase()}";
            }

            return(assembly.GetType(ns + objectType.ToPascalCase()));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Gets the .NET type for the specified object type and WITSML version.
        /// </summary>
        /// <param name="objectType">The data object type.</param>
        /// <param name="version">The WITSML version.</param>
        /// <returns>The .NET type for the data object.</returns>
        public static Type GetObjectType(string objectType, string version)
        {
            var ns = OptionsIn.DataVersion.Version131.Equals(version)
                ? "Energistics.DataAccess.WITSML131."
                : OptionsIn.DataVersion.Version200.Equals(version)
                ? "Energistics.DataAccess.WITSML200."
                : OptionsIn.DataVersion.Version210.Equals(version)
                ? "Energistics.DataAccess.RESQML210."
                : "Energistics.DataAccess.WITSML141.";

            if (WbGeometry.EqualsIgnoreCase(objectType) && !OptionsIn.DataVersion.Version200.Equals(version))
            {
                objectType = $"StandAlone{WellboreGeometry.ToPascalCase()}";
            }

            return(typeof(IDataObject).Assembly.GetType(ns + objectType.ToPascalCase()));
        }
 /// <summary>
 /// Sets additional default values for the specified data object.
 /// </summary>
 /// <param name="dataObject">The data object.</param>
 /// <param name="uri">The URI.</param>
 partial void SetAdditionalDefaultValues(WellboreGeometry dataObject, EtpUri uri)
 {
     dataObject.GrowingStatus = ChannelStatus.active;
 }