public async Task <ActionResult> Edit(GameFieldEditViewModel viewModel) { var project = await ProjectRepository.GetProjectAsync(viewModel.ProjectId); var field = project.ProjectFields.SingleOrDefault(e => e.ProjectFieldId == viewModel.ProjectFieldId); if (field == null) { return(HttpNotFound()); } if (!ModelState.IsValid) { viewModel.FillNotEditable(field, CurrentUserId); return(View(viewModel)); } try { await FieldSetupService.UpdateFieldParams(project.ProjectId, field.ProjectFieldId, viewModel.Name, viewModel.DescriptionEditable, viewModel.CanPlayerEdit, viewModel.CanPlayerView, viewModel.IsPublic, (MandatoryStatus)viewModel.MandatoryStatus, viewModel.ShowForGroups.GetUnprefixedGroups(), viewModel.ValidForNpc, viewModel.IncludeInPrint, viewModel.ShowForUnApprovedClaim); return(ReturnToIndex(project)); } catch (Exception exception) { ModelState.AddException(exception); viewModel.FillNotEditable(field, CurrentUserId); return(View(viewModel)); } }
/// <summary> /// Get field edit page /// </summary> public async Task <GameFieldEditViewModel> EditPageAsync(int projectFieldId) { var field = await ProjectRepository.GetProjectField(CurrentProject.ProjectId, projectFieldId); if (field == null) { return(null); } var model = new GameFieldEditViewModel(field, CurrentUser.UserId); return(FillFromProject(field.Project, model)); }
public IViewComponentResult Invoke(GameFieldEditViewModel field) => View("FieldRow", field);