예제 #1
0
 /// <summary>
 /// 基础初始化函数
 /// </summary>
 /// <param name="plugConfig">插件配置</param>
 /// <param name="context">Http上下文</param>
 /// <param name="methodName">Http请求方法</param>
 public virtual void BaseInitialization(TContext context, string methodName, NFinal.Config.Plug.PlugConfig plugConfig)
 {
     this.config      = plugConfig;
     this.context     = context;
     this._methodName = methodName;
     SetResponse(CompressMode.Deflate);
 }
예제 #2
0
        public static void Configure(NFinal.Config.Plug.PlugConfig plugConfig)
        {
            Dictionary <string, StringContainer> systemConfigDictionary = new Dictionary <string, StringContainer>();

            systemConfigDictionary.Add("siteName", "站点名称");
            systemConfigDictionary.Add("mobile", "联系电话");
            plugConfig.keyValueCache = new NFinal.Collections.FastSearch.FastSearch <StringContainer>(systemConfigDictionary);
            systemConfigDictionary.Clear();
        }
예제 #3
0
        /// <summary>
        /// 获取默认控制器
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override IAction <IOwinContext, IOwinRequest> GetAction(IOwinContext context, NFinal.Config.Plug.PlugConfig plugConfig)
        {
            ContextAction controller = new ContextAction();

            controller.BaseInitialization(context, null, plugConfig);
            return(controller);
        }
예제 #4
0
        /// <summary>
        /// 加载配置
        /// </summary>
        public static void Init()
        {
            Configration.isInit  = true;
            plugConfigDictionary = new Dictionary <string, NFinal.Config.Plug.PlugConfig>();
            string fileName         = Directory.GetCurrentDirectory();
            string nfinalConfigPath = NFinal.IO.Path.GetApplicationPath("/nfinal.json");

            if (File.Exists(nfinalConfigPath))
            {
                using (StreamReader nfinalConfigReader = System.IO.File.OpenText(nfinalConfigPath))
                {
                    string nfinalJsonText = nfinalConfigReader.ReadToEnd();
                    nfinalConfigReader.Dispose();
                    nfinalJsonText = DeleteComment(nfinalJsonText);
                    try
                    {
                        Configration.globalConfig            = Newtonsoft.Json.JsonConvert.DeserializeObject <NFinal.Config.Global.GlobalConfig>(nfinalJsonText);
                        Configration.globalConfig.JsonObject = SimpleJSON.JSON.Parse(nfinalJsonText).AsObject;
                    }
                    catch
                    {
                        throw new NFinal.Exceptions.NFinalConfigLoadException(nfinalJsonText);
                    }
                    NFinal.Config.Plug.PlugConfig plugConfig = null;
                    string   nfinalPlugFolder     = NFinal.IO.Path.GetApplicationPath("/Plugs/");
                    string[] plugJsonFileNameList = Directory.GetFiles(nfinalPlugFolder, "plug.json", SearchOption.AllDirectories);
                    //Configration.globalConfig.plugs = new Plug.Plug[plugJsonFileNameList.Length];
                    for (int i = 0; i < plugJsonFileNameList.Length; i++)
                    {
                        string plugJsonFileName = plugJsonFileNameList[i];
                        if (File.Exists(plugJsonFileName))
                        {
                            string plugJsonText = "";
                            using (StreamReader streamReader = System.IO.File.OpenText(plugJsonFileName))
                            {
                                plugJsonText = streamReader.ReadToEnd();
                            }
                            plugJsonText = DeleteComment(plugJsonText);
                            try
                            {
                                plugConfig            = Newtonsoft.Json.JsonConvert.DeserializeObject <NFinal.Config.Plug.PlugConfig>(plugJsonText);
                                plugConfig.JsonObject = SimpleJSON.JSON.Parse(nfinalJsonText).AsObject;
                                plugConfigDictionary.Add(plugConfig.plug.name, plugConfig);
                            }
                            catch
                            {
                                throw new NFinal.Exceptions.PlugConfigLoadException(plugJsonText);
                            }
                        }
                        else
                        {
                            throw new FileNotFoundException("找不到NFinal插件配置文件:"
                                                            + plugJsonFileName,
                                                            plugJsonFileName);
                        }
                    }
                    //for (int i = 0; i < Configration.globalConfig.plugs.Length; i++)
                    //{
                    //    if (globalConfig.plugs[i].enable)
                    //    {
                    //        string plugConfigPath = NFinal.IO.Path.GetApplicationPath(globalConfig.plugs[i].configPath);
                    //        if (File.Exists(plugConfigPath))
                    //        {
                    //            using (StreamReader streamReader = System.IO.File.OpenText(plugConfigPath))
                    //            {
                    //                string plugJsonText = streamReader.ReadToEnd();
                    //                streamReader.Dispose();
                    //                plugJsonText = DeleteComment(plugJsonText);
                    //                plugConfig = Newtonsoft.Json.JsonConvert.DeserializeObject<NFinal.Config.Plug.PlugConfig>(plugJsonText);
                    //                plugConfig.JsonObject = SimpleJSON.JSON.Parse(nfinalJsonText).AsObject;
                    //                plugConfigDictionary.Add(globalConfig.plugs[i].name,plugConfig);
                    //            }
                    //        }
                    //        else
                    //        {
                    //            throw new FileNotFoundException("找不到NFinal插件配置文件:"
                    //                + plugConfigPath,
                    //                plugConfigPath);
                    //        }
                    //    }
                    //}
                }
            }
            else
            {
                throw new FileNotFoundException("找不到NFinal全局配置文件:"
                                                + nfinalConfigPath,
                                                nfinalConfigPath);
            }
        }
예제 #5
0
 /// <summary>
 /// 获取默认Controller
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 public abstract IAction <TContext, TRequest> GetAction(TContext context, NFinal.Config.Plug.PlugConfig plugConfig);
예제 #6
0
        /// <summary>
        /// 流输出初始化函数
        /// </summary>
        /// <param param name="plugConfig">插件配置</param>
        /// <param name="methodName">行为名称</param>
        /// <param name="context">Http上下文</param>
        /// <param name="outputStream">输出流</param>
        /// <param name="request"></param>
        /// <param name="compressMode"></param>
        public override void Initialization(HttpContext context, string methodName, Stream outputStream, HttpRequest request, CompressMode compressMode, NFinal.Config.Plug.PlugConfig plugConfig)
        {
            base.Initialization(context, methodName, outputStream, request, compressMode, plugConfig);
            this.parameters = new NFinal.NameValueCollection();
            foreach (var query in request.Query)
            {
                this.parameters.Add(query.Key, query.Value);
            }
            if (context.Request.HasFormContentType)
            {
                foreach (var form in context.Request.Form)
                {
                    this.parameters.Add(form.Key, form.Value);
                }
            }
            IDictionary <string, string> requestCookie = new Dictionary <string, string>();

            foreach (var cookie in this.request.Cookies)
            {
                requestCookie.Add(cookie.Key, cookie.Value);
            }

            this.Cookie  = new Cookie(requestCookie);
            this.Session = GetSession(Cookie.SessionId);
            if (outputStream == null)
            {
                this.outputStream = context.Response.Body;
            }
            else
            {
                this.outputStream = outputStream;
            }
        }
예제 #7
0
 /// <summary>
 /// 获取默认控制器
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 public override IAction <IDictionary <string, object>, Owin.Request> GetAction(IDictionary <string, object> context, NFinal.Config.Plug.PlugConfig plugConfig)
 {
     NFinal.Owin.Request request    = context.GetRequest();
     NFinal.OwinAction   controller = new OwinAction();
     controller.BaseInitialization(context, null, plugConfig);
     return(controller);
 }
예제 #8
0
 /// <summary>
 /// 流输出初始化函数
 /// </summary>
 /// <param name="enviroment">Owin中间件</param>
 /// <param name="methodName">Http请求方法</param>
 /// <param name="outputStream">Http输出流</param>
 /// <param name="request">Http请求信息</param>
 /// <param name="compressMode">压缩模式</param>
 public override void Initialization(IDictionary <string, object> enviroment, string methodName, Stream outputStream, Owin.Request request, CompressMode compressMode, NFinal.Config.Plug.PlugConfig plugConfig)
 {
     base.Initialization(enviroment, methodName, outputStream, request, compressMode, plugConfig);
     this.parameters = request.parameters;
     this.Cookie     = new Cookie(this.request.cookies);
     this.Session    = GetSession(Cookie.SessionId);
     if (outputStream == null)
     {
         this.outputStream = enviroment.GetResponseBody();
     }
     else
     {
         this.outputStream = outputStream;
     }
 }
예제 #9
0
 /// <summary>
 /// 基础初始化函数
 /// </summary>
 /// <param name="plugConfig">插件配置</param>
 /// <param name="enviroment">Owin中间件</param>
 /// <param name="methodName">Http请求方法</param>
 public override void BaseInitialization(IDictionary <string, object> enviroment, string methodName, NFinal.Config.Plug.PlugConfig plugConfig)
 {
     base.BaseInitialization(enviroment, methodName, plugConfig);
     this.request      = enviroment.GetRequest();
     this.parameters   = request.parameters;
     this.Cookie       = new Cookie(this.request.cookies);
     this.Session      = GetSession(Cookie.SessionId);
     this.outputStream = enviroment.GetResponseBody();
 }
예제 #10
0
 /// <summary>
 /// 初始化函数
 /// </summary>
 /// <param name="plugConfig">插件配置</param>
 /// <param name="context">Http上下文</param>
 /// <param name="methodName">Http请求方法</param>
 /// <param name="outputStream">Http输出流</param>
 /// <param name="request">Http请求信息</param>
 /// <param name="compressMode">压缩模式</param>
 public virtual void Initialization(TContext context, string methodName, Stream outputStream, TRequest request, CompressMode compressMode, NFinal.Config.Plug.PlugConfig plugConfig)
 {
     this.config       = plugConfig;
     this.context      = context;
     this._methodName  = methodName;
     this.outputStream = outputStream;
     this.request      = request;
     SetResponse(compressMode);
 }
예제 #11
0
 public override void Initialization(IOwinContext context, string methodName, Stream outputStream, IOwinRequest request, CompressMode compressMode, NFinal.Config.Plug.PlugConfig plugConfig)
 {
     throw new NotImplementedException();
 }
예제 #12
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="context"></param>
 /// <param name="methodName"></param>
 /// <param name="plugConfig"></param>
 public override void BaseInitialization(IOwinContext context, string methodName, NFinal.Config.Plug.PlugConfig plugConfig)
 {
 }