示例#1
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.Attach(Printer).State = EntityState.Modified;

            List <PrinterLayerThickness> oldSelection = await _context.PrinterLayerThicknesses.Where(pl => pl.PrinterID == Printer.ID).ToListAsync();

            _context.PrinterLayerThicknesses.RemoveRange(oldSelection);

            foreach (int layerThicknessID in Selected)
            {
                PrinterLayerThickness pl = new PrinterLayerThickness
                {
                    PrinterID        = Printer.ID,
                    LayerThicknessID = layerThicknessID
                };
                _context.PrinterLayerThicknesses.Add(pl);
            }

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                return(BadRequest());
            }

            return(RedirectToPage("./Index"));
        }
示例#2
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

            _context.LayerThicknesses.Add(LayerThickness);

            for (int i = 0; i < SelectedPrinters.Count; i++)
            {
                PrinterLayerThickness pl = new PrinterLayerThickness
                {
                    PrinterID        = SelectedPrinters[i],
                    LayerThicknessID = LayerThickness.ID,
                    ExcelDefinedName = DefinedNames[i]
                };
                _context.PrinterLayerThicknesses.Add(pl);
            }

            await _context.SaveChangesAsync();

            return(RedirectToPage("./Index"));
        }
示例#3
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            //Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

            _context.Attach(LayerThickness).State = EntityState.Modified;

            List <PrinterLayerThickness> oldSelection = await _context.PrinterLayerThicknesses.Where(pl => pl.LayerThicknessID == LayerThickness.ID).ToListAsync();

            _context.PrinterLayerThicknesses.RemoveRange(oldSelection);

            //Printers = await _context.Printers.ToListAsync();
            for (int i = 0; i < SelectedPrinters.Count; i++)
            {
                PrinterLayerThickness pl = new PrinterLayerThickness
                {
                    PrinterID        = SelectedPrinters[i],
                    LayerThicknessID = LayerThickness.ID,
                    ExcelDefinedName = DefinedNames[i]
                };
                _context.PrinterLayerThicknesses.Add(pl);
            }

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!LayerThicknessExists(LayerThickness.ID))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./Index"));
        }
示例#4
0
        public async Task <IActionResult> OnPostExcel(int id)
        {
            PrintModel model = await buildModel(id);

            PrinterLayerThickness plt           = null;
            List <PostProcess>    postProcesses = await ParsePostProcesses(postProcess);

            if (model != null && model.Printer != null && model.LayerThickness != null)
            {
                plt = await _context.PrinterLayerThicknesses.FirstOrDefaultAsync(p => p.PrinterID == model.Printer.ID && p.LayerThicknessID == model.LayerThickness.ID);
            }

            if (model != null && plt != null)
            {
                if (!model.IsValid())
                {
                    return(BadRequest());
                }

                if (aabb.Length > 0)
                {
                    Dimensions dim = ParseAABB(aabb);
                    model.X = dim.X;
                    model.Y = dim.Z; // xeogl and system represent 3D space with Y as height axis, while system is required to represent height axis as Z.
                    model.Z = dim.Y;
                }

                _calculator.SetExcelFile(model.Quotation.EngineFile);
                IWorkbook workbook = _calculator.GenerateWorkbook(model, plt, postProcesses, printAmount);
                Stream    stream   = new MemoryStream();
                workbook.SaveToStream(stream, FileFormat.OpenXMLWorkbook);
                workbook.SaveAs("debug.xlsx", FileFormat.OpenXMLWorkbook);

                stream.Position = 0;

                return(File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", model.Name));
            }

            return(BadRequest());
        }
示例#5
0
        public async Task <IActionResult> OnPostPriceAsync(int id)
        {
            PrintModel model = await buildModel(id);

            PrinterLayerThickness plt           = null;
            List <PostProcess>    postProcesses = await ParsePostProcesses(postProcess);

            if (model != null && model.Printer != null && model.LayerThickness != null)
            {
                plt = await _context.PrinterLayerThicknesses.FirstOrDefaultAsync(p => p.PrinterID == model.Printer.ID && p.LayerThicknessID == model.LayerThickness.ID);
            }

            if (model != null && plt != null)
            {
                if (!model.IsValid())
                {
                    return(BadRequest());
                }

                if (aabb.Length > 0)
                {
                    Dimensions dim = ParseAABB(aabb);
                    model.X = dim.X;
                    model.Y = dim.Z; // xeogl and system represent 3D space with Y as height axis, while system is required to represent height axis as Z.
                    model.Z = dim.Y;
                }

                Dictionary <int, double> postProcessPrices;
                _calculator.SetExcelFile(model.Quotation.EngineFile);
                double price = _calculator.GetPrice(model, plt, postProcesses, printAmount, out postProcessPrices);

                return(new JsonResult(new { Price = price, PostProcesses = postProcessPrices }));
            }

            return(BadRequest());
        }