private string GetOptionMaster(string fieldAlias)
        {
            Assume.That(fieldReader.Data, Is.Not.Null, "Cannot read the field information. fieldReader.Data is null!");
            var query = from t in fieldReader.Data
                        where t.Key.ToAlias() == fieldAlias
                        select t;
            var field = query.FirstOrDefault();

            Assume.That(field, Is.Not.Null, "Cannot read the field {0} !", fieldAlias);
            Assume.That(field.Value.ContainsKey(FieldProperty.OptionMaster), "Cannot read the master option of {0} !", fieldAlias);
            Assume.That(field.Value[FieldProperty.OptionMaster] as string, Is.Not.Null.And.Not.Empty,
                        "Cannot read the master option of {0} !", fieldAlias);
            long masterOptionId = long.Parse(field.Value[FieldProperty.OptionMaster] as string);

            using (var session = TestBase.PrivateAuthentication.GetPrivateSession(AuthenticationInfoProvider.Current.DefaultCompanyName,
                                                                                  AuthenticationInfoProvider.Current.DefaultUserLogin,
                                                                                  AuthenticationInfoProvider.Current.DefaultUserPassword))
            {
                List <HRBCClientPrivate.Common.OptionField> select = new List <HRBCClientPrivate.Common.OptionField>
                {
                    HRBCClientPrivate.Common.OptionField.Alias
                };

                IRequest <GetOptionRequest, GetOptionResponse> request =
                    (HRBCClientPrivate.API.Option.GetOptionRequest.Builder().Select(select) as HRBCClientPrivate.API.Option.GetOptionRequest.IBuilderWithSelect)
                    .WhereIds(masterOptionId);

                GetOptionResponse response = session.Call(request);
                Assume.That(response, Is.Not.Null, "Cannot read the master option!");
                Assume.That(response.OptionData, Is.Not.Null, "Cannot read the master option! OptionData of the response is null!");
                Assume.That(response.OptionData.Single().Value.Alias, Is.Not.Null.And.Not.Empty, "Cannot read the master option! Option alias is null or empty!");
                return($"Option.{response.OptionData.Single().Value.Alias}");
            }
        }
        /// <summary>
        /// 获取下载任务的设置
        /// </summary>
        /// <param name="gid"></param>
        /// <returns></returns>
        public async Task <object> GetOption(string gid)
        {
            var res = new GetOptionResponse(await _client.SendRequestAsync(new GetOptionRequest
            {
                GID = gid
            }));

            return(res?.Option);
        }