// GET: Users/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } User user = await _context.User.FindAsync(id); user.OrderNumber = user.UserId.ToString().PadLeft(8, '0'); user.AttnName = user.AttnName.ToUpper(); user.PhoneNumber = String.Format("{0:(###) ###-####}", user.PhoneNumber); user.Address1 = user.Address1.ToUpper(); user.Address2 = !string.IsNullOrEmpty(user.Address2) ? user.Address2 : " "; user.City = user.City.ToUpper(); user.ProvinceState = user.ProvinceState.ToUpper(); user.PostalZip = user.PostalZip.ToUpper(); user.Country = user.Country.ToUpper(); AlternatePonumbers alternatePonumbers = _context.AlternatePonumbers.Where(x => x.UserId == user.UserId).FirstOrDefault(); if (alternatePonumbers != null) { user.PoNumber = alternatePonumbers.AlternatePonumber; user.WorkOrder = alternatePonumbers.Wo; } int fabric = 0; int mesh = 0; int frame = 0; List <UserSelection> userSelections = await _context.UserSelection.Where(x => x.UserId == id).ToListAsync(); ProductOption productOption; foreach (var item in userSelections) { productOption = await _context.ProductOption.Where(x => x.ProductOptionId == item.ProductOptionId).FirstOrDefaultAsync(); if (item.Type == "Fabric") { fabric = item.ProductOptionId; item.Image = productOption.Image; item.Name = productOption.Name; } if (item.Type == "Mesh") { mesh = item.ProductOptionId; item.Image = productOption.Image; item.Name = productOption.Name; } if (item.Type == "Frame") { frame = item.ProductOptionId; item.Image = productOption.Image; item.Name = productOption.Name; } } Production production = new Production { User = user, Product = await _context.Product.FindAsync(user.ProductId), UserSelections = userSelections, Image = await _context.ProductImage.Where(x => x.ProductId == user.ProductId && x.ProductOption1Id == fabric && x.ProductOption2Id == mesh && x.ProductOption3Id == frame).Select(y => y.Image).FirstOrDefaultAsync() }; if (production.Image == null) { production.Image = production.Product.Image; } return(View(production)); }
public async Task <byte[]> GetOrderPdf(int id, string trackingnumber) { Production production = new Production(); int fabric = 0; int mesh = 0; int frame = 0; production.User = await _context.User.FindAsync(id); AlternatePonumbers alternatePonumbers = _context.AlternatePonumbers.Where(x => x.UserId == production.User.UserId).FirstOrDefault(); if (alternatePonumbers != null) { production.User.PoNumber = alternatePonumbers.AlternatePonumber; production.User.WorkOrder = alternatePonumbers.Wo; } List <UserSelection> userSelections = await _context.UserSelection.Where(x => x.UserId == id).ToListAsync(); ProductOption productOption; foreach (var item in userSelections) { productOption = await _context.ProductOption.Where(x => x.ProductOptionId == item.ProductOptionId).FirstOrDefaultAsync(); if (item.Type == "Fabric") { fabric = item.ProductOptionId; item.Image = productOption.Image; item.Name = productOption.Name; } if (item.Type == "Mesh") { mesh = item.ProductOptionId; item.Image = productOption.Image; item.Name = productOption.Name; } if (item.Type == "Frame") { frame = item.ProductOptionId; item.Image = productOption.Image; item.Name = productOption.Name; } } production.UserSelections = userSelections; production.User.PhoneNumber = String.Format("{0:(###) ###-####}", production.User.PhoneNumber); production.Image = await _context.ProductImage.Where(x => x.ProductId == production.User.ProductId && x.ProductOption1Id == fabric && x.ProductOption2Id == mesh && x.ProductOption3Id == frame).Select(y => y.Image).FirstOrDefaultAsync(); if (production.Image == null) { production.Image = await _context.Product.Where(x => x.ProductId == production.User.ProductId).Select(y => y.Image).FirstOrDefaultAsync(); } production.User.OrderNumber = production.User.UserId.ToString().PadLeft(8, '0'); production.User.TrackingNumber = trackingnumber; var report = new ViewAsPdf("ShipPdf", production) { PageSize = Rotativa.AspNetCore.Options.Size.Letter, PageOrientation = Rotativa.AspNetCore.Options.Orientation.Landscape, PageMargins = new Rotativa.AspNetCore.Options.Margins(10, 0, 0, 10), MinimumFontSize = 22 }; var byteArray = report.BuildFile(this.ControllerContext); return(byteArray.Result); }