예제 #1
0
        /// <summary>
        /// Gets the download info both url and response
        /// </summary>
        /// <param name="response">HttpWebResponse received from server</param>
        /// <param name="url">Source url</param>
        /// <returns></returns>
        public static HttpDownloadInfo GetFromResponse(HttpWebResponse response, string url)
        {
            var headers = response.Headers;

            var serverFileName = FileNameHelper.GetFileName(response);
            var contentSize    = response.ContentLength;
            var contentRange   = response.Headers[HttpResponseHeader.ContentRange];

            if (contentSize < 1 && !string.IsNullOrEmpty(contentRange))
            {
                var parts = contentRange.Split('/');

                if (parts.Length > 1)
                {
                    long.TryParse(parts[1], out contentSize);
                }
            }

            var acceptRanges = headers.AllKeys.Any(x => x.ToLower().Contains("range") && headers[x].Contains("bytes"));

            acceptRanges &= contentSize > 0;

            var resume = acceptRanges ? Resumeability.Unknown : Resumeability.No;

            Debug.WriteLine(response.Headers[HttpResponseHeader.ETag]);
            return(new HttpDownloadInfo(url, contentSize, acceptRanges, serverFileName, resume));
        }
        public void GetFileNameTest()
        {
            var result = FileNameHelper.GetFileName("2019");

            Assert.AreEqual("SportsRadarStore-2019.json", result);
        }
        public void GetFileNameEmptyStringTest()
        {
            var result = FileNameHelper.GetFileName(string.Empty);

            Assert.AreEqual("SportsRadarStore-.json", result);
        }