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); }