async Task <TranslateResult <TSchema> > GetResult(TranslateContext <TEntity, TSchema> entityContext) { if (_observers.Count > 0) { await _observers.PreTranslateEntity(entityContext.Input, entityContext).ConfigureAwait(false); } var translateResult = entityContext.Result(entityContext.Input); if (_observers.Count > 0) { await _observers.PostTranslateEntity(translateResult, entityContext).ConfigureAwait(false); } return(translateResult); }
public async Task <TranslateResult <TSchema> > Translate(TranslateContext <TInput, TSchema> context) { var entity = _entityFactory.Create(); if (_observers.Count > 0) { await _observers.PreTranslateEntity(entity, context).ConfigureAwait(false); } await Task.WhenAll(_propertyTranslaters.Select(x => x.Apply(entity, context))).ConfigureAwait(false); var translateResult = context.Result(entity); if (_observers.Count > 0) { await _observers.PostTranslateEntity(translateResult, context).ConfigureAwait(false); } return(translateResult); }