public NanoHttpResponse Handle(NanoHttpRequest request) { Hash hash = new Hash(request.Address.Split('/').Last()); List <NanoPost> all = new List <NanoPost>(_db.GetExpandedThreadPosts(hash)); // // recursively hide posts foreach (NanoPost p in all) { if (_db.IsHidden(p.GetHash())) { var children = _db.GetExpandedThreadPosts(p.GetHash()); foreach (var child in children) { _db.Hide(child.GetHash()); } } } List <NanoPost> list = new List <NanoPost>(all.Where(p => !_db.IsHidden(p.GetHash()))); new PngContainerCreator(_db).CreateWithList(list); return(new NanoHttpResponse(StatusCode.Ok, "\n")); }
public NanoHttpResponse Handle(NanoHttpRequest request) { Hash hash = new Hash(request.Address.Split('/').Last()); if (hash.Invalid) { return(new ErrorHandler(StatusCode.BadRequest, "Invalid hash").Handle(request)); } try { if (_db.IsHidden(hash)) { _db.Unhide(hash); } else { _db.Hide(hash); } return(new NanoHttpResponse(StatusCode.Ok, "\n")); } catch (Exception e) { return(new ErrorHandler(StatusCode.InternalServerError, e.ToString().Replace("\n", "<br>")).Handle(request)); } }