コード例 #1
0
        public void CreateUser(UserControllerRootPost payload)
        {
            // Validate Payload
            DataValidator.ValidateField(nameof(payload.UserIdentifier), payload.UserIdentifier);
            DataValidator.ValidateGuid(payload.UserIdentifier);

            // Create User
            _storageService.CreateUser(payload.UserIdentifier);
        }
コード例 #2
0
        public async Task ShouldCreateUser()
        {
            // Arrange
            var userIdentifier = Guid.NewGuid().ToString();
            var payload        = new UserControllerRootPost
            {
                UserIdentifier = userIdentifier
            };

            // Act
            var createResponse = await Shared.CreateUser(Client, payload);

            // Assert
            Assert.Equal(HttpStatusCode.OK, createResponse.StatusCode);
        }
コード例 #3
0
        public ActionResult Post([FromBody] UserControllerRootPost payload)
        {
            // Check if payload is present
            if (payload == null)
            {
                return(BadRequest("UserController (POST) - Missing payload."));
            }

            try
            {
                // Request user to be created
                _userService.CreateUser(payload);
            }
            catch (JsonSerializationException e)
            {
                // Return 422 if we can't parse the payload as JSON
                return(UnprocessableEntity(e.Message));
            }
            catch (InvalidCastException e)
            {
                // Return 422 if we can't parse the user identifier as GUID
                return(UnprocessableEntity(e.Message));
            }
            catch (InvalidOperationException e)
            {
                // Return 409 if the user already exists
                return(Conflict(e.Message));
            }
            catch (Exception e)
            {
                // Return 500 if any other exception occurred
                return(Problem(e.Message, e.Source, 500, "UserController (POST)", e.GetType().ToString()));
            }

            return(Ok());
        }