public virtual IContentResponse DeleteContent(ISavedSearchSaveable input) { if (!IsAuthenticated) { return(new ContentResponse { Success = false, Message = "User is not authenticated" }); } ISavedSearchEntity entity = new SavedSearchEntity { Username = _dependencies.UserContext.User.Username, Name = input.Title, SearchString = ExtractQueryString(input.Url) }; IContentResponse response = null; if (string.IsNullOrWhiteSpace(entity.Name)) { var results = GetContentFromSessionOrRepo(); var entities = results.Where(e => SavedSearchComparer.Equals(e, entity)); foreach (ISavedSearchEntity en in entities) { response = _dependencies.Repository.Delete(en); } } else { response = _dependencies.Repository.Delete(entity); } Clear(); return(response); }
private bool PerformRequest(SimpleHttpRequest request, SimpleHttpResponse response, IRequestHandler handler) { using (IContentResponse page = handler.GetResponse( request.HttpMethod, request.RawUrl, request.Headers, request.InputStream)) { response.StatusCode = page.Status; if (page.Status == HttpStatusCode.Redirect || page.Status == HttpStatusCode.Moved || page.Status == HttpStatusCode.SeeOther) { response.RedirectLocation = page.Redirect; } if (!String.IsNullOrEmpty(page.ETag) && page.LastModified > new DateTime(1900, 1, 1)) { response.LastModified = page.LastModified; response.ETag = page.ETag; if ((!String.IsNullOrEmpty(request.Headers["If-None-Match"]) && request.Headers["If-None-Match"].Trim('"') == page.ETag) || (!String.IsNullOrEmpty(request.Headers["If-Modified-Since"]) && request.Headers["If-Modified-Since"] == page.LastModified.ToString("r"))) { response.StatusCode = HttpStatusCode.NotModified; return true; } } if (page.Status == HttpStatusCode.OK && (request.HttpMethod == "GET" || request.HttpMethod == "HEAD")) { string pb = String.Format("http://{0}{1}", request.Headers["Host"], PingbackHandler.PingbackUrl); response.AddHeader("X-Pingback", pb); } if (page.ContentLength <= 0) { response.ContentLength = 0; } else { response.ContentType = page.ContentType; bool decompress = page.Compressed; if (decompress && (request.Headers["Accept-Encoding"] ?? "").IndexOf("gzip", StringComparison.OrdinalIgnoreCase) >= 0) { decompress = false; response.ContentEncoding = "gzip"; } else if (decompress && (request.Headers["TE"] ?? "").IndexOf("gzip", StringComparison.OrdinalIgnoreCase) >= 0) { decompress = false; response.TransferEncoding = "gzip"; } int contentLength = (page.Compressed && !decompress) ? page.CompressedLength : page.ContentLength; response.ContentLength = contentLength; if (request.HttpMethod == "HEAD") { //no-content } else if (page.Compressed && decompress) { response.Write(page.ContentBytes, 0, contentLength); } else if (page.HasFile) { response.TransmitFile(page.ContentFile, 0, contentLength); } else if (page.Compressed) { response.Write(page.CompressedBytes, 0, contentLength); } else { response.Write(page.ContentBytes, 0, contentLength); } } return true; } }