public IActionResult OnPostPrintLabel() { Box[] boxesToPrint = new Box[8] { new Box(), new Box(), new Box(), new Box(), new Box(), new Box(), new Box(), new Box() }; bool[] boxesSelected = new bool[8]; boxesSelected[0] = !LabelViewModel.Box1IsSelected; boxesSelected[1] = !LabelViewModel.Box2IsSelected; boxesSelected[2] = !LabelViewModel.Box3IsSelected; boxesSelected[3] = !LabelViewModel.Box4IsSelected; boxesSelected[4] = !LabelViewModel.Box5IsSelected; boxesSelected[5] = !LabelViewModel.Box6IsSelected; boxesSelected[6] = !LabelViewModel.Box7IsSelected; boxesSelected[7] = !LabelViewModel.Box8IsSelected; string[] productLabels = new string[8]; if (LabelViewModel.Box1ProductLabel != null) { productLabels[0] = LabelViewModel.Box1ProductLabel; } else { boxesSelected[0] = false; } if (LabelViewModel.Box2ProductLabel != null) { productLabels[1] = LabelViewModel.Box2ProductLabel; } else { boxesSelected[1] = false; } if (LabelViewModel.Box3ProductLabel != null) { productLabels[2] = LabelViewModel.Box3ProductLabel; } else { boxesSelected[2] = false; } if (LabelViewModel.Box4ProductLabel != null) { productLabels[3] = LabelViewModel.Box4ProductLabel; } else { boxesSelected[3] = false; } if (LabelViewModel.Box5ProductLabel != null) { productLabels[4] = LabelViewModel.Box5ProductLabel; } else { boxesSelected[4] = false; } if (LabelViewModel.Box6ProductLabel != null) { productLabels[5] = LabelViewModel.Box6ProductLabel; } else { boxesSelected[5] = false; } if (LabelViewModel.Box7ProductLabel != null) { productLabels[6] = LabelViewModel.Box7ProductLabel; } else { boxesSelected[6] = false; } if (LabelViewModel.Box8ProductLabel != null) { productLabels[7] = LabelViewModel.Box8ProductLabel; } else { boxesSelected[7] = false; } for (int i = 0; i < 8; i++) { boxesToPrint[i].IsSelected = boxesSelected[i]; if (productLabels[i] != null) { boxesToPrint[i].LensInfo = _lensData.Lenses.Include(m => m.Material).Where(l => l.ProductLabel == productLabels[i]).FirstOrDefault(); } else { boxesToPrint[i].LensInfo = null; } } if (boxesToPrint.Any(x => x.IsSelected)) { string fileName = PdfGenerator.GenerateReport(boxesToPrint); return(new PhysicalFileResult(Path.Combine(_env.ContentRootPath, fileName), "application/pdf")); } else { return(RedirectToPage("./Inventory")); } }