/// <summary> /// Changes username asynchronously. /// </summary> /// <param name="request">The <see cref="UsernameChangeRequest" /> instance.</param> /// <returns>Returns the <see cref="UsernameChangeResponse" /> instance.</returns> public async Task <UsernameChangeResponse> ChangeUsernameAsync(UsernameChangeRequest request) { var handler = this._handlers.SingleOrDefault(p => p.CanHandle(request)); if (handler == null) { return(await Task.FromResult(default(UsernameChangeResponse))); } var ev = handler.CreateEvent(request) as UsernameChangedEvent; PopulateBaseProperties(ev); UsernameChangeResponse response; try { await this._processor.ProcessEventsAsync(new[] { ev }); response = new UsernameChangeResponse() { Data = new UsernameResponseData() { Value = request.Value } }; } catch (Exception ex) { response = new UsernameChangeResponse() { Error = new ResponseError() { Message = ex.Message, StackTrace = ex.StackTrace, } }; } return(await Task.FromResult(response)); }
public virtual async Task <UsernameChangeResponse> SetUsername([FromBody] UsernameChangeRequest request) { var response = await this._service.ChangeUsernameAsync(request); return(response); }