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); }
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(); } }