public async Task <UniversityResponseModel> PostUniversity( [FromForm] UniversityRequestModel model, CancellationToken cancellationToken ) { cancellationToken.ThrowIfCancellationRequested(); var command = new CreateUniversityCommand(model.Name, model.ShortName, model.Description); var universityId = await _mediator.Send(command, cancellationToken); var query = new FindUniversityByIdQuery(universityId); var university = await _mediator.Send(query, cancellationToken); var response = _mapper.Map <UniversityResponseModel>(university); return(response); }
public async Task <IActionResult> CreateUniversityAsync([FromBody] CreateUniversityRequest model, CancellationToken token) { var userId = _userManager.GetLongUserId(User); try { var command = new CreateUniversityCommand(userId, model.Name, model.Country); await _commandBus.DispatchAsync(command, token); var user = await _userManager.GetUserAsync(User); await _signInManager.RefreshSignInAsync(user); return(Ok()); } catch (DuplicateRowException) { return(Conflict()); } }