Exemplo n.º 1
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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
                });
            }
        }
Exemplo n.º 5
0
        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;
                }
            }
        }
Exemplo n.º 6
0
 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));
        }