public virtual async Task <Result> DeleteAsync(TDeleteDto dto, string deletedBy, CancellationToken cancellationToken) { var bo = Mapper.Map <TEntity>(dto); var result = await DomainService.DeleteAsync(cancellationToken, bo, deletedBy).ConfigureAwait(false); if (result.IsFailure) { switch (result.ErrorType) { case ErrorType.ObjectValidationFailed: return(result); case ErrorType.DatabaseValidationFailed: return(result); case ErrorType.ObjectDoesNotExist: return(result); case ErrorType.ConcurrencyConflict: return(result); default: throw new ArgumentException(); } } if (HubContext != null) { await HubContext.DeletedAsync(dto); } return(Result.Ok()); }