Пример #1
0
        protected virtual UasParser GetUasParser()
        {
            if (Singleton<UasParser>.Instance == null)
            {
                //no database created
                if (String.IsNullOrEmpty(_config.UserAgentStringsPath))
                    return null;

                var filePath = _webHelper.MapPath(_config.UserAgentStringsPath);
                var uasParser = new UasParser(filePath);
                Singleton<UasParser>.Instance = uasParser;
            }
            return Singleton<UasParser>.Instance;
        }
Пример #2
0
 protected virtual UasParser GetUasParser()
 {
     if (Singleton <UasParser> .Instance == null)
     {
         if (string.IsNullOrEmpty(_config.UserAgentStringsPath))
         {
             return(null);
         }
         var filePath  = _webHelper.MapPath(_config.UserAgentStringsPath);
         var uasParser = new UasParser(filePath);
         Singleton <UasParser> .Instance = uasParser;
     }
     return(Singleton <UasParser> .Instance);
 }
Пример #3
0
        protected virtual UasParser GetUasParser()
        {
            if (Singleton<UasParser>.Instance == null)
            {
                //no database created
                if (String.IsNullOrEmpty("~/App_Data/uas_20140809-02.ini"))
                    return null;

                var filePath = _webHelper.MapPath("~/App_Data/uas_20140809-02.ini");
                var uasParser = new UasParser(filePath);
                Singleton<UasParser>.Instance = uasParser;
            }
            return Singleton<UasParser>.Instance;
        }
Пример #4
0
        protected virtual UasParser GetUasParser()
        {
            if (Singleton <UasParser> .Instance == null)
            {
                //no database created
                if (String.IsNullOrEmpty("~/App_Data/uas_20140809-02.ini"))
                {
                    return(null);
                }

                var filePath  = _webHelper.MapPath("~/App_Data/uas_20140809-02.ini");
                var uasParser = new UasParser(filePath);
                Singleton <UasParser> .Instance = uasParser;
            }
            return(Singleton <UasParser> .Instance);
        }
Пример #5
0
        protected virtual UasParser GetUasParser()
        {
            if (Singleton <UasParser> .Instance == null)
            {
                //no database created
                if (String.IsNullOrEmpty(_config.UserAgentStringsPath))
                {
                    //UNDONE: maybe, throw an exception?
                    return(null);
                }

                var filePath  = _webHelper.MapPath(_config.UserAgentStringsPath);
                var uasParser = new UasParser(filePath);
                Singleton <UasParser> .Instance = uasParser;
            }
            return(Singleton <UasParser> .Instance);
        }
Пример #6
0
        // ghi chú: Hàm này được viết khác với phiên bản của Nop.
        // Chúng ta hoàn toàn có thể sử dụng Autofac để duy trì 1 singleton cho UasParser. Cách dùng Singleton<UasParser>.Instance
        // có chăng chỉ giúp chạy nhanh hơn thôi ( hiện tại là thế, nếu có lợi ích gì hơn thì sẽ bổ sung sau )
        // thay vì lock bằng MethodImpl ( sai ), ta sẽ lock bằng 1 static key
        protected static UasParser GetUasParser()
        {
            if (Singleton<UasParser>.Instance == null)
            {
                var config = EngineContext.Current.Resolve<NopConfig>(); // lấy ra đối tượng nopConfig singleton
                if (string.IsNullOrEmpty(config.UserAgentStringsPath)) return null;
                var webHelper = EngineContext.Current.Resolve<IWebHelper>();

                lock (_lockUasParser)
                {
                    if (Singleton<UasParser>.Instance == null)
                    {
                        string filePath = webHelper.MapPath(config.UserAgentStringsPath);
                        var uasParser = new UasParser(filePath);
                        Singleton<UasParser>.Instance = uasParser;
                    }
                }
            }
            return Singleton<UasParser>.Instance;
        }