Exemple #1
0
        /// <summary>
        /// Parameter 정보를 파싱해서, 원하는 결과를 만듭니다.
        /// </summary>
        /// <param name="context"></param>
        private void ParseRequestParams(HttpContext context)
        {
            var request = context.Request;

            // var _encoding = context.Response.ContentEncoding;

            var setName  = request["S"].AsText();
            var fileName = request["F"].AsText();
            var version  = request["V"].AsText("1.0");

            _contentType   = request["T"].AsText(FileTool.DEFAULT_MIME_TYPE);
            _cacheDuration = TimeSpan.FromDays(request["Ex"].AsInt(30));

            // 유일한 캐시키가 만들어집니다^^
            _cacheKey = GetCacheKey(setName, fileName, version);

            if (IsDebugEnabled)
            {
                log.Debug("요청정보. S=[{0}], F=[{1}], C=[{2}], V=[{3}], _cacheKey=[{4}]", setName, fileName, _contentType, version,
                          _cacheKey);
            }


            // NOTE: Handler를 재사용하는 경우, 꼭 초기화를 시켜주어야 합니다.
            //
            _filenames.Clear();

            // 요청 파일 정보를 파싱해서 넣습니다.
            if (setName.IsNotWhiteSpace() && ConfigTool.HasAppSettings(setName))
            {
                var setFiles = ConfigTool.GetAppSettings(setName, string.Empty);
                if (setFiles.IsNotWhiteSpace())
                {
                    var filenames = setFiles.Split(new[] { FileDelimiter }, StringSplitOptions.RemoveEmptyEntries);
                    filenames.RunEach(n => _filenames.Add(n));
                }
            }

            if (fileName.IsNotWhiteSpace())
            {
                var filenames = fileName.Split(new[] { FileDelimiter }, StringSplitOptions.RemoveEmptyEntries);
                filenames.RunEach(n => _filenames.Add(n));
            }

            if (IsDebugEnabled)
            {
                log.Debug("요청파일=[{0}]", FileDelimiter.ToString().Join(_filenames.ToArray()));
            }
        }