using Microsoft.AspNetCore.Mvc; using System.Diagnostics; using System.Text.Json; using Tango.Portal.Chat.Web.ViewModels; namespace Tango.Portal.Chat.Web.Controllers { public sealed class HomeController : Controller { public IActionResult Index(String session) { if (Debugger.IsAttached) { HomeViewVM v = new HomeViewVM(); v.UserName = "debug-user"; return View(v); } String loginUrl = "https://twine-srv.com/login"; if (String.IsNullOrWhiteSpace(session)) return new RedirectResult(loginUrl); String decryptedSession = String.Empty; try { decryptedSession = SimpleCryptoHelper.Decrypt(session); } catch { return new RedirectResult(loginUrl); } var template = new { UserName = "", Expires = DateTime.MinValue }; var sessionUser = JsonSerializer.Deserialize(decryptedSession, template.GetType()); if (sessionUser == null || (DateTime)(sessionUser as dynamic).Expires < DateTime.UtcNow) { return new RedirectResult(loginUrl); } HomeViewVM vm = new HomeViewVM(); vm.UserName = (sessionUser as dynamic).UserName; return View(vm); } } }