public async Task <IHttpActionResult> EmailAvailable(string email)
        {
            if (string.IsNullOrWhiteSpace(email))
            {
                throw new ArgumentException($"{nameof(email)} is null or empty");
            }

            var existingUser = await _userService.GetUserAsync(email);

            return(Ok(existingUser == null && !_workflowUserActivityService.IsUserBeingCreated(email)));
        }
        public async Task Consume(ConsumeContext <ICreateUserCommand> context)
        {
            if (string.IsNullOrWhiteSpace(context.Message.Email))
            {
                throw new ArgumentException(nameof(context.Message.Email));
            }

            var existingUser = await _userService.GetUserAsync(context.Message.Email);

            if (existingUser != null)
            {
                throw new Exception("User already exists");
            }

            if (_workflowUserActivityService.IsUserBeingCreated(context.Message.Email))
            {
                throw new Exception("Create user already started");
            }

            await _createUserWorkflowBuilder.Execute(context);
        }