private void RequestImage(string imageSource)
        {
            ClearCurrentHttpImageRequest();

            if (string.IsNullOrEmpty(imageSource))
            {
                ShowDefaultImage();
                return;
            }

            if (imageSource.StartsWith("http", StringComparison.OrdinalIgnoreCase))
            {
                NewHttpImageRequested();

                _currentImageRequest           = new MvxResizedImageRequest <T>(imageSource);
                _currentImageRequest.Complete += CurrentImageRequestOnComplete;
                _currentImageRequest.Error    += CurrentImageRequestOnError;
                _currentImageRequest.Start();
            }
            else
            {
                var image = ImageFromLocalFile(imageSource);
                if (image == null)
                {
                    ShowErrorImage();
                }
                else
                {
                    NewImageAvailable(image);
                }
            }
        }
        private void ClearCurrentHttpImageRequest()
        {
            if (_currentImageRequest == null)
            {
                return;
            }

            _currentImageRequest.Complete -= CurrentImageRequestOnComplete;
            _currentImageRequest.Error    -= CurrentImageRequestOnError;

            _currentImageRequest = null;
        }