private void Dispatch(Socket socket) { var request = new Request(socket); try { if (string.IsNullOrEmpty(request.File)) { SendEmptyResponse(request); } else { var handler = this.ResolveHandler(request.File); new Worker(request).Process(handler); } } catch (Exception ex) { ExceptionPolicy.HandleException(ex); SendInternalServerResponse(request); } }
public Worker(Request request) { if (request == null) throw new ArgumentException(); this._request = request; }
private void SendEmptyResponse(Request request) { var response = new Response(request.Socket); response.Status = Constants.STATUS_CODE_204; response.ReasonPhrase = "No Content"; response.Send(); }
private void SendInternalServerResponse(Request request) { var response = new Response(request.Socket); response.Status = Constants.STATUS_CODE_500; response.ReasonPhrase = "Internal Server Error"; response.Send(); }