/// <summary>
        /// Drag complete.
        /// </summary>
        /// <param name="destination"> The destination layerage. </param>
        /// <param name="source"> The source layerage. </param>
        /// <param name="destinationOverlayMode"> The destination OverlayMode. </param>
        /// <param name="sourceIsSelected"> The source SelectMode. </param>
        public static void DragComplete(Layerage destination, Layerage source, OverlayMode destinationOverlayMode, bool sourceIsSelected)
        {
            if (source is null)
            {
                return;
            }
            if (destination is null)
            {
                return;
            }
            ILayer destinationLayer = destination.Self;
            ILayer sourceLayer      = source.Self;

            destinationLayer.Control.OverlayMode = OverlayMode.None;
            if (destinationLayer.IsSelected)
            {
                return;
            }
            if (destinationOverlayMode == OverlayMode.None)
            {
                return;
            }

            if (source == destination)
            {
                return;
            }


            if (sourceIsSelected == false)
            {
                switch (destinationOverlayMode)
                {
                case OverlayMode.Top:
                    LayerManager.Insert(destination, source, isBottomInsert: false);
                    break;

                case OverlayMode.Center:
                    LayerManager.Add(destination, source);
                    break;

                case OverlayMode.Bottom:
                    LayerManager.Insert(destination, source, isBottomInsert: true);
                    break;
                }
            }
            else
            {
                // Layerages
                IEnumerable <Layerage> selectedLayerages = LayerManager.GetAllSelected();

                switch (destinationOverlayMode)
                {
                case OverlayMode.Top:
                    LayerManager.InsertRange(destination, selectedLayerages, isBottomInsert: false);
                    break;

                case OverlayMode.Center:
                    LayerManager.AddRange(destination, selectedLayerages);
                    break;

                case OverlayMode.Bottom:
                    LayerManager.InsertRange(destination, selectedLayerages, isBottomInsert: true);
                    break;
                }
            }
        }