private void OnFinishRenderingTile(object sender, TileProgressEventArgs args)
        {
            m_tileRuns.Add(DateTime.Now - m_beginTile);
            m_tileCount++;
            m_grandTotalTileCount++;

            //Update display, after 1000 tiles
            if (m_tileRuns.Count > 500 || (DateTime.Now - m_lastUpdate).TotalSeconds > 5 || m_cancel)
            {
                long d = 0;
                foreach (TimeSpan ts in m_tileRuns)
                {
                    d += ts.Ticks;
                }

                d /= m_tileRuns.Count;

                //For all other than the first calculation, we use the previous counts too
                if (m_grandTotalTileCount != m_tileRuns.Count)
                {
                    d = (d + m_prevDuration.Ticks) / 2;
                }

                m_prevDuration = new TimeSpan(d);
                TimeSpan duration = new TimeSpan(d * m_totalTiles);

                m_tileRuns.Clear();
                m_lastUpdate = DateTime.Now;

                DisplayProgress(sender, args);
            }
        }
Example #2
0
        private static void DisplayProgress(object sender, TileProgressEventArgs args)
        {
            if (hasConsole)
            {
                Console.Clear();
            }

            var map        = args.Map;
            var group      = args.Group;
            var scaleindex = args.ScaleIndex;

            Console.WriteLine(string.Format(Strings.ConsoleUpdateTime.Replace("\\t", "\t"), DateTime.Now));
            Console.WriteLine(string.Format(Strings.ConsoleCurrentMap.Replace("\\t", "\t"), map.ResourceId, mapCount, map.Parent.Maps.Count));
            Console.WriteLine(string.Format(Strings.ConsoleCurrentGroup.Replace("\\t", "\t"), group, groupCount, map.TileSet.GroupCount));
            Console.WriteLine(string.Format(Strings.ConsoleCurrentScale.Replace("\\t", "\t"), map.TileSet.GetScaleAt(Array.IndexOf <int>(map.ScaleIndexMap, scaleindex)), Array.IndexOf <int>(map.ScaleIndexMap, scaleindex) + 1, map.TileSet.ScaleCount));
            Console.WriteLine(string.Format(Strings.ConsoleCurrentTile.Replace("\\t", "\t"), tileCount, totalTiles));
            Console.WriteLine();
            Console.WriteLine(string.Format(Strings.ConsoleGroupDuration.Replace("\\t", "\t"), DateTime.Now - beginGroup));
            Console.WriteLine(string.Format(Strings.ConsoleGroupEstimate.Replace("\\t", "\t"), new TimeSpan(prevDuration.Ticks * totalTiles)));

            if (exceptionList.Count != 0)
            {
                Console.WriteLine();
                Console.WriteLine(string.Format(Strings.ConsoleErrorSummary, exceptionList.Count, exceptionList[exceptionList.Count - 1].ToString()));
            }
        }
Example #3
0
 private static void OnBeginRenderingScale(object sender, TileProgressEventArgs args)
 {
     beginScale = DateTime.Now;
     if (m_loggableProgress)
     {
         Console.WriteLine(string.Format(Strings.ConsoleOperationBeginScale, beginMap, args.Map.TileSet.GetScaleAt(args.ScaleIndex), args.ScaleIndex, args.Map.Resolutions));
     }
 }
        public void Test_TileEventArgs()
        {
            var mdfId      = "Library://Samples/Sheboygan/MapsTiled/Sheboygan.MapDefinition";
            var conn       = new Mock <IServerConnection>();
            var mockResSvc = new Mock <IResourceService>();

            var mdf = ObjectFactory.CreateMapDefinition(new Version(1, 0, 0), "Sheboygan");

            mdf.ResourceID = mdfId;
            mdf.InitBaseMap();
            var group = mdf.BaseMap.AddBaseLayerGroup("Base Layer Group");

            group.Visible = true;
            foreach (double scale in SCALE_LIST.Reverse())
            {
                mdf.BaseMap.AddFiniteDisplayScale(scale);
            }
            mdf.SetExtents(-87.764986990962839, 43.691398128787782, -87.695521510899724, 43.797520000480347);

            mockResSvc.Setup(r => r.GetResource(It.Is <string>(arg => arg == mdfId))).Returns(mdf);

            conn.Setup(c => c.ResourceService).Returns(mockResSvc.Object);

            var tileRuns = new TilingRunCollection(conn.Object);

            tileRuns.Config.DPI                   = 96;
            tileRuns.Config.MetersPerUnit         = 111319.490793274;
            tileRuns.Config.RandomizeTileSequence = false;
            tileRuns.Config.RetryCount            = 5;
            tileRuns.Config.ThreadCount           = 1;
            tileRuns.Config.TileWidth             = 300;
            tileRuns.Config.TileHeight            = 300;

            var tileConf = new MapTilingConfiguration(tileRuns, mdfId);

            var tileRun = new TilingRunCollection(conn.Object);
            var conf    = new MapTilingConfiguration(tileRun, mdfId);
            var args4   = new TileProgressEventArgs(CallbackStates.StartRenderTile, conf, "Base Layer Group", 1, 2, 3, false);

            Assert.Equal(CallbackStates.StartRenderTile, args4.State);
            Assert.Equal(conf, args4.Map);
            Assert.Equal("Base Layer Group", args4.Group);
            Assert.Equal(1, args4.ScaleIndex);
            Assert.Equal(2, args4.Row);
            Assert.Equal(3, args4.Column);
            Assert.False(args4.Cancel);

            var args5 = new TileRenderingErrorEventArgs(CallbackStates.StartRenderAllMaps, conf, "Base Layer Group", 1, 2, 3, new Exception("uh-oh"));

            Assert.Equal(CallbackStates.StartRenderAllMaps, args5.State);
            Assert.Equal(conf, args5.Map);
            Assert.Equal("Base Layer Group", args5.Group);
            Assert.Equal(1, args5.ScaleIndex);
            Assert.Equal(2, args5.Row);
            Assert.Equal(3, args5.Column);
            Assert.NotNull(args5.Error);
            Assert.Equal("uh-oh", args5.Error.Message);
        }
Example #5
0
        private static void OnFinishRenderingGroup(object sender, TileProgressEventArgs args)
        {
            TimeSpan duration = DateTime.Now - beginGroup;

            if (m_loggableProgress)
            {
                Console.WriteLine(string.Format(Strings.ConsoleOperationFinishGroup, DateTime.Now, args.Group, duration));
            }
        }
Example #6
0
 private static void OnBeginRenderingMap(object sender, TileProgressEventArgs args)
 {
     mapCount++;
     beginMap = DateTime.Now;
     if (m_loggableProgress)
     {
         Console.WriteLine(string.Format(Strings.ConsoleOperationBeginMap, beginMap, args.Map.ResourceId));
     }
 }
Example #7
0
        private static void OnFinishRenderingScale(object sender, TileProgressEventArgs args)
        {
            TimeSpan duration = DateTime.Now - beginScale;

            if (m_loggableProgress)
            {
                Console.WriteLine(string.Format(Strings.ConsoleOperationFinishScale, DateTime.Now, args.Map.TileSet.GetScaleAt(args.ScaleIndex), duration));
            }
        }
Example #8
0
        private static void OnFinishRenderingMap(object sender, TileProgressEventArgs args)
        {
            groupCount = 0;
            TimeSpan duration = DateTime.Now - beginMap;

            if (m_loggableProgress)
            {
                Console.WriteLine(string.Format(Strings.ConsoleOperationFinishMap, DateTime.Now, args.Map.ResourceId, duration));
            }
        }
 private void OnFinishRenderingMaps(object sender, TileProgressEventArgs args)
 {
     if (this.InvokeRequired)
     {
         this.Invoke(new System.Threading.ThreadStart(DoClose));
     }
     else
     {
         DoClose();
     }
 }
Example #10
0
        private static void OnBeginRenderingGroup(object sender, TileProgressEventArgs args)
        {
            groupCount++;
            beginGroup = DateTime.Now;

            if (m_loggableProgress)
            {
                Console.WriteLine(string.Format(Strings.ConsoleOperationBeginGroup, beginGroup, args.Group, 1, 1));
            }

            tileRuns   = new List <TimeSpan>();
            tileCount  = 0;
            totalTiles = args.Map.TotalTiles;
        }
        private void DisplayProgress(object sender, TileProgressEventArgs args)
        {
            if (m_cancel)
            {
                args.Cancel = true;
            }

            if (this.InvokeRequired)
            {
                TileProgressEventHandler action = DisplayProgress;
                this.Invoke(action, new object[] { sender, args });
            }
            else
            {
                label1.Text = string.Format(Strings.CurrentGroupStatus, args.Group, args.Map.ResourceId);

                tilePG.Value  = (int)Math.Max(Math.Min((m_tileCount / (double)m_totalTiles) * (tilePG.Maximum - tilePG.Minimum), tilePG.Maximum), tilePG.Minimum);
                totalPG.Value = (int)Math.Max(Math.Min((m_grandTotalTileCount / (double)m_grandTotalTiles) * (totalPG.Maximum - totalPG.Minimum), totalPG.Maximum), totalPG.Minimum);

                var percentage = (int)(((double)m_grandTotalTileCount / (double)m_grandTotalTiles) * 100.0);
                this.Text = $"{m_origTitle} - ({percentage}%)";

                if (m_failCount == 0)
                {
                    tileCounter.Text = string.Format(Strings.CurrentTileCounter, m_grandTotalTileCount, m_grandTotalTiles, string.Empty);
                }
                else
                {
                    tileCounter.Text = string.Format(Strings.CurrentTileCounter, m_grandTotalTileCount, m_grandTotalTiles, string.Format(Strings.TileErrorCount, m_failCount));
                }

                TimeSpan elapsed = DateTime.Now - m_grandBegin;
                DateTime finish  = DateTime.Now + (new TimeSpan(m_prevDuration.Ticks * m_grandTotalTiles) - elapsed);
                TimeSpan remain  = finish - DateTime.Now;

                if (finish < DateTime.Now)
                {
                    finishEstimate.Text = Strings.InsufficientTimePassed;
                }
                else
                {
                    finishEstimate.Text = string.Format(Strings.RemainingTime, finish.ToShortTimeString(), $"{Math.Floor(remain.TotalHours)}:{remain.Minutes.ToString("00")}:{remain.Seconds.ToString("00")}");
                }
            }
        }
Example #12
0
        private static void OnFinishRenderingTile(object sender, TileProgressEventArgs args)
        {
            tileRuns.Add(DateTime.Now - beginTile);
            tileCount++;

            //Update display, after 1000 tiles
            if (tileRuns.Count > 500 || (DateTime.Now - lastUpdate).TotalSeconds > 5)
            {
                long d = 0;
                foreach (TimeSpan ts in tileRuns)
                {
                    d += ts.Ticks;
                }

                d /= tileRuns.Count;

                //For all other than the first calculation, we use the previous counts too
                if (tileCount != tileRuns.Count)
                {
                    d = (d + prevDuration.Ticks) / 2;
                }

                prevDuration = new TimeSpan(d);
                TimeSpan duration = new TimeSpan(d * totalTiles);

                tileRuns.Clear();
                lastUpdate = DateTime.Now;

                if (m_loggableProgress)
                {
                    Console.WriteLine(string.Format(Strings.ConsoleOperationFinishTile, tileCount, totalTiles, args.Group, duration));
                }
                else
                {
                    DisplayProgress(sender, args);
                }
            }
        }
 private void OnBeginRenderingMap(object sender, TileProgressEventArgs args) => m_tileCount = 0;
 private void OnBeginRenderingGroup(object sender, TileProgressEventArgs args)
 {
     m_totalTiles = args.Map.TotalTiles;
     m_tileCount  = 0;
 }
 private void OnBeginRenderingScale(object sender, TileProgressEventArgs args)
 {
 }
 private void OnBeginRenderingTile(object sender, TileProgressEventArgs args) => m_beginTile = DateTime.Now;
Example #17
0
 private static void OnBeginRenderingTile(object sender, TileProgressEventArgs args)
 {
     beginTile = DateTime.Now;
 }