public async Task <TCommandResult> Handle(TCommand request, CancellationToken cancellationToken) { //Fail Fast Validation request.Validate(); if (request.Invalid) { AddCommandNotifications(request.Notifications); await Notify(Notifications); return(new TCommandResult()); } //Execução da implementação var result = await HandleCommand(request); if (!result.Success && !string.IsNullOrEmpty(result.Message)) { AddNotification("result", result.Message); } await Notify(Notifications); //await RaiseEvents(); if (!_notificationService.HasNotifications()) { await this.PostHandle(); } return(result); }
public ValidationResultModel <TResult> Build <TResult>(TResult result) { if (_domainNotificationService.HasNotifications()) { return(ValidationResultModel <TResult> .Instantiate(_domainNotificationService .GetNotifications() .Select(n => { var resource = _localization.GetResource(n.Key, n.Value); if (!string.IsNullOrEmpty(resource)) { return new NotificationModel(n.Key, resource, n.Type); } else { return new NotificationModel(n.Key, n.Value, n.Type); } }).ToList(), result)); } return(ValidationResultModel <TResult> .Instantiate(result)); }