using System; 
 | 
using System.Collections.Generic; 
 | 
  
 | 
namespace Top.Api 
 | 
{ 
 | 
    /// <summary> 
 | 
    /// 基础TOP请求类,存放一些通用的请求参数。 
 | 
    /// </summary> 
 | 
    public abstract class BaseTopRequest<T> : ITopRequest<T> where T : TopResponse 
 | 
    { 
 | 
        /// <summary> 
 | 
        /// HTTP请求URL参数 
 | 
        /// </summary> 
 | 
        internal TopDictionary otherParams; 
 | 
        /// <summary> 
 | 
        /// HTTP请求头参数 
 | 
        /// </summary> 
 | 
        private TopDictionary headerParams; 
 | 
        /// <summary> 
 | 
        /// 请求目标AppKey 
 | 
        /// </summary> 
 | 
        private string targetAppKey; 
 | 
  
 | 
        /// <summary> 
 | 
        /// 批量API请求的用户授权码 
 | 
        /// </summary> 
 | 
        private string batchApiSession; 
 | 
  
 | 
        /// <summary> 
 | 
        /// API在批量调用中的顺序 
 | 
        /// </summary> 
 | 
        private int batchApiOrder; 
 | 
  
 | 
        public void AddOtherParameter(string key, string value) 
 | 
        { 
 | 
            if (this.otherParams == null) 
 | 
            { 
 | 
                this.otherParams = new TopDictionary(); 
 | 
            } 
 | 
            this.otherParams.Add(key, value); 
 | 
        } 
 | 
  
 | 
        public void AddHeaderParameter(string key, string value) 
 | 
        { 
 | 
            GetHeaderParameters().Add(key, value); 
 | 
        } 
 | 
  
 | 
        public IDictionary<string, string> GetHeaderParameters() 
 | 
        { 
 | 
            if (this.headerParams == null) 
 | 
            { 
 | 
                this.headerParams = new TopDictionary(); 
 | 
            } 
 | 
            return this.headerParams; 
 | 
        } 
 | 
  
 | 
        public string GetTargetAppKey() 
 | 
        { 
 | 
            return this.targetAppKey; 
 | 
        } 
 | 
  
 | 
        public void SetTargetAppKey(string targetAppKey) 
 | 
        { 
 | 
            this.targetAppKey = targetAppKey; 
 | 
        } 
 | 
  
 | 
        public string GetBatchApiSession() 
 | 
        { 
 | 
            return this.batchApiSession; 
 | 
        } 
 | 
  
 | 
        public void SetBatchApiSession(string session) 
 | 
        { 
 | 
            this.batchApiSession = session; 
 | 
        } 
 | 
  
 | 
        public int GetBatchApiOrder() 
 | 
        { 
 | 
            return this.batchApiOrder; 
 | 
        } 
 | 
  
 | 
        public void SetBatchApiOrder(int order) 
 | 
        { 
 | 
            this.batchApiOrder = order; 
 | 
        } 
 | 
  
 | 
        public abstract string GetApiName(); 
 | 
  
 | 
        public abstract void Validate(); 
 | 
  
 | 
        public abstract IDictionary<string, string> GetParameters(); 
 | 
    } 
 | 
} 
 |