public async Task <IActionResult> Post([FromBody] TestViewModel viewModel) { if (viewModel == null) { return(new BadRequestResult()); } try { var testModel = viewModel.Adapt <Test>(); testModel.UserId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; var createdTest = await _repository.CreateTest(viewModel.Adapt <Test>()); var createdTestViewModel = createdTest.Adapt <TestViewModel>(); createdTestViewModel.UserCanEdit = true; await _hubContext.Clients.All.TestCreated(); return(new JsonResult(createdTestViewModel, JsonSettings)); } catch (Exception e) { return(new StatusCodeResult(500)); } }
public async Task <IActionResult> Put([FromBody] TestViewModel viewModel) { if (viewModel == null) { return(new BadRequestResult()); } if ((await _repository.GetTest(viewModel.Id)).UserId != User.FindFirst(ClaimTypes.NameIdentifier)?.Value && !User.IsInRole("Admin")) { return(new UnauthorizedResult()); } try { var updatedTest = await _repository.UpdateTest(viewModel.Adapt <Test>()); if (updatedTest == null) { return(NotFound(new { Error = $"Error during updating test with identifier {viewModel.Id}" })); } var updatedTestViewModel = updatedTest.Adapt <TestViewModel>(); updatedTestViewModel.UserCanEdit = updatedTest.UserId == User.FindFirst(ClaimTypes.NameIdentifier)?.Value || User.IsInRole("Admin"); return(new JsonResult(updatedTestViewModel, JsonSettings)); } catch (Exception e) { return(new StatusCodeResult(500)); } }