Example #1
0
        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);
        }
Example #2
0
        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());
            }
        }