public async Task <Result <CurrenciesErrorCodes> > InsertAsync(Currency currency, string username,
                                                                       string correlationId)
        {
            var result = await _currenciesRepository.InsertAsync(currency);

            if (result.IsSuccess)
            {
                await _auditService.TryAudit(correlationId, username, currency.Id, AuditDataType.Currency,
                                             currency.ToJson());

                await PublishCurrencyChangedEvent(null, currency, username, correlationId, ChangeType.Creation);
            }

            return(result);
        }