private async Task DeleteAllTranslations(CurrencyChangedEvent e)
        {
            var key    = GetKey(e.OldValue.Id);
            var values = await _localizedValuesService.GetAllByKey(key);

            foreach (var value in values)
            {
                await _localizedValuesService.DeleteAsync(value.Locale, value.Key, e.Username, e.CorrelationId);
            }
        }
        private async Task CreateDefaultTranslation(CurrencyChangedEvent e)
        {
            var defaultLocaleResult = await _localesService.GetDefaultLocale();

            if (defaultLocaleResult.IsFailed)
            {
                // cannot create localized values if default locale does not exist
                throw new DefaultLocaleDoesNotExistException("Default locale must exist before trying to create currency translations");
            }

            var value = new LocalizedValue()
            {
                Locale = defaultLocaleResult.Value.Id,
                Key    = GetKey(e.NewValue.Id),
                Value  = e.NewValue.InterestRateMdsCode,
            };

            await _localizedValuesService.AddAsync(value, e.Username, e.CorrelationId);
        }
Beispiel #3
0
        public async Task Handle(CurrencyChangedEvent e)
        {
            switch (e.ChangeType)
            {
            case ChangeType.Creation:
                break;

            case ChangeType.Edition:
                await _legacyAssetsCacheUpdater.HandleCurrencyUpdated(e.OldValue?.InterestRateMdsCode,
                                                                      _convertService.Convert <CurrencyContract, Currency>(e.NewValue), e.Timestamp);

                break;

            case ChangeType.Deletion:
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public async Task Handle(CurrencyChangedEvent e)
        {
            switch (e.ChangeType)
            {
            case ChangeType.Creation:
                // create ONE default translation
                await CreateDefaultTranslation(e);

                break;

            case ChangeType.Edition:
                // do nothing
                break;

            case ChangeType.Deletion:
                // delete ALL translations
                await DeleteAllTranslations(e);

                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }