Пример #1
0
        public async Task <IActionResult> CreateUser([FromBody] CreateUserCommand command)
        {
            var outcome = from firebaseId in _createFirebaseUser(command.Email, command.Password)
                          from evt in command.ToEvent(Guid.NewGuid(), firebaseId).AsTask()
                          from _ in _saveAndPublishEventAsync(evt)
                          select evt;

            return(await outcome.Map(val => val.Match <IActionResult>(
                                         Succ: evt => Created($"users/{evt.EntityId}", null),
                                         Fail: errors => BadRequest(new { Errors = errors.Join() }))));
        }