public async Task <IActionResult> Create(InputModels.MessageInput input) { if (ModelState.IsValid) { if (Request.Method == "GET" && input.BoardId != null) { input.SelectedBoards.Add((int)input.BoardId); } else { foreach (var board in await BoardRepository.Records()) { if (Request.Form.TryGetValue("Selected_" + board.Id, out var boardSelected)) { if (boardSelected == "True") { input.SelectedBoards.Add(board.Id); } } } } var serviceResponse = await MessageRepository.CreateTopic(input); return(await ForumViewResult.RedirectFromService(this, serviceResponse, FailureCallback)); } return(await FailureCallback()); async Task <IActionResult> FailureCallback() { ViewData["Smileys"] = await SmileyRepository.GetSelectorList(); var viewModel = new ViewModels.Messages.CreateTopicForm { Id = "0", BoardId = input.BoardId.ToString(), Body = input.Body }; return(await ForumViewResult.ViewResult(this, viewModel)); } }
public async Task <IActionResult> Create(int id = 0) { ViewData["Smileys"] = await SmileyRepository.GetSelectorList(); var board = (await BoardRepository.Records()).First(item => item.Id == id); if (Request.Query.TryGetValue("source", out var source)) { return(await Create(new InputModels.MessageInput { BoardId = id, Body = source })); } var viewModel = new ViewModels.Messages.CreateTopicForm { Id = "0", BoardId = id.ToString() }; return(await ForumViewResult.ViewResult(this, viewModel)); }
public async Task <IActionResult> Edit(InputModels.MessageInput input) { if (ModelState.IsValid) { var serviceResponse = await MessageRepository.EditMessage(input); if (input.SideLoad) { foreach (var kvp in serviceResponse.Errors) { ModelState.AddModelError(kvp.Key, kvp.Value); } } else { return(await ForumViewResult.RedirectFromService(this, serviceResponse, FailureCallback)); } } if (input.SideLoad) { var errors = ModelState.Keys.Where(k => ModelState[k].Errors.Count > 0).Select(k => new { propertyName = k, errorMessage = ModelState[k].Errors[0].ErrorMessage }); return(new JsonResult(errors)); } else { return(await FailureCallback()); } async Task <IActionResult> FailureCallback() { var viewModel = new ViewModels.Messages.CreateTopicForm { Id = "0", Body = input.Body, ElementId = "create-topic" }; return(await ForumViewResult.ViewResult(this, viewModel)); } }