コード例 #1
0
        /// <summary>
        /// Creates an <see cref="IEnergisticsCollection"/> container and wraps the current entity.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <returns>A <see cref="IEnergisticsCollection"/> instance.</returns>
        public static IEnergisticsCollection CreateCollection(this IDataObject entity)
        {
            if (entity == null)
            {
                return(null);
            }

            var type       = entity.GetType();
            var objectType = ObjectTypes.GetObjectType(type);
            var family     = ObjectTypes.GetFamily(type);
            var version    = ObjectTypes.GetVersion(type);

            var groupType = ObjectTypes.GetObjectGroupType(objectType, family, version);
            var property  = ObjectTypes.GetObjectTypeListPropertyInfo(objectType, family, version);
            var group     = Activator.CreateInstance(groupType) as IEnergisticsCollection;
            var list      = Activator.CreateInstance(property.PropertyType) as IList;

            if (list == null)
            {
                return(group);
            }

            list.Add(entity);
            property.SetValue(group, list);

            return(group);
        }
コード例 #2
0
        public void ObjectTypes_GetObjectGroupType_Returns_Correct_WbGeometry_Type_For_131()
        {
            var objectType = ObjectTypes.GetObjectGroupType(ObjectTypes.WbGeometry, ObjectFamilies.Witsml, WMLSVersion.WITSML131);

            Assert.AreEqual(typeof(Witsml131.WellboreGeometryList), objectType);
            Assert.AreEqual(ObjectTypes.Unknown, ObjectTypes.GetObjectGroupType(null));
        }
コード例 #3
0
ファイル: WitsmlParser.cs プロジェクト: nilsbenson/witsml
        /// <summary>
        /// Transforms the supplied data object to the specified version.
        /// </summary>
        /// <param name="collection">The data object collection.</param>
        /// <param name="dataVersion">The data schema version.</param>
        /// <returns>The transformed data object, if successful; otherwise, the original data object.</returns>
        public static IEnergisticsCollection Transform(IEnergisticsCollection collection, string dataVersion)
        {
            var objectType = ObjectTypes.GetObjectType(collection);
            var listType   = ObjectTypes.GetObjectGroupType(objectType, dataVersion);
            var converter  = _upgradeMethod.MakeGenericMethod(collection.GetType(), listType);

            try
            {
                collection = (IEnergisticsCollection)converter.Invoke(null, new object[] { collection });
                collection.SetVersion(dataVersion);
            }
            catch (Exception ex)
            {
                _log.Warn($"Unable to convert to data schema version: {dataVersion}", ex);
            }

            return(collection);
        }
コード例 #4
0
        public void ObjectTypes_GetObjectGroupType_Returns_Correct_WbGeometry_Type_For_141()
        {
            var objectType = ObjectTypes.GetObjectGroupType(ObjectTypes.WbGeometry, OptionsIn.DataVersion.Version141);

            Assert.AreEqual(typeof(Witsml141.WellboreGeometryList), objectType);
        }