public Task <IActionResult> GetAsync( [FromServices] GetPageCommand command, [FromQuery] PageOptionFilter pageOptionFilter, CancellationToken cancellationToken) => command.ExecuteAsync(pageOptionFilter, cancellationToken);
public async Task <IActionResult> GetPage([FromBody] GetPageCommand command) { try { string viewPath = "Views/"; string title = "Home"; try { if (String.IsNullOrWhiteSpace(command.PathName) || command.PathName.Equals("/")) { viewPath = "Views/Home/Index"; } else if (command.PathName.Split('/', StringSplitOptions.RemoveEmptyEntries).Count() == 1) { viewPath = $"Views/{command.PathName.Replace("/","")}/Index"; } else { var parts = command.PathName.Split('/', StringSplitOptions.RemoveEmptyEntries); viewPath = $"Views/{parts[0]}/{parts[1]}"; } } catch (Exception) { viewPath = "Views/Home/Index"; } var page = LoadView(viewPath); dynamic jsonPage = JsonConvert.DeserializeObject <dynamic>(page); var id = jsonPage.layout; var name = jsonPage.content; if (!String.IsNullOrWhiteSpace((string)jsonPage.title)) { title = jsonPage.title; } if (!String.IsNullOrWhiteSpace((string)jsonPage.layout)) { page = LoadView((string)jsonPage.layout); if (jsonPage.content != null) { var regexView = new Regex(@"{\s*\""content\""\s*:\s*[\w-_""./]{1,}\s*\""\s*}"); var matchesViews = regexView.Matches(page); foreach (var match in matchesViews) { page = page.Replace(match.ToString(), JsonConvert.SerializeObject(jsonPage.content)); } } } else if (!String.IsNullOrWhiteSpace(jsonPage.content)) { page = JsonConvert.SerializeObject(jsonPage.content); } else if (!String.IsNullOrWhiteSpace(jsonPage.type)) { page = JsonConvert.SerializeObject(jsonPage); } else { return(await Response(null, new List <Notification> { new Notification("Page", "Página Mal Formatada") })); } page = LoadViews(page); page = LoadTemplates(page); dynamic a = JsonConvert.DeserializeObject(page); return(await Response(new { title = title, body = a }, null)); } catch (Exception ex) { return(await Response(null, new List <Notification> { new Notification("Page", ex.Message) })); } }