Example #1
0
        public async Task <IActionResult> GetUser([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            GetUserRequest request = new GetUserRequest()
            {
                Id = id
            };

            // We check if the user exists.
            ExistsUserRequest existsRequest = new ExistsUserRequest()
            {
                Id = request.Id
            };
            var exists = await _mediator.Send(existsRequest);

            if (!exists)
            {
                return(StatusCode(StatusCodes.Status404NotFound, "The user was not found."));
            }

            var user = await _mediator.Send(request);

            return(Ok(user));
        }
Example #2
0
        public async Task <IActionResult> DeleteUser([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            // We check if the user exists.
            ExistsUserRequest existsRequest = new ExistsUserRequest()
            {
                Id = id
            };
            var exists = await _mediator.Send(existsRequest);

            if (!exists)
            {
                return(StatusCode(StatusCodes.Status404NotFound, "The user was not found."));
            }

            DeleteUserRequest request = new DeleteUserRequest()
            {
                Id = id
            };

            // Removing the user, this is a hard remove, we could create
            // a soft if we can create a UNDO method.
            var deletedId = await _mediator.Send(request);

            return(Ok(deletedId));
        }
Example #3
0
        public async Task <IActionResult> GetAge([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            // We check if the user exists.
            ExistsUserRequest existsRequest = new ExistsUserRequest()
            {
                Id = id
            };
            var exists = await _mediator.Send(existsRequest);

            if (!exists)
            {
                return(StatusCode(StatusCodes.Status404NotFound, "The user was not found."));
            }

            var request = new GetUserRequest()
            {
                Id = id
            };

            // This is just to test the get age with the default datetime provider.
            var user = await _mediator.Send(request);

            return(Ok(user.GetAge(_dateTimeProvider)));
        }
Example #4
0
        public async Task <IActionResult> UpdateUser([FromBody] UpdateUserRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            // We check if the user exists.
            ExistsUserRequest existsRequest = new ExistsUserRequest()
            {
                Id = request.Id
            };
            var exists = await _mediator.Send(existsRequest);

            if (!exists)
            {
                return(StatusCode(StatusCodes.Status404NotFound, "The user was not found."));
            }

            // Custom validation
            if (request.Name.ToLower() == "Javier")
            {
                return(StatusCode(481, "The name is reserved."));
            }

            var id = await _mediator.Send(request);

            return(Ok(id));
        }