async Task IGangEventHandler <GangManagerEvent <GangUserLink> > .HandleAsync( GangManagerEvent <GangUserLink> e) { var message = new MailMessage { Subject = "Gang Demo: Invite" }; message.To.Add(new MailAddress(e.Data.Email, e.Data.Name)); var uri = QueryHelpers.AddQueryString( _app.RootUrl + "/", new Dictionary <string, string> { { "link-code", e.Data.Code.Value } }); message.Body = $@"Hi {e.Data.Name}, An invite to the Gang Demo was requested for {e.Data.Email} {e.Data.Code.Value} enter the code or click the link below to gain access {uri}"; await _smtp.SendAsync(message); }
public void RaiseEvent <TEventData>( TEventData data, string gangId, byte[] memberId = null) { if (data == null) { throw new ArgumentNullException(nameof(data)); } lock (_events) { var e = new GangManagerEvent <TEventData>( data, new GangAudit(gangId, _sequence.Next(), memberId) ); _events.OnNext(e); _eventExecutor?.ExecuteAsync(e) .ContinueWith( t => { var ex = t.Exception.InnerException; _logger.LogError(ex, "Gang Manager Event Error In Handler"); RaiseEvent(new GangError(data, ex), gangId); }, TaskContinuationOptions.OnlyOnFaulted); } }
async Task IGangEventHandler <GangManagerEvent <GangAdded> > .HandleAsync(GangManagerEvent <GangAdded> e) { var host = _createHost(); await _manager.ManageAsync( new GangParameters(e.Audit.GangId), host ); }