public IActionResult UpdateCanvasProductView()
        {
            var model   = new CanvasProductModel();
            var request = _httpContextAccessor.HttpContext.Request;

            try
            {
                var miscPlugins = _pluginFinder.GetPlugins <MyOrderServicePlugin>(storeId: _storeContext.CurrentStore.Id).ToList();
                if (miscPlugins.Count > 0)
                {
                    model.orderItemID = Int32.Parse(request.Query["orderitemid"]);
                    var productType = request.Query["productType"];
                    var webPlatform = request.Query["webPlatform"];
                    model.productType = productType;
                    model.webPlatform = webPlatform;

                    IWorkContext _workContext = EngineContext.Current.Resolve <IWorkContext>();

                    var customerID = _workContext.CurrentCustomer.Id;
                    model.canvasServerBaseURL = _ccSettings.ServerHostUrl;
                    var    tempModel = new CanvasProductModel();
                    string stateID   = GetCcStateID(model.orderItemID, productType, out tempModel, webPlatform);

                    model.userID     = tempModel.userID;
                    model.username   = tempModel.username;
                    model.gbsOrderId = tempModel.gbsOrderId;

                    model.stateID = stateID;
                    //get the product file names and put them in the model.
                    List <ProductFileModel>             productFiles = GetProductFiles(model.orderItemID, stateID, productType, tempModel.ccId, webPlatform);
                    GBSFileService.GBSFileServiceClient FileService  = new GBSFileService.GBSFileServiceClient();
                    string fileServiceaddress = _gbsOrderSettings.GBSPrintFileWebServiceBaseAddress;
                    model.productFileModels = FileService.populateProductFilesFromProductionFileName(productFiles, fileServiceaddress, _gbsOrderSettings.LoginId, _gbsOrderSettings.Password);
                    model.sessionID         = _httpContextAccessor.HttpContext.Session.Id;


                    return(View("~/Plugins/Order.GBS/Views/OrderGBS/UpdateCanvasProduct.cshtml", model));
                }
                else
                {
                    throw new Exception("This store does not have the OrdPlugin installed");
                }
            }
            catch (Exception ex)
            {
                var customer = _workContext.CurrentCustomer;
                _logger.Error("Error trying to load UpdateCanvasProductView = orderitemid = " + model.orderItemID, ex, customer);
                throw ex;
            }
        }
        public string GetCcStateID(int orderItemID, string productType, out CanvasProductModel designModel, string webPlatform = "NOP")
        {
            var    environment = getEnvironment();
            string stateID     = string.Empty;

            webPlatform = webPlatform.ToUpper();
            switch (webPlatform)
            {
            case "NOP":
            {
                Dictionary <string, Object> paramDicEx = new Dictionary <string, Object>();
                paramDicEx.Add("@nopOrderItemID", orderItemID);
                designModel = new CanvasProductModel();

                DBManager manager            = new DBManager();
                string    select             = "EXEC usp_getTblNOPOrderItem_byOrderItemId @nopOrderItemID";
                DataView  nopOrderItemResult = manager.GetParameterizedDataView(select, paramDicEx);
                int       ccId = 0;
                if (nopOrderItemResult.Count > 0)
                {
                    ccId                   = (int)nopOrderItemResult[0]["ccId"];
                    designModel.ccId       = ccId;
                    designModel.userID     = "nopcommerce_" + nopOrderItemResult[0]["CustomerId"];
                    designModel.username   = (string)nopOrderItemResult[0]["Username"];
                    designModel.gbsOrderId = (string)nopOrderItemResult[0]["gbsOrderID"];
                }
                else
                {
                    throw new Exception("Can't find order item - " + orderItemID);
                }

                var     design     = _ccService.GetDesign(ccId);
                dynamic designData = JsonConvert.DeserializeObject <Object>(design.Data);

                stateID = designData[productType + "-stateId"];
                break;
            }

            default:
            {
                Dictionary <string, Object> paramDicEx = new Dictionary <string, Object>();
                paramDicEx.Add("@OPID", orderItemID);
                designModel = new CanvasProductModel();

                DBManager manager         = new DBManager(_gbsOrderSettings.HOMConnectionString);
                string    select          = "EXEC usp_getCanvasStateFileInfo @OPID";
                DataView  orderItemResult = manager.GetParameterizedDataView(select, paramDicEx);
                if (orderItemResult.Count > 0)
                {
                    stateID                = (string)orderItemResult[0]["stateID"];
                    designModel.userID     = (string)orderItemResult[0]["UserID"];
                    designModel.username   = (string)orderItemResult[0]["Username"];
                    designModel.gbsOrderId = (string)orderItemResult[0]["gbsOrderID"];
                }
                else
                {
                    throw new Exception("Can't find order item - " + orderItemID);
                }

                break;
            }
            }


            return(stateID);
        }