protected void OnNext(object sender, EventArgs e) { // instantiate canvasCoord var canvasCoord = new CanvasCoordConverter(850, 550, PtMin, PtMax); // read box positions serialized as Json in field HFBoxArray string sValue = HFBoxArray.Value; var bposJS = JsonConvert.DeserializeObject <IList <BoxPositionJS> >(sValue); // convert array of BoxPositionJS to BoxPositionIndexed array if (null != bposJS) { var listBoxPositions = new List <BoxPositionIndexed>(); foreach (var bpjs in bposJS) { var listIndex = canvasCoord.ToBoxPositionIndexed(bpjs, DimCase); listBoxPositions.AddRange(listIndex); } // sort according to index BoxPositionIndexed.Sort(ref listBoxPositions); // save session wide BoxPositions = listBoxPositions; // to validation page Response.Redirect("ValidationWebGL.aspx"); } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { CanvasCoordConverter canvasCoord = new CanvasCoordConverter(850, 550, PtMin, PtMax); // pallet dimensions var palletTopLeft = canvasCoord.PtWorldToCanvas(new Vector2D(0.0, DimPallet.Y)); var palletBottomRight = canvasCoord.PtWorldToCanvas(new Vector2D(DimPallet.X, 0.0)); _palletDims.X1 = palletTopLeft.X; _palletDims.Y1 = palletTopLeft.Y; _palletDims.X2 = palletBottomRight.X; _palletDims.Y2 = palletBottomRight.Y; // generate images _casePixelWidth = (int)(canvasCoord.LengthWorldToCanvas(DimCase.X)); _casePixelHeight = (int)(canvasCoord.LengthWorldToCanvas(DimCase.Y)); int palletPixelWidth = (int)(canvasCoord.LengthWorldToCanvas(DimPallet.X)); int palletPixelHeight = (int)(canvasCoord.LengthWorldToCanvas(DimPallet.Y)); // generate box position from MultiCaseImageGenerator.GenerateDefaultCaseImage(DimCase, new Size(_casePixelWidth, _casePixelHeight), 1, MultiCaseImageGenerator.CaseAlignement.SHARING_LENGTH, Path.Combine(Output, "case1.png")); MultiCaseImageGenerator.GenerateDefaultCaseImage(DimCase, new Size(_casePixelWidth, _casePixelHeight), 2, MultiCaseImageGenerator.CaseAlignement.SHARING_LENGTH, Path.Combine(Output, "case2.png")); MultiCaseImageGenerator.GenerateDefaultCaseImage(DimCase, new Size(_casePixelWidth, _casePixelHeight), 3, MultiCaseImageGenerator.CaseAlignement.SHARING_LENGTH, Path.Combine(Output, "case3.png")); MultiCaseImageGenerator.GenerateDefaultCaseImage(DimCase, new Size(_casePixelWidth, _casePixelHeight), 4, MultiCaseImageGenerator.CaseAlignement.SHARING_LENGTH, Path.Combine(Output, "case4.png")); MultiCaseImageGenerator.GenerateDefaultPalletImage(DimPallet, PalletIndex == 0? "EUR" : "EUR2", new Size(palletPixelWidth, palletPixelHeight), Path.Combine(Output, "pallet.png")); // build reduced list of unique box positions indexed BoxPositionIndexed.ReduceListBoxPositionIndexed(BoxPositions, out List <BoxPositionIndexed> listBPIReduced, out Dictionary <int, int> dictIndexNumber); foreach (var bp in listBPIReduced) { _boxPositionsJS.Add(canvasCoord.BPosWorldToCanvas(bp, dictIndexNumber[bp.Index], DimCase)); } } }