public JsonResult ProductImportProgress()
        {
            var    progress = _asyncState.Get <ShopConnectorProcessingInfo>(ShopConnectorPlugin.SystemName);
            string message;

            if (progress == null)
            {
                var completedModel = new ProductImportCompletedModel();
                _connectorService.SetupProductImportCompletedModel(completedModel);

                message = this.RenderPartialViewToString("ProductImportCompleted", completedModel);
            }
            else
            {
                var cancelButton = "<a href=\"{0}\" class=\"btn btn-danger btn-sm\">{1}</a>".FormatInvariant(
                    Url.Action("CancelImport", "ShopConnectorImport", new { area = ShopConnectorPlugin.SystemName }),
                    T("Common.Cancel"));

                message = "<div class=\"progress-stats\">{0}</div><div class=\"mt-2\">{1}</div>".FormatInvariant(progress.ToString(), cancelButton);
            }

            return(Json(new
            {
                NoRunningTask = progress == null,
                Message = message
            },
                        JsonRequestBehavior.AllowGet));
        }
        public void SetupProductImportCompletedModel(ProductImportCompletedModel model)
        {
            var settings = _services.Settings.LoadSetting <ShopConnectorSettings>();
            var logFile  = ShopConnectorFileSystem.ImportLogFile();

            if (File.Exists(logFile))
            {
                var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);

                model.ImportLogFileUrl = urlHelper.Action("ImportLog", "ShopConnectorImport", new { area = ShopConnectorPlugin.SystemName });
            }
        }