Added HttpException class for missing HttpException for net8 Wrapped HttpContext.Session, GetJsonResult, IsAjaxRequest and GetUserIdentityName in controllers for net8 Added AuthenticationService to test Fab2ApprovalMKLink code for net8 Compile conditionally flags to debug in dotnet core
59 lines
1.7 KiB
C#
59 lines
1.7 KiB
C#
|
|
#if !NET8
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using System.Web.Mvc.Html;
|
|
using System.Web.Security;
|
|
#endif
|
|
|
|
#if NET8
|
|
using Microsoft.AspNetCore.Mvc;
|
|
#endif
|
|
|
|
#if !NET8
|
|
using System;
|
|
using System.IO;
|
|
using System.Collections.Generic;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Security.Claims;
|
|
using System.Threading.Tasks;
|
|
#endif
|
|
|
|
using System.Text;
|
|
|
|
namespace Fab2ApprovalSystem.PdfGenerator;
|
|
|
|
public class HtmlViewRenderer {
|
|
|
|
public string RenderViewToString(Controller controller, string viewName, object viewData) {
|
|
StringBuilder renderedView = new();
|
|
#if !NET8
|
|
using (StringWriter responseWriter = new(renderedView)) {
|
|
HttpResponse fakeResponse = new(responseWriter);
|
|
HttpContext fakeContext = new(HttpContext.Current.Request, fakeResponse);
|
|
ControllerContext fakeControllerContext = new(new HttpContextWrapper(fakeContext), controller.ControllerContext.RouteData, controller.ControllerContext.Controller);
|
|
|
|
var oldContext = HttpContext.Current;
|
|
HttpContext.Current = fakeContext;
|
|
|
|
using (var viewPage = new ViewPage()) {
|
|
HtmlHelper html = new HtmlHelper(CreateViewContext(responseWriter, fakeControllerContext), viewPage);
|
|
html.RenderPartial(viewName, viewData);
|
|
HttpContext.Current = oldContext;
|
|
}
|
|
}
|
|
#endif
|
|
|
|
return renderedView.ToString();
|
|
}
|
|
|
|
#if !NET8
|
|
|
|
private static ViewContext CreateViewContext(TextWriter responseWriter, ControllerContext fakeControllerContext) {
|
|
return new ViewContext(fakeControllerContext, new FakeView(), new ViewDataDictionary(), new TempDataDictionary(), responseWriter);
|
|
}
|
|
|
|
#endif
|
|
|
|
} |