public EclipseFileRequest(string host, string uri, TokenPair pair) : base(host, uri, "") { _tokens = new List <TokenPair>(); if (pair != null) { _tokens.Add(pair); } }
private FileRequest CreateRequest(string host, string path, string query) { NameValueCollection parameters = HttpUtility.ParseQueryString(query); FileRequest request; if (parameters["eclipseps3"] != null) { string[] pair = parameters["eclipseps3"].Split('_'); // Time + hash pair TokenPair token = new TokenPair(new DateTime(Convert.ToInt64(pair[0])), pair[1]); request = EclipseRequests.FirstOrDefault(x => x.Host == host && x.Uri == path); if (request == null) { request = new EclipseFileRequest(host, path, token); EclipseRequests.Add((EclipseFileRequest)request); } else { TokenPair firstPair = ((EclipseFileRequest)request).Tokens.FirstOrDefault(x => x.TimeStamp == token.TimeStamp && x.Token == token.Token); if (firstPair == null) { ((EclipseFileRequest)request).Tokens.Add(token); } } } else { request = Requests.FirstOrDefault(x => x.Host == host && x.Uri == path); if (request == null) { request = new FileRequest(host, path, query); Requests.Add(request); } } return(request); }