Esempio n. 1
0
        /// <summary>
        /// return (using the two 'out' parameters) the server-side and client-side file names for a given request to retrieve a cached file.
        /// </summary>
        /// <param name="completeCachedFileRetrievalURL">complete cached file retrieval request (including the server-side time stamp),
        /// e.g. http://[server]/[requester]?CTX=&CACHE=MG1VAI3T_MP_0$$$_$_$_N02400$$$$G8FM01_.xml|31/07/2013%2020:15:15</param>
        /// <param name="cachedFileServerFileName">the cached file name on the server, e.g. MG1VAI3T_MP_0$$$_$_$_N02400$$$$G8FM01_.xml</param>
        /// <param name="cachedFileLocalFileName">the cached file name in the client, e.g. C:\Users\[user]\AppData\Local\Temp\MgxpaRIACache\[server]\MG1VAI3T_MP_0$$$_$_$_N02400$$$$G8FM01_.xml</param>
        internal void CompleteCacheRequestURLToFileNames(string completeCachedFileRetrievalURL,
                                                         out string cachedFileServerFileName,
                                                         out string cachedFileLocalFileName)
        {
            // discard the time stamp, leaving only 'cachedFileRetrievalURL', e.g.
            string[] urlAndRemoteTimePair   = HttpUtility.UrlDecode(completeCachedFileRetrievalURL, Encoding.UTF8).Split('|');
            String   cachedFileRetrievalURL = urlAndRemoteTimePair[0]; // the cached file retrieval request without the timestamp, e.g. http://[server]/[requester]?CTX=&CACHE=MG1VAI3T_MP_0$$$_$_$_N02400$$$$G8FM01_.xml

            // get 'cachedFileServerFileName' (i.e. server-side, see the example in the method's comment)  from 'cachedFileRetrievalURL', e.g.
            const string precedingString = "&" + ConstInterface.RC_TOKEN_CACHED_FILE;
            int          pathStartIndex  = cachedFileRetrievalURL.IndexOf(precedingString) + precedingString.Length;

            cachedFileServerFileName = cachedFileRetrievalURL.Substring(pathStartIndex);
            Debug.Assert(cachedFileServerFileName != null);

            // get 'cachedFileLocalFileName' (i.e. client-side, see the example in the method's comment) from 'cachedFileRetrievalURL'
            cachedFileLocalFileName = PersistentOnlyCacheManager.GetInstance().URLToLocalFileName(CacheUtils.URLToFileName(cachedFileRetrievalURL));
        }
Esempio n. 2
0
        /// <summary>convert an HTTP URL to a file name in the cache</summary>
        /// <param name="url"></param>
        internal static String URLToLocalFileName(String url)
        {
            String relativeFileName = URLToFileName(HttpUtility.UrlDecode(url, Encoding.UTF8));

            return(PersistentOnlyCacheManager.GetInstance().URLToLocalFileName(relativeFileName));
        }
Esempio n. 3
0
        /// <summary> Converts a server file path into the local cached file path
        /// eg. c:\serverfiles\a.jpg --> <cached folder>\c__serverfiles_a.jpg
        /// </summary>
        /// <param name="serverFileName"></param>
        /// <returns></returns>
        internal static String ServerFileToLocalFileName(String serverFileName)
        {
            String fileName = ServerFilePathToFileName(serverFileName);

            return(PersistentOnlyCacheManager.GetInstance().URLToLocalFileName(fileName));
        }