/// <summary>
        /// Method initialize drag operation
        /// </summary>
        /// <param name="draggingOrders"></param>
        public void StartDragOrders(Collection <object> draggingOrdersAndStops, DragSource dragSource)
        {
            // Get orders from stops and orders.
            Collection <Order> draggingOrders = GetOrdersFromObjectsCollection(draggingOrdersAndStops);

            if (draggingOrders.Count == 0)
            {
                return;
            }

            // Decline dragging if orders and stops not belongs to the same date.
            bool isSameDate = _CheckOrdersAndStopsIsFromSameDate(draggingOrdersAndStops);

            if (!isSameDate)
            {
                string message = (string)App.Current.FindResource(DRAGGING_ORDERS_WITH_DIFFERENT_DAYS_PROHIBITED_RESOURCE_NAME);
                App.Current.Messenger.AddWarning(message);
                return;
            }

            // Create data object for drag and drop.
            IDataObject draggingObject = _CreateDraggingObject(draggingOrders);

            if (draggingObject == null)
            {
                return;
            }

            try
            {
                // Create adornment.
                IAdornment adornment = AdornmentFactory.CreateAdornment(draggingOrdersAndStops, dragSource);

                // Create feedbacker.
                using (DragDropFeedbacker feedbacker = new DragDropFeedbacker(adornment))
                {
                    if (DragStarted != null)
                    {
                        DragStarted(this, EventArgs.Empty);
                    }
                    DragDropEffects effect = DragDrop.DoDragDrop(feedbacker, draggingObject, DragDropEffects.None | DragDropEffects.Move);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            finally
            {
                if (DragEnded != null)
                {
                    DragEnded(this, EventArgs.Empty);
                }
            }
        }
        /// <summary>
        /// Method initialize drag operation
        /// </summary>
        /// <param name="draggingOrders"></param>
        public void StartDragOrders(Collection<object> draggingOrdersAndStops, DragSource dragSource)
        {
            // Get orders from stops and orders.
            Collection<Order> draggingOrders = GetOrdersFromObjectsCollection(draggingOrdersAndStops);
            if (draggingOrders.Count == 0)
                return;

            // Decline dragging if orders and stops not belongs to the same date.
            bool isSameDate = _CheckOrdersAndStopsIsFromSameDate(draggingOrdersAndStops);
            if (!isSameDate)
            {
                string message = (string)App.Current.FindResource(DRAGGING_ORDERS_WITH_DIFFERENT_DAYS_PROHIBITED_RESOURCE_NAME);
                App.Current.Messenger.AddWarning(message);
                return;
            }

            // Create data object for drag and drop.
            IDataObject draggingObject = _CreateDraggingObject(draggingOrders);

            if (draggingObject == null)
                return;

            try
            {
                // Create adornment.
                IAdornment adornment = AdornmentFactory.CreateAdornment(draggingOrdersAndStops, dragSource);

                // Create feedbacker.
                using (DragDropFeedbacker feedbacker = new DragDropFeedbacker(adornment))
                {
                    if (DragStarted != null)
                        DragStarted(this, EventArgs.Empty);
                    DragDropEffects effect = DragDrop.DoDragDrop(feedbacker, draggingObject, DragDropEffects.None | DragDropEffects.Move);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            finally
            {
                if (DragEnded != null)
                    DragEnded(this, EventArgs.Empty);
            }
        }