private void ReloadConfiguration(string filename, bool continueOnError = true)
        {
            if (Filename != filename)
            {
                return;
            }

            lock (_mappings)
            {
                try
                {
                    _mappings.Clear();
                    var json       = _configurationFileReader.Read(Path.Combine(CurrentPath, filename));
                    var configRoot = JsonSerializer.Deserialize <ConfigurationRoot>(json, new JsonSerializerOptions {
                        PropertyNameCaseInsensitive = true
                    });
                    ApiToken   = configRoot?.ApiToken;
                    Endpoint   = configRoot?.Endpoint;
                    HttpMethod = configRoot?.HttpMethod;
                    var mappings = configRoot?.Mappings ?? new List <ConfigurationMapping>();
                    foreach (var mapping in mappings)
                    {
                        _mappings[mapping.Key] = mapping;
                    }
                }
                catch (Exception ex)
                {
                    if (continueOnError)
                    {
                        _logger.LogError(FormattableString.Invariant($"Unable to read configuration file ({Filename}), continuing with previous configuration"), ex);
                    }
                    else
                    {
                        _logger.LogError(FormattableString.Invariant($"Unable to read configuration file ({Filename}), stopping service."), ex);
                        throw;
                    }
                }
            }
        }