private void UpdateViewportPos()
        {
            if (isDragging)
            {
                return;
            }

            float viewTrackPos = UtilityMethod.GetAxisValue(_scrollRect.content.anchoredPosition, directionStat);
            float viewportSize = UtilityMethod.GetRectValue(_scrollRect.viewport.rect, directionStat);

            //Debug.Log("_scrollViewLength " + _scrollViewLength);
            //Debug.Log("viewTrackPos " + viewTrackPos);
            //Debug.Log("viewportSize " + viewportSize);

            //Align ScrollRect On top, if condition meet
            if (_baseOrientation.AlignTopValidation(viewTrackPos, _scrollViewLength, viewportSize))
            {
                _scrollRect.content.anchoredPosition = _baseOrientation.AlignTopTargetPos(_scrollViewLength, viewportSize, viewTrackPos);
                return;
            }

            //Align ScrollRect On bottom, if condition meet
            if (_baseOrientation.AlignBottomValidation(viewTrackPos, _scrollViewLength, viewportSize))
            {
                _scrollRect.content.anchoredPosition = _baseOrientation.AlignBottomTargetPos(_scrollViewLength, viewportSize, viewTrackPos);

                if (OnLastScrollSlot != null)
                {
                    OnLastScrollSlot();
                }

                return;
            }
        }