/// <summary>
        /// Calculates the client report from cached result.
        /// </summary>
        /// <returns></returns>
        public string CalcClientReportFromCachedResult()
        {
            int      count        = this.ClientReports.Count;
            string   xslString    = string.Empty;
            TimeSpan timeInterval = DateExtensions.TimeIntervalSinceReferenceDate(DateTime.UtcNow);

            if (!string.IsNullOrEmpty(this.XslName))
            {
                //string xslFileName = ServerSession.CurrentSession.FileStore.ImagePathForName(this.XslName);
                //xslFileName = xslFileName.StringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding);
                //xslString = $"<?xml-stylesheet type=\"text/xsl\" href=\"{xslFileName}?time={timeInterval}\"?>";
            }

            UPXmlMemoryWriter writer = new UPXmlMemoryWriter();

            if (!string.IsNullOrEmpty(this.RootXmlName))
            {
                writer.WriteElementStart(this.RootXmlName);
            }
            else
            {
                writer.WriteElementStart("Results");
            }

            for (int i = 0; i < count; i++)
            {
                object result = this.resultsForClientReports[i];
                if (result != null)
                {
                    UPWebContentClientReport clientReport = this.ClientReports[i];
                    ((UPCRMResult)result).SerializeRootElementName(writer, clientReport.RootNodeName);
                }
            }

            //for (int j = 0; j < signatureImageTagNames.Count && j < signaturePathNames.Count; j++)
            //{
            //    writer.WriteElementValue(signatureImageTagNames[j], $"{signaturePathNames[j]}?time={timeInterval}");
            //}

            writer.WriteLocaleSettingsElement();
            writer.WriteElementEnd();
            return($"<?xml version=\"1.0\" encoding=\"UTF-8\"?>{xslString}{writer.XmlContentStringAmpDecoded()}");
        }