public async Task <IActionResult> Edit([FromRoute] int ID, [FromForm] EditBoardViewModel editBoardViewModel, [FromRoute] int pageNumber) { TryValidateModel(editBoardViewModel); if (ID != editBoardViewModel.ID) { return(NotFound()); } if (ModelState.IsValid) { Board board = await mDbContext.Boards.FirstOrDefaultAsync(m => m.ID == ID); board.Subject = editBoardViewModel.Subject; board.Content = editBoardViewModel.Content; board.WriteDate = editBoardViewModel.WriteDate; try { mDbContext.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!boardExists(editBoardViewModel.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index), "Boards", new { pageNumber })); } return(View(editBoardViewModel)); }
public async Task SaveBoard(EditBoardViewModel boardToSave, bool runBoardAfterSaving) { var eventArgs = new BoardSavingEventArgs { RunBoardAfterSaving = runBoardAfterSaving }; if (string.IsNullOrEmpty(boardToSave.Id)) { eventArgs.SavedBoard = new QuestionBoard { Name = boardToSave.Name, Question = boardToSave.Question, Answers = boardToSave.Answers, CreatedDate = _dateTimeService.Now }; await _boardRepoService.SaveAsync(eventArgs.SavedBoard); _feudHostService.AddBoard(eventArgs.SavedBoard); } else { eventArgs.SavedBoard = _feudHostService.GetBoardForHost(boardToSave.Id); eventArgs.SavedBoard.Name = boardToSave.Name; eventArgs.SavedBoard.Question = boardToSave.Question; eventArgs.SavedBoard.Answers = boardToSave.Answers; await _boardRepoService.SaveAsync(eventArgs.SavedBoard); } BoardChangesSaving?.Invoke(this, eventArgs); }
public async Task <IActionResult> Edit([FromRoute] int?ID, [FromRoute] int pageNumber) { if (ID == null) { return(NotFound()); } Board board = await mDbContext.Boards.FindAsync(ID); if (board == null) { return(NotFound()); } EditBoardViewModel editBoardViewModel = new EditBoardViewModel { ID = board.ID, UserName = board.UserName, Subject = board.Subject, Content = board.Content, WriteDate = board.WriteDate, PageIndex = pageNumber }; return(View(editBoardViewModel)); }
protected EditBoardViewModel SanitizeBoard(EditBoardViewModel boardToSave) { boardToSave.Name = Sanitize(boardToSave.Name, 50); boardToSave.Question = Sanitize(boardToSave.Question, 200); var emptyAnswer = boardToSave.Answers.FirstOrDefault(x => string.IsNullOrWhiteSpace(x.Text)); while (emptyAnswer != null) { boardToSave.Answers.Remove(emptyAnswer); for (int i = 0; i < boardToSave.Answers.Count; i++) { boardToSave.Answers[i].Number = i + 1; } emptyAnswer = boardToSave.Answers.FirstOrDefault(x => string.IsNullOrWhiteSpace(x.Text)); } foreach (var answer in boardToSave.Answers) { answer.Text = Sanitize(answer.Text, 200); } for (var i = boardToSave.Answers.Count + 1; i <= 10; i++) { boardToSave.Answers.Add(new QuestionAnswer { Number = i }); } return(boardToSave); }
public void EditBoard(string boardId) { try { var board = FeudHostService.GetBoardForHost(boardId); BoardToEdit = new EditBoardViewModel { Id = board.Id, Name = board.Name, Question = board.Question }; for (var i = 0; i < board.Answers.Count; i++) { BoardToEdit.Answers[i].Text = board.Answers[i].Text; BoardToEdit.Answers[i].Points = board.Answers[i].Points; } CurrentEditTab = Shared.EditBoard.TabKeys.Edit; InvokeAsync(StateHasChanged); } catch (Exception ex) { Program.Logger.Log(NLog.LogLevel.Error, ex); NavigationManager.NavigateTo("error"); } }
public ActionResult InsertEditBoardView(int boardId, string name, string description) { EditBoardViewModel ebvm = new EditBoardViewModel() { BoardId = boardId, Name = name, Description = description }; return(PartialView("_EditBoard", ebvm)); }
public IActionResult Edit(EditBoardViewModel model) { if (ModelState.IsValid) { Board board = new Board(); board.Title = model.Title; board.Content = model.Content; board.UserId = model.UserId; board.No = model.No; if (_boardBll.UpdateBoard(board)) { return(Redirect("Index")); } } return(View()); }
public void ResetBoardAfterEditing(object sender, EventArgs e) { try { Program.Logger.Log(NLog.LogLevel.Debug, $"FeudList.ResetBoardAfterEditing"); BoardToEdit = new EditBoardViewModel(); CurrentEditTab = Shared.EditBoard.TabKeys.Import; InvokeAsync(StateHasChanged); } catch (Exception ex) { Program.Logger.Log(NLog.LogLevel.Error, ex); NavigationManager.NavigateTo("error"); } }
protected override async Task OnInitializedAsync() { try { BoardToEdit = new EditBoardViewModel(); await FeudHostService.LoadBoardsAsync(); Boards = FeudHostService.GetBoardsForHost(); Program.Logger.Log(NLog.LogLevel.Debug, $"FeudList.OnInitialized - adding event handlers"); BoardEditingService.BoardChangesSaving += SaveBoard; BoardEditingService.BoardChangesCancelled += ResetBoardAfterEditing; } catch (Exception ex) { Program.Logger.Log(NLog.LogLevel.Error, ex); NavigationManager.NavigateTo("error"); } }
public List <string> Validate(EditBoardViewModel board) { var failures = new List <string>(); if (string.IsNullOrWhiteSpace(board.Name)) { failures.Add("Name is required."); } if (string.IsNullOrWhiteSpace(board.Question)) { failures.Add("Question is required."); } if (board.Answers == null || !board.Answers.Any() || board.Answers.All(x => string.IsNullOrWhiteSpace(x.Text))) { failures.Add("At least one Answer is required"); } return(failures); }