public async Task <IActionResult> Create([Bind("AmazonDesignID,AmazonAccountID,DesignURL,Name,SearchTags1,SearchTags2,SearchTags3")] AmazonDesign amazonDesign, String Category, IFormFile DesignURL, List <int> DesignMarketplaces) { amazonDesign.DesignMarketplaces = new List <DesignMarketplaces>(); if (ModelState.IsValid && DesignURL != null && Category != null) { UpdateDesignCategories(Category, amazonDesign); _context.Add(amazonDesign); _context.SaveChanges(); UpdateDesignMarketplaces(DesignMarketplaces, amazonDesign); var fullUploadPath = Path.Combine(_environment.WebRootPath, DESIGN_DIR); var extension = DesignURL.FileName.Split('.').Last(); var filename = amazonDesign.AmazonDesignID + "." + extension; fullUploadPath = Path.Combine(fullUploadPath, filename); using (var fileStream = new FileStream(fullUploadPath, FileMode.Create)) { await DesignURL.CopyToAsync(fileStream); amazonDesign.DesignURL = Path.Combine(DESIGN_DIR, filename); } // _context.Add(amazonDesign); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewData["AmazonAccountID"] = new SelectList(_context.AmazonAccounts, "AmazonAccountID", "Name", amazonDesign.AmazonAccountID); ViewData["AmazonMarketplaceID"] = new MultiSelectList(_context.AmazonMarketplaces, "AmazonMarketplaceID", "Name", amazonDesign.DesignMarketplaces.Select(i => i.MarketplaceID).ToArray()); ViewData["AmazonCategory"] = Category; return(View(amazonDesign)); }
public async Task <IActionResult> Create([Bind("AmazonProductColorID,AmazonProductID,DesignURL,AmazonDesignID,Top,Left,Right,Bot")] AmazonListing amazonListing) { if (ModelState.IsValid) { _context.Add(amazonListing); _context.SaveChanges(); AmazonProductColor amazonProductColor = await _context.AmazonProductColors.SingleOrDefaultAsync(e => e.AmazonProductColorID == amazonListing.AmazonProductColorID); AmazonDesign amazonDesign = await _context.AmazonDesigns.SingleOrDefaultAsync(e => e.AmazonDesignID == amazonListing.AmazonDesignID); var baseImage = Path.Combine(_environment.WebRootPath, amazonProductColor.DesignURL); var opacity = amazonProductColor.Opacity; var coverImage = Path.Combine(_environment.WebRootPath, amazonDesign.DesignURL); var designURL = Path.Combine(COLOR_DIR, amazonListing.AmazonListingID + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpg"); var outputImage = Path.Combine(_environment.WebRootPath, designURL); if (amazonListing.Left == null || amazonListing.Left == 0) { amazonListing.Left = amazonProductColor.Left; } if (amazonListing.Top == null || amazonListing.Top == 0) { amazonListing.Top = amazonProductColor.Top; } if (amazonListing.Right == null || amazonListing.Right == 0) { amazonListing.Right = amazonProductColor.Right; } if (amazonListing.Bot == null || amazonListing.Bot == 0) { amazonListing.Bot = amazonProductColor.Bot; } Point topLeft = new Point((int)amazonListing.Left, (int)amazonListing.Top); Point topRight = new Point((int)amazonListing.Right, (int)amazonListing.Top); Point botLeft = new Point((int)amazonListing.Left, (int)amazonListing.Bot); Point botRight = new Point((int)amazonListing.Right, (int)amazonListing.Bot); using (FileStream savePic = System.IO.File.OpenWrite(outputImage)) { T_generator.Services.Amazon.ImageCollider.MergeImages( new BackPicture(baseImage, topLeft, topRight, botLeft, botRight), new FrontPicture(coverImage, (int)(opacity * 100))) //.DrawLines(new Color(1, 1, 1), 1, new Vector2[] { new Vector2(topLeft.X, 0), new Vector2(topLeft.X, 1000) }) //.DrawLines(new Color(1, 1, 1), 1, new Vector2[] { new Vector2(0, topLeft.Y), new Vector2(1000, topLeft.Y) }) .Save(savePic); amazonListing.DesignURL = designURL; } // _context.Add(amazonDesign); await _context.SaveChangesAsync(); return(RedirectToAction("Edit", new { id = amazonListing.AmazonListingID })); } ViewData["AmazonProductID"] = new SelectList(_context.AmazonProducts, "AmazonProductID", "Name"); ViewData["AmazonProductColorID"] = new SelectList(_context.AmazonProductColors, "AmazonProductColorID", "Name"); ViewData["AmazonDesignID"] = new SelectList(_context.AmazonDesigns, "AmazonDesignID", "Name"); return(View(amazonListing)); }
public async Task <IActionResult> Edit(int id, [Bind("AmazonDesignID,AmazonAccountID,DesignURL,Name,SearchTags1,SearchTags2,SearchTags3")] AmazonDesign amazonDesign, String Category, IFormFile DesignURL, string oldURL, List <int> DesignMarketplaces) { if (id != amazonDesign.AmazonDesignID) { return(NotFound()); } if (ModelState.IsValid && Category != null) { UpdateDesignMarketplaces(DesignMarketplaces, amazonDesign); try { UpdateDesignCategories(Category, amazonDesign); if (DesignURL != null) { var fullUploadPath = Path.Combine(_environment.WebRootPath, DESIGN_DIR); var extension = DesignURL.FileName.Split('.').Last(); var filename = amazonDesign.AmazonDesignID + "." + extension; fullUploadPath = Path.Combine(fullUploadPath, filename); using (var fileStream = new FileStream(fullUploadPath, FileMode.Create)) { System.IO.File.Delete(Path.Combine(_environment.WebRootPath, oldURL)); await DesignURL.CopyToAsync(fileStream); amazonDesign.DesignURL = Path.Combine(DESIGN_DIR, filename); } } else { amazonDesign.DesignURL = oldURL; } _context.Update(amazonDesign); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AmazonDesignExists(amazonDesign.AmazonDesignID)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); } amazonDesign = await _context.AmazonDesigns .Include(i => i.AmazonCategory) .SingleOrDefaultAsync(m => m.AmazonDesignID == id); ViewData["AmazonAccountID"] = new SelectList(_context.AmazonAccounts, "AmazonAccountID", "Name", amazonDesign.AmazonAccountID); ViewData["AmazonMarketplaceID"] = new MultiSelectList(_context.AmazonMarketplaces, "AmazonMarketplaceID", "Name", amazonDesign.DesignMarketplaces.Select(i => i.MarketplaceID).ToArray()); return(View(amazonDesign)); }
private void UpdateDesignMarketplaces(List <int> Marketplaces, AmazonDesign productToUpdate) { _context.DesignMarketplaces.RemoveRange(_context.DesignMarketplaces.Where(i => i.DesignID == productToUpdate.AmazonDesignID)); _context.SaveChanges(); foreach (var marketplaceid in Marketplaces) { _context.DesignMarketplaces.Add(new DesignMarketplaces { DesignID = productToUpdate.AmazonDesignID, MarketplaceID = marketplaceid }); } }
private void UpdateDesignCategories(String amazonCategory, AmazonDesign amazonDesign) { var keywordsFromDb = _context.AmazonCategories .ToDictionary(c => c.Category, c => c.AmazonCategoryID); if (amazonCategory != null) { if (keywordsFromDb.Keys.Contains(amazonCategory)) { amazonDesign.AmazonCategoryID = keywordsFromDb[amazonCategory]; } else { AmazonCategory newKeyword = new AmazonCategory { Category = amazonCategory }; _context.AmazonCategories.Add(newKeyword); _context.SaveChanges(); amazonDesign.AmazonCategoryID = newKeyword.AmazonCategoryID; } } }
private void DeleteDesignMarketplaces(AmazonDesign productToUpdate) { _context.DesignMarketplaces.RemoveRange(_context.DesignMarketplaces.Where(i => i.DesignID == productToUpdate.AmazonDesignID)); _context.SaveChanges(); }
public async Task <IActionResult> Edit(int id, [Bind("AmazonListingID,AmazonProductColorID,AmazonProductID,DesignURL,AmazonDesignID,Top,Left,Right,Bot")] AmazonListing amazonListing) { if (id != amazonListing.AmazonListingID) { return(NotFound()); } if (ModelState.IsValid) { try { AmazonProductColor amazonProductColor = await _context.AmazonProductColors.SingleOrDefaultAsync(e => e.AmazonProductColorID == amazonListing.AmazonProductColorID); AmazonDesign amazonDesign = await _context.AmazonDesigns.SingleOrDefaultAsync(e => e.AmazonDesignID == amazonListing.AmazonDesignID); var baseImage = Path.Combine(_environment.WebRootPath, amazonProductColor.DesignURL); var opacity = amazonProductColor.Opacity; var coverImage = Path.Combine(_environment.WebRootPath, amazonDesign.DesignURL); var designURL = Path.Combine(COLOR_DIR, amazonListing.AmazonListingID + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpg"); var outputImage = Path.Combine(_environment.WebRootPath, designURL); if (amazonListing.Left == null || amazonListing.Left == 0) { amazonListing.Left = amazonProductColor.Left; } if (amazonListing.Top == null || amazonListing.Top == 0) { amazonListing.Top = amazonProductColor.Top; } if (amazonListing.Right == null || amazonListing.Right == 0) { amazonListing.Right = amazonProductColor.Right; } if (amazonListing.Bot == null || amazonListing.Bot == 0) { amazonListing.Bot = amazonProductColor.Bot; } Point topLeft = new Point((int)amazonListing.Left, (int)amazonListing.Top); Point topRight = new Point((int)amazonListing.Right, (int)amazonListing.Top); Point botLeft = new Point((int)amazonListing.Left, (int)amazonListing.Bot); Point botRight = new Point((int)amazonListing.Right, (int)amazonListing.Bot); using (FileStream savePic = System.IO.File.OpenWrite(outputImage)) { System.IO.File.Delete(Path.Combine(_environment.WebRootPath, amazonListing.DesignURL)); T_generator.Services.Amazon.ImageCollider.MergeImages( new BackPicture(baseImage, topLeft, topRight, botLeft, botRight), new FrontPicture(coverImage, (int)(opacity * 100))) //.DrawLines(new Color(1, 1, 1), 1, new Vector2[] { new Vector2(topLeft.X, 0), new Vector2(topLeft.X, 1000) }) //.DrawLines(new Color(1, 1, 1), 1, new Vector2[] { new Vector2(0, topLeft.Y), new Vector2(1000, topLeft.Y) }) .Save(savePic); amazonListing.DesignURL = designURL; } //var fullUploadPath = Path.Combine(_environment.WebRootPath, COLOR_DIR); // var extension = DesignURL.FileName.Split('.').Last(); // var filename = amazonListing.AmazonListingID + "." + extension; // fullUploadPath = Path.Combine(fullUploadPath, filename); // using (var fileStream = new FileStream(fullUploadPath, FileMode.Create)) // { // System.IO.File.Delete(Path.Combine(_environment.WebRootPath, oldURL)); // await DesignURL.CopyToAsync(fileStream); // amazonListing.DesignURL = Path.Combine(COLOR_DIR, filename); // } _context.Update(amazonListing); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AmazonListingExists(amazonListing.AmazonListingID)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Edit", new { id = amazonListing.AmazonListingID })); } amazonListing = await _context.AmazonListings .Include(i => i.AmazonProduct) .Include(i => i.AmazonProductColor) .Include(i => i.AmazonDesign) .SingleOrDefaultAsync(m => m.AmazonListingID == id); ViewData["AmazonProductID"] = new SelectList(_context.AmazonProducts, "AmazonProductID", "Name", amazonListing.AmazonProductID); ViewData["AmazonProductColorID"] = new SelectList(_context.AmazonProductColors, "AmazonProductColorID", "Name", amazonListing.AmazonProductColorID); ViewData["AmazonDesignID"] = new SelectList(_context.AmazonDesigns, "AmazonDesignID", "Name", amazonListing.AmazonDesignID); return(View(amazonListing)); }