예제 #1
0
        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);
        }
예제 #2
0
        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);
        }