public void Handle(Nancy.HttpStatusCode statusCode, Nancy.NancyContext context) { if (context.Request.Headers.Accept.Count() == 0) { return; } if (context.Request.Headers.Accept.First().Item1.Contains("/json") || context.Request.Headers.Accept.First().Item1.Contains("/xml")) { return; } // this is most probably XmlHttpRequest if (context.Request.Method == "PATCH" || context.Request.Method == "DELETE") { return; } if (context.Request.Method == "GET" || context.Request.Method == "POST" || context.Request.Headers.UserAgent.Contains("Mozilla") || context.Request.Headers.UserAgent.Contains("WebKit") || context.Request.Headers.UserAgent.Contains("Trident")) { var response = _renderer.RenderView(context, "Codes/" + (int)statusCode); response.StatusCode = statusCode; response.ContentType = "text/html; charset=utf-8"; context.Response = response; } }
public void Handle(HttpStatusCode statusCode, NancyContext context) { var response = _viewRenderer.RenderView(context, @"404.html"); response.StatusCode = statusCode; context.Response = response; }
public void Handle(HttpStatusCode statusCode, NancyContext context) { var error = context.GetException(); var resp = new ErrorResponse { Context = context, ShowDetails = Debugger.IsAttached }; switch (statusCode) { case HttpStatusCode.Unauthorized: context.Response = new RedirectResponse(RouteNames.GetLogin); break; case HttpStatusCode.Forbidden: resp.Title = "Permissions"; resp.Summary = "Sorry, you do not have permission to perform that action."; break; case HttpStatusCode.NotFound: resp.Title = "404 Not Found"; resp.Summary = "Sorry, the requested resource was not found."; break; case HttpStatusCode.InternalServerError: resp.Title = "Sorry, something went wrong"; resp.Summary = "An unexpected error occured."; resp.Details = error.Message; break; } context.Response.StatusCode = statusCode; context.Response = _renderer.RenderView(context, "Modules/Application/Views/Error.cshtml", resp); }
public void Handle(HttpStatusCode statusCode, NancyContext context) { if (statusCode == HttpStatusCode.Forbidden) { context.Response = _renderer.RenderView(context, "Error403"); } }
/// <summary> /// 具体处理过程 /// </summary> /// <param name="statusCode"></param> /// <param name="context"></param> public void Handle(HttpStatusCode statusCode, NancyContext context) { var response = viewRenderer.RenderView(context, "Status/404", null); //指定专用的cshtml文件 response.StatusCode = statusCode == HttpStatusCode.NotFound ? HttpStatusCode.OK : statusCode; context.Response = response; }
public void Handle(HttpStatusCode statusCode, NancyContext context) { if (statusCode == HttpStatusCode.Unauthorized && context.Request.Path == "/") { context.Response = viewRenderer.RenderView(context, "login"); context.Response.StatusCode = HttpStatusCode.Unauthorized; } else { context.Response = viewRenderer.RenderView(context, "error", new { statusCode = statusCode, message = StatusCodeMessages.GetMessage(statusCode) }); context.Response.StatusCode = statusCode; } }
/// <summary> /// 具体 /// </summary> /// <param name="statusCode"></param> /// <param name="context"></param> public void Handle(HttpStatusCode statusCode, NancyContext context) { Console.WriteLine(context.Trace.TraceLog.ToString()); var response = viewRender.RenderView(context, "status/404"); response.StatusCode = statusCode == HttpStatusCode.NotFound ? HttpStatusCode.OK : statusCode; context.Response = response; }
public void Handle(Nancy.HttpStatusCode statusCode, Nancy.NancyContext context) { var response = viewRenderer.RenderView(context, "Error", new ErrorViewModel { Code = (int)statusCode }); response.StatusCode = statusCode; context.Response = response; }
public static Response AddUser(this INancyModule module, UserIdentity userIdentity, IUserRepository userRepository, IViewRenderer viewRenderer) { try { var allUsers = userRepository.GetAllUsers(); if (allUsers.Any(user => string.Equals(user.UserName, userIdentity.UserName, StringComparison.OrdinalIgnoreCase))) { module.Context.ViewBag.AuthenticationError = Constants.AdminUserAlreadyExistsError; return(viewRenderer.RenderView(module.Context, AdminModule.AdminUserAddRoute)); } userRepository.AddUser(userIdentity); module.Context.ViewBag.AuthenticationError = Constants.AdminUserAdded; return(module.Response.AsRedirect($"~/{AdminModule.AdminDashboardRoute}")); } catch (Exception e) { module.Context.ViewBag.AuthenticationError = e.Message; return(viewRenderer.RenderView(module.Context, AdminModule.AdminUserAddRoute)); } }
public void Handle(HttpStatusCode statusCode, NancyContext context) { try { var response = viewRenderer.RenderView(context, "index"); response.StatusCode = statusCode; context.Response = response; } catch (Exception) { context.Response.StatusCode = statusCode; } }
public void Handle(HttpStatusCode statusCode, NancyContext context) { try { var response = viewRenderer.RenderView(context, "/Codes/" + (int)statusCode + ".cshtml"); response.StatusCode = statusCode; context.Response = response; } catch (Exception) { RemoveCode((int)statusCode); context.Response.StatusCode = statusCode; } }
public void Handle(HttpStatusCode statusCode, NancyContext context) { try { var response = _viewRenderer.RenderView(context, (_checks.Any(x => x == (int)statusCode) ? (int)statusCode : 500) + ".cshtml", context.GetExceptionDetails()); response.StatusCode = statusCode; context.Response = response; } catch (Exception) { RemoveCode((int)statusCode); context.Response.StatusCode = statusCode; } }
public void Handle(HttpStatusCode statusCode, NancyContext context) { Response response; switch (statusCode) { case HttpStatusCode.Forbidden: response = _viewRenderer.RenderView(context, _errorPages.FirstOrDefault(x => x.Key == HttpStatusCode.Forbidden).Value); break; case HttpStatusCode.NotFound: response = _viewRenderer.RenderView(context, _errorPages.FirstOrDefault(x => x.Key == HttpStatusCode.NotFound).Value); break; default: response = _viewRenderer.RenderView(context, _defaultError); break; } response.StatusCode = statusCode; context.Response = response; }
/// <summary> /// Handle the status code. /// </summary> /// <param name="statusCode">The status code to handle</param> /// <param name="context">The current context</param> public void Handle(HttpStatusCode statusCode, NancyContext context) { if (context.Response?.Contents != null && !ReferenceEquals(context.Response.Contents, Response.NoBody)) { return; } if (!_checks.ContainsKey((int)statusCode)) { return; } Exception ex; dynamic result = new ExpandoObject(); if (context.TryGetException(out ex)) { result.Type = context.GetException().GetType(); result.Message = _checks[(int)statusCode]; result.StackTrace = context.GetExceptionDetails(); result.Target = $"{context.GetException().TargetSite.Module}.{context.GetException().TargetSite.Name}"; } else { result.Type = statusCode; result.Message = _checks[(int)statusCode]; result.StackTrace = ""; result.Target = ""; } try { context.Response = _responseNegotiator.NegotiateResponse(result, context); context.Response.StatusCode = statusCode; return; } catch (Exception) { // Move on to HTML view } // Wrap the exception in an HTML <pre> tag result.StackTrace = string.Concat("<pre>", context.GetExceptionDetails().Replace("<", ">").Replace(">", "<"), "</pre>"); result.StatusCode = statusCode; var response = _viewRenderer.RenderView(context, "views/errors/" + (int)statusCode + ".html", result); response.StatusCode = statusCode; context.Response = response; }
public TheModule(IViewRenderer renderer) { _renderer = renderer; Post["/sendmail"] = _ => { string emailBody; var model = this.Bind <MyEmailModel>(); var res = _renderer.RenderView(this.Context, "email-template-view", model); using (var ms = new MemoryStream()) { res.Contents(ms); ms.Flush(); ms.Position = 0; emailBody = Encoding.UTF8.GetString(ms.ToArray()); } //send the email... }; }
/// <summary> /// Handle /// </summary> /// <param name="statusCode"></param> /// <param name="context"></param> public void Handle(HttpStatusCode statusCode, NancyContext context) { var errorStatusCodeConfiguration = Checks .FirstOrDefault(x => x.HttpStatusCode == statusCode); context.Response.ContentType = "text/html"; context.Response.StatusCode = statusCode; var url = _defaultError; if (errorStatusCodeConfiguration != null) { url = errorStatusCodeConfiguration?.Url; } var response = _viewRenderer.RenderView(context, url); context.Response = response; }
/// <summary> /// Handle the code that comes in and display the correct page. /// </summary> /// <param name="statusCode">The status code.</param> /// <param name="context">The <see cref="NancyContext"/> that the code rides on.</param> public void Handle(HttpStatusCode statusCode, NancyContext context) { try { var model = new ErrorModel { ErrorCode = (int)statusCode, Message = context.ResolvedRoute.ToString() }; var response = viewRenderer.RenderView(context, "/Codes/Error.html", model); response.StatusCode = statusCode; context.Response = response; } catch (Exception) { RemoveCode((int)statusCode); context.Response.StatusCode = statusCode; } }
public override Response Authenticate( INancyModule nancyModule, IUserMapper userMapper, IConfiguration configuration, IUserRepository userRepository, UserCredentials userCredentials, IViewRenderer viewRenderer, IModuleStaticWrappers moduleStaticWrappers) { var validUser = userRepository.Authenticate(userCredentials.User, userCredentials.Password); if (validUser == null) { nancyModule.Context.ViewBag.AuthenticationError = Constants.AuthenticationError; return(viewRenderer.RenderView(nancyModule.Context, AuthenticationRedirectUrl.Url)); } var guid = userMapper.AddUser(userCredentials.User, validUser.FirstName, validUser.LastName, validUser.Claims); validUser.LastLogin = DateTime.UtcNow; userRepository.UpdateUser(validUser); return(moduleStaticWrappers.LoginAndRedirect(nancyModule, guid, null, ModuleStaticWrappers.DefaultFallbackRedirectUrl)); }