public async Task <IReadOnlyCollection <CurrencyRate> > GetCurrencyRatesToDate(DateTime date,
                                                                                       CancellationToken cancellationToken = default)
        {
            var result = await CallWithCancellation(SoapClient.GetCursOnDateXMLAsync(date), cancellationToken);

            XmlDocument xmlDocument = new XmlDocument();
            var         root        = xmlDocument.CreateElement("root");

            root.InnerXml = result.InnerXml;
            xmlDocument.AppendChild(root);

            var response = Deserialize <GetCursOnDateResponse>(xmlDocument);

            foreach (var rate in response.Rates)
            {
                rate.Name = rate.Name.Trim();
            }

            return(response.Rates);
        }