/// <summary>
 /// 更新 并查询 仅v8.2
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="alternateKeyValues"></param>
 /// <param name="queryOptions"></param>
 /// <param name="jObject"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <JObject> UpdateAndReadAsync(string entityName,
                                                IEnumerable <KeyValuePair <string, string> > alternateKeyValues,
                                                JObject jObject, QueryOptions queryOptions,
                                                EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await UpsertAndReadAsync(entityName, alternateKeyValues, jObject, queryOptions, true, false, enumAnnotations));
 }
 /// <inheritdoc />
 /// <summary>
 ///     插入/更新 并查询 仅v8.2 以上
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="guid"></param>
 /// <param name="queryOptions"></param>
 /// <param name="value"></param>
 /// <param name="ifMatch">
 ///     如果更新数据,并且有某种可能会有意删除实体,则您不想再创建实体。 若要防止出现此情况,添加 If-Match 标题到值为 "*" 的请求。
 ///     <para>如果找到实体,您将收到状态 204 的正常响应 (No Content)。 如果未找到实体,您将收到状态 404 的以下响应 (Not Found)。</para>
 /// </param>
 /// <param name="ifNoneMatch">
 ///     如果在插入数据,有某种可能具有相同 id 值的记录已存在于系统中,您可能不希望更新它。 若要防止出现此情况,添加 If-None-Match 标题到值为 "*" 的请求。
 ///     <para>如果未找到实体,您将收到状态 204 的正常响应 (No Content)。 如果找到实体,您将收到状态 412 的以下响应 (Precondition Failed)。</para>
 /// </param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <Value> UpsertAndReadAsync(string entityName, Guid guid, Value value,
                                              QueryOptions queryOptions, bool ifMatch = false, bool ifNoneMatch = false,
                                              EnumAnnotations enumAnnotations         = EnumAnnotations.None)
 {
     return(await UpsertAndReadAsync(entityName, guid, value, queryOptions?.ToString(), ifMatch, ifNoneMatch,
                                     enumAnnotations));
 }
 /// <summary>
 /// 插入/更新 并查询 仅v8.2
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="alternateKeyValues"></param>
 /// <param name="queryOptions"></param>
 /// <param name="jObject"></param>
 /// <param name="ifMatch"> 如果更新数据,并且有某种可能会有意删除实体,则您不想再创建实体。 若要防止出现此情况,添加 If-Match 标题到值为 "*" 的请求。
 /// <para>如果找到实体,您将收到状态 204 的正常响应 (No Content)。 如果未找到实体,您将收到状态 404 的以下响应 (Not Found)。</para>
 /// </param>
 /// <param name="ifNoneMatch">如果在插入数据,有某种可能具有相同 id 值的记录已存在于系统中,您可能不希望更新它。 若要防止出现此情况,添加 If-None-Match 标题到值为 "*" 的请求。
 /// <para>如果未找到实体,您将收到状态 204 的正常响应 (No Content)。 如果找到实体,您将收到状态 412 的以下响应 (Precondition Failed)。</para>
 /// </param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <JObject> UpsertAndReadAsync(string entityName,
                                                IEnumerable <KeyValuePair <string, string> > alternateKeyValues,
                                                JObject jObject, QueryOptions queryOptions,
                                                bool ifMatch = false, bool ifNoneMatch = false,
                                                EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await UpsertAndReadAsync(entityName, alternateKeyValues, jObject, queryOptions?.ToString(), ifMatch, ifNoneMatch, enumAnnotations));
 }
 /// <inheritdoc />
 /// <summary>
 /// 查询指定记录
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="alternateKeyValues"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <Value> ReadAsync(string entityName, IEnumerable <KeyValuePair <string, string> > alternateKeyValues
                                     , EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await ReadAsync(entityName,
                            alternateKeyValues,
                            string.Empty,
                            enumAnnotations));
 }
 /// <inheritdoc />
 /// <summary>
 /// 查询指定记录
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="alternateKeyValues"></param>
 /// <param name="queryOptions"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <Value> ReadAsync(string entityName, IEnumerable <KeyValuePair <string, string> > alternateKeyValues,
                                     QueryOptions queryOptions, EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await ReadAsync(entityName,
                            alternateKeyValues,
                            queryOptions?.ToString(),
                            enumAnnotations));
 }
 /// <inheritdoc />
 /// <summary>
 /// 查询指定记录
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="alternateKey"></param>
 /// <param name="alternateValue"></param>
 /// <param name="queryOptions"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <Value> ReadAsync(string entityName, string alternateKey, string alternateValue,
                                     string queryOptions, EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await ReadAsync(
                entityName,
                new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>(alternateKey, alternateValue) },
                queryOptions,
                enumAnnotations));
 }
 /// <summary>
 /// 查询指定记录
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="alternateKey"></param>
 /// <param name="alternateValue"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <JObject> ReadAsync(string entityName, string alternateKey, string alternateValue,
                                       EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await ReadAsync(
                entityName,
                new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>(alternateKey, alternateValue) },
                String.Empty,
                enumAnnotations));
 }
 /// <summary>
 /// 更新 并查询 仅v8.2
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="alternateKey"></param>
 /// <param name="alternateValue"></param>
 /// <param name="queryOptions"></param>
 /// <param name="jObject"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <JObject> UpdateAndReadAsync(string entityName,
                                                string alternateKey, string alternateValue,
                                                JObject jObject, string queryOptions,
                                                EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await UpsertAndReadAsync(entityName,
                                     new[] { new KeyValuePair <string, string>(alternateKey, alternateValue) },
                                     jObject,
                                     queryOptions,
                                     true, false,
                                     enumAnnotations));
 }
 /// <inheritdoc />
 /// <summary>
 /// 查询实体
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="queryOptions"></param>
 /// <param name="enumAnnotations"></param>
 /// <param name="maxPageSize"></param>
 /// <returns></returns>
 public async Task <Value> ReadAsync(string entityName, QueryOptions queryOptions,
                                     EnumAnnotations enumAnnotations = EnumAnnotations.None, int?maxPageSize = null)
 {
     if (maxPageSize.HasValue)
     {
         if (queryOptions.Any(x => x.GetType() == typeof(QueryCount)))
         {
             throw new ArgumentException("您不应将 $top 与 $count 一起使用", nameof(maxPageSize));
         }
     }
     return(await ReadAsync(entityName, queryOptions?.ToString(), enumAnnotations, maxPageSize));
 }
        /// <inheritdoc />
        /// <summary>
        /// 查询指定记录
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="guid"></param>
        /// <param name="queryOptions"></param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <Value> ReadAsync(string entityName, Guid guid, string queryOptions,
                                            EnumAnnotations enumAnnotations = EnumAnnotations.None)
        {
            var url = BuildGuidUrl(entityName, guid, queryOptions);

            var req = BuildGetRequest(url, enumAnnotations);

            var response = await this.ExecuteAsync(req); //200

            var value = Value.Read(await response.Content.ReadAsStringAsync());

            return(value);
        }
 /// <summary>
 /// 更新 并查询 仅v8.2
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="alternateKey"></param>
 /// <param name="alternateValue"></param>
 /// <param name="queryOptions"></param>
 /// <param name="value"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <Value> UpdateAndReadAsync(string entityName,
                                              string alternateKey, string alternateValue,
                                              Value value, QueryOptions queryOptions,
                                              EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await UpsertAndReadAsync(entityName,
                                     alternateKey,
                                     alternateValue,
                                     value,
                                     queryOptions,
                                     true, false,
                                     enumAnnotations));
 }
Esempio n. 12
0
        /// <summary>
        /// 查询实体
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="queryOptions"></param>
        /// <param name="enumAnnotations"></param>
        /// <param name="maxPageSize"></param>
        /// <returns></returns>
        public async Task <Value> ReadAsync(string entityName, string queryOptions,
                                            EnumAnnotations enumAnnotations = EnumAnnotations.None, int?maxPageSize = null)
        {
            var url = BuildUrl(entityName, queryOptions);

            var req = BuildGetRequest(url, enumAnnotations, maxPageSize);

            var response = await this.SendAsync(req); //200

            var value = Value.Read(await response.Content.ReadAsStringAsync());

            return(value);
        }
 /// <inheritdoc />
 /// <summary>
 ///     插入/更新 并查询 仅v8.2 以上
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="alternateKey"></param>
 /// <param name="alternateValue"></param>
 /// <param name="queryOptions"></param>
 /// <param name="value"></param>
 /// <param name="ifMatch">
 ///     如果更新数据,并且有某种可能会有意删除实体,则您不想再创建实体。 若要防止出现此情况,添加 If-Match 标题到值为 "*" 的请求。
 ///     <para>如果找到实体,您将收到状态 204 的正常响应 (No Content)。 如果未找到实体,您将收到状态 404 的以下响应 (Not Found)。</para>
 /// </param>
 /// <param name="ifNoneMatch">
 ///     如果在插入数据,有某种可能具有相同 id 值的记录已存在于系统中,您可能不希望更新它。 若要防止出现此情况,添加 If-None-Match 标题到值为 "*" 的请求。
 ///     <para>如果未找到实体,您将收到状态 204 的正常响应 (No Content)。 如果找到实体,您将收到状态 412 的以下响应 (Precondition Failed)。</para>
 /// </param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <Value> UpsertAndReadAsync(string entityName,
                                              string alternateKey, string alternateValue,
                                              Value value, string queryOptions,
                                              bool ifMatch = false, bool ifNoneMatch = false,
                                              EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await UpsertAndReadAsync(entityName,
                                     new[] { new KeyValuePair <string, string>(alternateKey, alternateValue) },
                                     value,
                                     queryOptions,
                                     ifMatch, ifNoneMatch,
                                     enumAnnotations));
 }
        /// <summary>
        /// 查询指定记录
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="alternateKeyValues"></param>
        /// <param name="queryOptions"></param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <JObject> ReadAsync(string entityName, IEnumerable <KeyValuePair <string, string> > alternateKeyValues,
                                              string queryOptions, EnumAnnotations enumAnnotations = EnumAnnotations.None)
        {
            var url = BuildAlternateKeyUrl(entityName, alternateKeyValues, queryOptions);

            var req = BuildGetRequest(url, enumAnnotations);

            var response = await this.SendAsync(req); //200

            var jObject = JsonConvert.DeserializeObject <JObject>(await response.Content.ReadAsStringAsync());

            return(jObject);
        }
        /// <inheritdoc />
        /// <summary>
        /// 查询指定记录
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="alternateKeyValues"></param>
        /// <param name="queryOptions"></param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <Value> ReadAsync(string entityName, IEnumerable <KeyValuePair <string, string> > alternateKeyValues,
                                            string queryOptions, EnumAnnotations enumAnnotations = EnumAnnotations.None)
        {
            var url = BuildAlternateKeyUrl(entityName, alternateKeyValues, queryOptions);

            var req = BuildGetRequest(url, enumAnnotations);

            var response = await this.ExecuteAsync(req); //200

            var value = Value.Read(await response.Content.ReadAsStringAsync());

            return(value);
        }
        /// <summary>
        /// 查询指定记录
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="guid"></param>
        /// <param name="queryOptions"></param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <JObject> ReadAsync(string entityName, Guid guid, string queryOptions,
                                              EnumAnnotations enumAnnotations = EnumAnnotations.None)
        {
            var url = BuildGuidUrl(entityName, guid, queryOptions);

            var req = BuildGetRequest(url, enumAnnotations);

            var response = await this.SendAsync(req); //200

            var jObject = JsonConvert.DeserializeObject <JObject>(await response.Content.ReadAsStringAsync());

            return(jObject);
        }
        /// <inheritdoc />
        /// <summary>
        /// 创建并查询 仅v8.2 以上
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="queryOptions"></param>
        /// <param name="value"></param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <Value> CreateAndReadAsync(string entityName, Value value, string queryOptions,
                                                     EnumAnnotations enumAnnotations = EnumAnnotations.None)
        {
            var url = BuildUrl(entityName, queryOptions);

            var req = BuildRequest(HttpMethod.Post, url, value, enumAnnotations, null, true);

            var response = await this.ExecuteAsync(req); //201

            //Body should contain the requested new-contact information.
            Value deserializeObject = Value.Read(await response.Content.ReadAsStringAsync());

            return(deserializeObject);
        }
        /// <inheritdoc />
        /// <summary>
        /// 查询指定记录单个属性
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="guid"></param>
        /// <param name="attribute"></param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <Value> ReadEntitySingleProp(string entityName, Guid guid, string attribute,
                                                       EnumAnnotations enumAnnotations = EnumAnnotations.None)
        {
            //Now retrieve just the single property.
            var url = BuildGuidUrl(entityName, guid, null, attribute);

            var req = BuildGetRequest(url, enumAnnotations);

            var response = await this.ExecuteAsync(req);

            Value prop = Value.Read(await response.Content.ReadAsStringAsync()); //200

            return(prop);
        }
        ///// <summary>
        ///// 查询单个属性
        ///// </summary>
        ///// <param name="entityName"></param>
        ///// <param name="attribute"></param>
        ///// <param name="enumAnnotations"></param>
        ///// <param name="maxPageSize"></param>
        ///// <returns></returns>
        //public async Task<JObject> ReadEntitySingleProp(string entityName, string attribute,
        //    EnumAnnotations enumAnnotations = EnumAnnotations.None, int? maxPageSize = null)
        //{
        //    return await ReadEntitySingleProp(entityName, attribute, string.Empty, enumAnnotations, maxPageSize);
        //}

        ///// <summary>
        ///// 查询单个属性
        ///// </summary>
        ///// <param name="entityName"></param>
        ///// <param name="attribute"></param>
        ///// <param name="queryOptions"></param>
        ///// <param name="enumAnnotations"></param>
        ///// <param name="maxPageSize"></param>
        ///// <returns></returns>
        //public async Task<JObject> ReadEntitySingleProp(string entityName, string attribute, QueryOptions queryOptions,
        //    EnumAnnotations enumAnnotations = EnumAnnotations.None, int? maxPageSize = null)
        //{
        //    if (maxPageSize.HasValue)
        //    {
        //        if (queryOptions.Any(x => x.GetType() == typeof(QueryCount)))
        //        {
        //            throw new ArgumentException("您不应将 $top 与 $count 一起使用",nameof(maxPageSize));
        //        }
        //    }
        //    return await ReadEntitySingleProp(entityName, attribute, queryOptions?.ToString(), enumAnnotations, maxPageSize);
        //}

        ///// <summary>
        ///// 查询单个属性
        ///// </summary>
        ///// <param name="entityName"></param>
        ///// <param name="attribute"></param>
        ///// <param name="queryOptions"></param>
        ///// <param name="enumAnnotations"></param>
        ///// <param name="maxPageSize"></param>
        ///// <returns></returns>
        //public async Task<JObject> ReadEntitySingleProp(string entityName, string attribute, string queryOptions,
        //    EnumAnnotations enumAnnotations = EnumAnnotations.None, int? maxPageSize = null)
        //{
        //    //Now retrieve just the single property.
        //    var url = BuildUrl(entityName, queryOptions, attribute);


        //    var req = BuildGetRequest(url, enumAnnotations, maxPageSize);

        //    var response = await this.SendAsync(req);
        //    JObject prop = JsonConvert.DeserializeObject<JObject>(await response.Content.ReadAsStringAsync()); //200
        //    return prop;
        //}

        /// <summary>
        /// 查询指定记录单个属性
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="guid"></param>
        /// <param name="attribute"></param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <JObject> ReadEntitySingleProp(string entityName, Guid guid, string attribute,
                                                         EnumAnnotations enumAnnotations = EnumAnnotations.None)
        {
            //Now retrieve just the single property.
            var url = BuildGuidUrl(entityName, guid, null, attribute);

            var req = BuildGetRequest(url, enumAnnotations);

            var response = await this.SendAsync(req);

            JObject prop = JsonConvert.DeserializeObject <JObject>(await response.Content.ReadAsStringAsync()); //200

            return(prop);
        }
        /// <summary>
        /// 创建并查询 仅v8.2
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="queryOptions"></param>
        /// <param name="jObject"></param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <JObject> CreateAndReadAsync(string entityName, JObject jObject, string queryOptions,
                                                       EnumAnnotations enumAnnotations = EnumAnnotations.None)
        {
            var url = BuildUrl(entityName, queryOptions);

            var req = BuildRequest(HttpMethod.Post, url, jObject, enumAnnotations, null, true);

            var response = await this.SendAsync(req); //201

            //Body should contain the requested new-contact information.
            JObject deserializeObject = JsonConvert.DeserializeObject <JObject>(
                await response.Content.ReadAsStringAsync());

            return(deserializeObject);
        }
        /// <inheritdoc />
        /// <summary>
        ///     插入/更新 并查询 仅v8.2 以上
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="guid"></param>
        /// <param name="queryOptions"></param>
        /// <param name="value"></param>
        /// <param name="ifMatch">
        ///     如果更新数据,并且有某种可能会有意删除实体,则您不想再创建实体。 若要防止出现此情况,添加 If-Match 标题到值为 "*" 的请求。
        ///     <para>如果找到实体,您将收到状态 204 的正常响应 (No Content)。 如果未找到实体,您将收到状态 404 的以下响应 (Not Found)。</para>
        /// </param>
        /// <param name="ifNoneMatch">
        ///     如果在插入数据,有某种可能具有相同 id 值的记录已存在于系统中,您可能不希望更新它。 若要防止出现此情况,添加 If-None-Match 标题到值为 "*" 的请求。
        ///     <para>如果未找到实体,您将收到状态 204 的正常响应 (No Content)。 如果找到实体,您将收到状态 412 的以下响应 (Precondition Failed)。</para>
        /// </param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <Value> UpsertAndReadAsync(string entityName, Guid guid, Value value,
                                                     string queryOptions, bool ifMatch = false, bool ifNoneMatch = false,
                                                     EnumAnnotations enumAnnotations   = EnumAnnotations.None)
        {
            var url = BuildGuidUrl(entityName, guid, queryOptions);

            var req = BuildRequest(new HttpMethod("PATCH"), url, value, enumAnnotations, null, true);

            req = BuildIfMatchAndNoneMatch(req, ifMatch, ifNoneMatch);

            var response = await ExecuteAsync(req); //200

            //Body should contain the requested new-contact information.
            var deserializeObject = Value.Read(
                await response.Content.ReadAsStringAsync());

            return(deserializeObject);
        }
        /// <summary>
        /// 插入/更新 并查询 仅v8.2
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="guid"></param>
        /// <param name="queryOptions"></param>
        /// <param name="jObject"></param>
        /// <param name="ifMatch"> 如果更新数据,并且有某种可能会有意删除实体,则您不想再创建实体。 若要防止出现此情况,添加 If-Match 标题到值为 "*" 的请求。
        /// <para>如果找到实体,您将收到状态 204 的正常响应 (No Content)。 如果未找到实体,您将收到状态 404 的以下响应 (Not Found)。</para>
        /// </param>
        /// <param name="ifNoneMatch">如果在插入数据,有某种可能具有相同 id 值的记录已存在于系统中,您可能不希望更新它。 若要防止出现此情况,添加 If-None-Match 标题到值为 "*" 的请求。
        /// <para>如果未找到实体,您将收到状态 204 的正常响应 (No Content)。 如果找到实体,您将收到状态 412 的以下响应 (Precondition Failed)。</para>
        /// </param>
        /// <param name="enumAnnotations"></param>
        /// <returns></returns>
        public async Task <JObject> UpsertAndReadAsync(string entityName, Guid guid, JObject jObject,
                                                       string queryOptions, bool ifMatch = false, bool ifNoneMatch = false,
                                                       EnumAnnotations enumAnnotations   = EnumAnnotations.None)
        {
            var url = BuildGuidUrl(entityName, guid, queryOptions);

            var req = BuildRequest(new HttpMethod("PATCH"), url, jObject, enumAnnotations, null, true);

            req = BuildIfMatchAndNoneMatch(req, ifMatch, ifNoneMatch);

            var response = await this.SendAsync(req); //200

            //Body should contain the requested new-contact information.
            JObject deserializeObject = JsonConvert.DeserializeObject <JObject>(
                await response.Content.ReadAsStringAsync());

            return(deserializeObject);
        }
Esempio n. 23
0
        private string[] ShowSectionTable_Characteristics(SectionTableEntry section)
        {
            List<string> results = new List<string>();

            SectionCharacteristicsType chars = section.GetCharacteristics();
            long enum_value = Convert.ToInt64(chars);
            EnumAnnotations<SectionCharacteristicsType> enum_annotations = new EnumAnnotations<SectionCharacteristicsType>();

            foreach (EnumAnnotation<SectionCharacteristicsType> annotation in enum_annotations)
            {
                long value = Convert.ToInt64(annotation.Value);

                if (value == 0)
                    continue;

                bool selected = ((enum_value & value) == value);

                if (!selected)
                    continue;

                string line = String.Format("{0}  {1}", Utils.IntToHex(value, 8), annotation.HeaderName);

                results.Add(line);
            }

            int max_len = 0;

            foreach (var line in results)
            {
                if (line.Length > max_len)
                    max_len = line.Length;
            }

            return results.ToArray();
        }
 /// <inheritdoc />
 /// <summary>
 /// 查询指定记录
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="guid"></param>
 /// <param name="queryOptions"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <Value> ReadAsync(string entityName, Guid guid, QueryOptions queryOptions,
                                     EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await ReadAsync(entityName, guid, queryOptions?.ToString(), enumAnnotations));
 }
 /// <inheritdoc />
 /// <summary>
 /// 查询指定记录
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="guid"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <Value> ReadAsync(string entityName, Guid guid,
                                     EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await ReadAsync(entityName, guid, string.Empty, enumAnnotations));
 }
Esempio n. 26
0
        private void ShowFileHeader_Characteristics(ExecutableImage image)
        {
            List<string> lines = new List<string>();

            CharacteristicsType characteristics = image.NTHeaders.FileHeader.GetCharacteristics();
            long enum_value = Convert.ToInt64(characteristics);
            EnumAnnotations<CharacteristicsType> enum_annotations = new EnumAnnotations<CharacteristicsType>();

            foreach (EnumAnnotation<CharacteristicsType> annotation in enum_annotations)
            {
                long value = Convert.ToInt64(annotation.Value);
                bool selected = ((enum_value & value) == value);

                if (!selected)
                    continue;

                string line = String.Format("{0}  {1}", Utils.IntToHex(value, 4), annotation.HeaderName);

                lines.Add(line);
            }

            int max_len = 0;

            foreach (var line in lines)
            {
                if (line.Length > max_len)
                    max_len = line.Length;
            }

            max_len = max_len + 2;

            Console.WriteLine("    Characteristics".PadRight(max_len));
            Console.WriteLine("    " + String.Empty.PadRight(max_len, '-'));

            foreach(var line in lines)
                Console.WriteLine("    " + line.PadRight(max_len));

            Console.WriteLine();
        }
Esempio n. 27
0
        private void ShowOptionalHeader_SubSystem(ExecutableImage image)
        {
            List<string> lines = new List<string>();

            SubSystemType sub_system = image.NTHeaders.OptionalHeader.GetSubsystem();
            long enum_value = Convert.ToInt64(sub_system);
            EnumAnnotations<SubSystemType> enum_annotations = new EnumAnnotations<SubSystemType>();

            foreach (EnumAnnotation<SubSystemType> annotation in enum_annotations)
            {
                long value = Convert.ToInt64(annotation.Value);

                if (value == 0)
                    continue;

                bool selected = ((enum_value & value) == value);

                if (!selected)
                    continue;

                string line = String.Format("{0}  {1}", Utils.IntToHex(value, 4), annotation.HeaderName);

                lines.Add(line);
            }

            int max_len = 0;

            foreach (var line in lines)
            {
                if (line.Length > max_len)
                    max_len = line.Length;
            }

            max_len = max_len + 2;

            Console.WriteLine("    Sub-System".PadRight(max_len));
            Console.WriteLine("    " + String.Empty.PadRight(max_len, '-'));

            foreach (var line in lines)
                Console.WriteLine("    " + line.PadRight(max_len));

            Console.WriteLine();
        }
 /// <inheritdoc />
 /// <summary>
 /// 查询实体
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="enumAnnotations"></param>
 /// <param name="maxPageSize"></param>
 /// <returns></returns>
 public async Task <Value> ReadAsync(string entityName,
                                     EnumAnnotations enumAnnotations = EnumAnnotations.None, int?maxPageSize = null)
 {
     return(await ReadAsync(entityName, string.Empty, enumAnnotations, maxPageSize));
 }
 /// <summary>
 /// 更新 并查询 仅v8.2
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="guid"></param>
 /// <param name="queryOptions"></param>
 /// <param name="jObject"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <JObject> UpdateAndReadAsync(string entityName, Guid guid, JObject jObject,
                                                string queryOptions, EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await UpsertAndReadAsync(entityName, guid, jObject, queryOptions, true, false, enumAnnotations));
 }
 /// <summary>
 /// 更新 并查询 仅v8.2
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="guid"></param>
 /// <param name="queryOptions"></param>
 /// <param name="value"></param>
 /// <param name="enumAnnotations"></param>
 /// <returns></returns>
 public async Task <Value> UpdateAndReadAsync(string entityName, Guid guid, Value value,
                                              string queryOptions, EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await UpsertAndReadAsync(entityName, guid, value, queryOptions, true, false, enumAnnotations));
 }
 /// <summary>
 /// 创建并查询 仅v8.2
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="queryOptions"></param>
 /// <param name="jObject"></param>
 /// <param name="enumAnnotations"></param>
 public async Task <JObject> CreateAndReadAsync(string entityName, JObject jObject, QueryOptions queryOptions,
                                                EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await CreateAndReadAsync(entityName, jObject, queryOptions?.ToString(), enumAnnotations));
 }
Esempio n. 32
0
        private string ShowDebugDirectory_Type(DebugDirectoryEntry directoryEntry)
        {
            DebugDirectoryEntryType type = directoryEntry.GetEntryType();
            EnumAnnotations<DebugDirectoryEntryType> annotations = new EnumAnnotations<DebugDirectoryEntryType>();
            EnumAnnotation<DebugDirectoryEntryType> annotation = annotations.FirstOrDefault(a => a.Value == type);

            if (annotation == null)
                return null;

            long value = Convert.ToInt64(annotation.Value);
            string result = String.Format("{0}  {1}", Utils.IntToHex(value, 8), annotation.HeaderName);

            return result;
        }
 /// <inheritdoc />
 /// <summary>
 /// 创建并查询 仅v8.2 以上
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="queryOptions"></param>
 /// <param name="value"></param>
 /// <param name="enumAnnotations"></param>
 public async Task <Value> CreateAndReadAsync(string entityName, Value value, QueryOptions queryOptions,
                                              EnumAnnotations enumAnnotations = EnumAnnotations.None)
 {
     return(await CreateAndReadAsync(entityName, value, queryOptions?.ToString(), enumAnnotations));
 }