示例#1
0
        /// <summary>
        /// Puts a data object into the data store.
        /// </summary>
        /// <param name="parser">The input template parser.</param>
        public virtual void Put(WitsmlQueryParser parser)
        {
            var uri = parser.GetUri <TObject>();

            Logger.Debug($"Putting {typeof(TObject).Name} with URI '{uri}'");

            if (!string.IsNullOrWhiteSpace(uri.ObjectId) && Exists(uri))
            {
                Replace(parser);
            }
            else
            {
                Add(parser);
            }
        }
        /// <summary>
        /// Deletes or partially updates the specified object by uid.
        /// </summary>
        /// <param name="parser">The query parser that specifies the object.</param>
        public override void Delete(WitsmlQueryParser parser)
        {
            var uri = parser.GetUri <T>();

            if (parser.HasElements())
            {
                // TODO: PartialDeleteEntity(parser, uri);
                //ValidateUpdatedEntity(Functions.DeleteFromStore, uri);
                throw new NotImplementedException();
            }
            else
            {
                Delete(uri);
            }
        }
示例#3
0
        /// <summary>
        /// Deletes or partially updates the specified object by uid.
        /// </summary>
        /// <param name="parser">The query parser that specifies the object.</param>
        public override void Delete(WitsmlQueryParser parser)
        {
            var uri = parser.GetUri <T>();

            if (parser.HasElements())
            {
                using (var transaction = GetTransaction())
                {
                    transaction.SetContext(uri);
                    PartialDeleteEntity(parser, uri);
                    transaction.Commit();
                }
            }
            else
            {
                Delete(uri);
            }
        }