protected override string GetDebugInfo()
        {
            var output = new StringBuilder();

            output.AppendLine("DispatcherWrapper.Uptime = " + DispatcherWrapper.UptimeTimer.Elapsed);
            output.AppendLine("------------");

            if (ComponentControl.IsFake() == false)
            {
                output.AppendLine("Api.EventManager.GetQueueSize(): " + DataSizeHelper.GetSizeText(ComponentControl.Client.EventManager.GetQueueSize()));
                output.AppendLine("Api.WebLogManager.GetQueueSize(): " + DataSizeHelper.GetSizeText(ComponentControl.Client.WebLogManager.GetQueueSize()));
            }
            output.AppendLine("------------");

            output.AppendLine("");
            foreach (var cache in AllCaches.All)
            {
                output.AppendLine("--- " + cache.GetType() + " ---");
                output.AppendLine("Count: " + cache.Count);
                output.AppendLine("Size: " + DataSizeHelper.GetSizeText(cache.GetSize()));
                output.AppendLine("Changed: " + cache.GetChangedCount());
                output.AppendLine("LastSaveChangesDate: " + cache.GetLastSaveChangesDate());
                output.AppendLine("AddCacheCount: " + cache.AddCacheCount);
                output.AppendLine("AddDataBaseCount: " + cache.AddDataBaseCount);
                output.AppendLine("UpdateCacheCount: " + cache.UpdateCacheCount);
                output.AppendLine("UpdateDataBaseCount: " + cache.UpdateDataBaseCount);
                output.AppendLine("Generation: " + cache.Generation);
                output.AppendLine("LastSaveException: " + GetExceptionTempString(cache.LastSaveException));

                output.AppendLine("");
            }

            return(output.ToString());
        }
        public void GetDataSizeTest()
        {
            // целые размеры
            Assert.Equal("0 байт", DataSizeHelper.GetSizeText(0));
            Assert.Equal("10 байт", DataSizeHelper.GetSizeText(10));
            Assert.Equal("100 байт", DataSizeHelper.GetSizeText(100));
            Assert.Equal("1 000 байт", DataSizeHelper.GetSizeText(1000));

            Assert.Equal("1 КБ", DataSizeHelper.GetSizeText(1024));
            Assert.Equal("10 КБ", DataSizeHelper.GetSizeText(10240));
            Assert.Equal("100 КБ", DataSizeHelper.GetSizeText(102400));
            Assert.Equal("1 000 КБ", DataSizeHelper.GetSizeText(1024000));

            Assert.Equal("1 МБ", DataSizeHelper.GetSizeText(1048576));
            Assert.Equal("10 МБ", DataSizeHelper.GetSizeText(10485760));
            Assert.Equal("100 МБ", DataSizeHelper.GetSizeText(104857600));
            Assert.Equal("1 000 МБ", DataSizeHelper.GetSizeText(1048576000));

            Assert.Equal("1 ГБ", DataSizeHelper.GetSizeText(1073741824));
            Assert.Equal("10 ГБ", DataSizeHelper.GetSizeText(10737418240));
            Assert.Equal("100 ГБ", DataSizeHelper.GetSizeText(107374182400));
            Assert.Equal("1 000 ГБ", DataSizeHelper.GetSizeText(1073741824000));
            Assert.Equal("1 024 ГБ", DataSizeHelper.GetSizeText(1099511627776));
            Assert.Equal("2 048 ГБ", DataSizeHelper.GetSizeText(1099511627776 * 2));

            // дробные размеры
            Assert.Equal("1.1 КБ", DataSizeHelper.GetSizeText(1024 + 102));
            Assert.Equal("1.15 КБ", DataSizeHelper.GetSizeText(1024 + 150));
            Assert.Equal("100 КБ", DataSizeHelper.GetSizeText(1024 * 100 + 102));
        }