public async Task <IActionResult> Put([FromRoute] IsoCode code, [FromBody] CurrencyUpdateModel model, CancellationToken token = default)
        {
            try
            {
                var updateCurrency = await _currencyService.GetCurrencyByIsoCode(code.IsoCodeValue, true, token)
                                     .ConfigureAwait(false);

                if (updateCurrency == null)
                {
                    return(NotFoundObjectResult(nameof(CurrencyService), "currency don't exist"));
                }

                await _repository.UpdateAsync(updateCurrency.Update(model), token : token).ConfigureAwait(false);

                await _currencyService.ClearCurrencyCacheAsync();

                return(OkObjectResult(updateCurrency.ToModel()));
            }
            catch (Exception e)
            {
                return(LogAndError500Response(nameof(CurrenciesController), e));
            }
        }