예제 #1
0
    private Product SetUpProduct(Product product)
    {
        product = uxProductInfo.Setup(product);
        product = uxRecurring.Setup(product);
        product = uxProductAttributes.Setup(product, "0");
        product = uxProductKit.Setup(product);

        product.ShippingCost      = ConvertUtilities.ToDecimal("0");
        product.IsGiftCertificate = uxGiftCertificate.IsGiftCertificate;
        product.IsFixedPrice      = uxProductAttributes.IsFixPrice(
            uxGiftCertificate.IsFixedPrice, uxGiftCertificate.IsGiftCertificate, uxRecurring.IsRecurring, uxProductAttributes.IsCallForPrice);
        product.ImageSecondary = uxProductImageList.SecondaryImage();
        product = uxProductImageList.Update(product);
        //Clear anything before change it.
        //product.ProductImages.Clear();
        product.ProductStocks.Clear();
        product.ProductOptionGroups.Clear();
        product.ProductShippingCosts.Clear();
        product.SetUseDefaultValueMetaKeyword("0", true);
        product.SetUseDefaultValueMetaDescription("0", true);

        uxProductAttributes.AddOptionGroup(product);
        uxProductAttributes.CreateStockOption(product);
        uxProductAttributes.UpdateProductShippingCost(product);
        uxProductAttributes.SetProductSpecifications(product);
        ProductImageData.PopulateProductImages(product);
        ProductImageData.Clear();


        return(product);
    }
예제 #2
0
    private void RemoveNewProductImage(string imageID)
    {
        ImageItem item = ProductImageData.FindItem(imageID);

        if (item.SortOrder == 0)
        {
            DeleteFile(ProductImageData.SecondaryImagePath);
            ProductImageData.SecondaryImagePath = "";

            if (uxGridProductImage.Rows.Count > 1)
            {
                string[] gridImageIDArray = new string[uxGridProductImage.Rows.Count - 1];

                for (int i = 1; i < uxGridProductImage.Rows.Count; i++)
                {
                    gridImageIDArray[i - 1] = ((HiddenField)uxGridProductImage.Rows[i].FindControl("uxImageIDHidden")).Value;
                }
                Array.Sort(gridImageIDArray);
                SetNewPrimaryImageAfterDelete(gridImageIDArray[0]);
            }
        }

        DeleteImage(item.RegularImage, item.LargeImage, item.ThumbnailImage);
        ProductImageData.RemoveItem(imageID);
    }
예제 #3
0
    protected void uxSetAsPrimayImageButton_Click(object sender, EventArgs e)
    {
        string     storeID  = new StoreRetriever().GetCurrentStoreID();
        LinkButton myButton = (LinkButton)sender;
        string     imageID  = myButton.CommandArgument;
        Product    product  = DataAccessContext.ProductRepository.GetOne(Culture.Null, ProductID, storeID);

        string originalFilePath;

        if (ProductID == "0")
        {
            ProductImageData.SetPrimary(imageID);
            ImageItem item = ProductImageData.FindItem(imageID);
            originalFilePath = item.LargeImage;
        }
        else
        {
            ProductImage oldPrimaryImage = new ProductImage();
            ProductImage newPrimaryImage = new ProductImage();
            foreach (ProductImage productImage in product.ProductImages)
            {
                if (productImage.ProductImageID == imageID)
                {
                    newPrimaryImage = productImage;
                }
                if (productImage.SortOrder == 0)
                {
                    oldPrimaryImage = productImage;
                }
            }

            SetProductImageOrder(product, oldPrimaryImage.ProductImageID, newPrimaryImage.SortOrder);
            SetProductImageOrder(product, newPrimaryImage.ProductImageID, 0);

            originalFilePath = newPrimaryImage.LargeImage;
        }

        using (ProductImageFile imageFile = ProductImageFile.Load(new FileManager(), Path.GetFileName(originalFilePath)))
        {
            if (ProductID == "0")
            {
                SaveSecondaryNoProduct(imageFile);
            }
            else
            {
                SaveSecondary(product, imageFile);
            }
        }

        if (!product.IsNull)
        {
            DataAccessContext.ProductRepository.Save(product);
        }

        uxMessage.DisplayMessage(Resources.ProductImageMessages.SetPrimarySuccess);

        uxStatusHidden.Value = "SetPrimary";
    }
예제 #4
0
    private void SetNewPrimaryImageAfterDelete(string imageID)
    {
        ProductImageData.SetPrimary(imageID);
        ImageItem item1            = ProductImageData.FindItem(imageID);
        string    originalFilePath = item1.LargeImage;

        using (ProductImageFile imageFile = ProductImageFile.Load(new FileManager(), Path.GetFileName(originalFilePath)))
        {
            SaveSecondaryNoProduct(imageFile);
        }
    }
예제 #5
0
    private void UpdateImage()
    {
        string message;

        if (!VerifyInput(out message))
        {
            uxMessage.DisplayError(message);
            return;
        }

        Product product = DataAccessContext.ProductRepository.GetOne(CurrentCulture, ProductID, new StoreRetriever().GetCurrentStoreID());

        foreach (GridViewRow row in uxGridProductImage.Rows)
        {
            ProductImage productImage = new ProductImage();
            string       id           = ((HiddenField)row.Cells[ImageIDIndex].FindControl("uxImageIDHidden")).Value.Trim();
            bool         isZoom       = GetZoomValue(row);
            bool         isEnlarge    = ((CheckBox)row.Cells[EnlargeCheckBoxIndex].FindControl("uxEnlargeCheck")).Checked;
            string       altTag       = ((TextBox)row.Cells[AltTagIndex].FindControl("uxAltTag")).Text;
            string       titleTag     = ((TextBox)row.Cells[TitleTagIndex].FindControl("uxTitleTag")).Text;
            if (ProductID == "0")
            {
                ProductImageData.UpdateItem(id, isZoom, isEnlarge, CurrentCulture, altTag, titleTag);
            }
            else
            {
                UpdateProductImageFromGrid(product, id, isZoom, isEnlarge, CurrentCulture, altTag, titleTag);
            }
        }

        foreach (DataListItem item in uxThumbnailDataList.Items)
        {
            string id        = ((HiddenField)item.FindControl("uxImageIDHidden")).Value.Trim();
            int    SortOrder = ConvertUtilities.ToInt32(((TextBox)item.FindControl("uxSortOrderText")).Text);
            if (ProductID == "0")
            {
                ProductImageData.UpdateSortOrder(id, SortOrder);
            }
            else
            {
                SetProductImageOrder(product, id, SortOrder);
            }
        }
    }
예제 #6
0
 private void CrateDataSource()
 {
     _imageSource     = CreateTable("ProductImage");
     _tempImageSource = CreateTable("TempProductImage");
     if (ProductID == "0")
     {
         uxSecondaryImageHidden.Value = ProductImageData.SecondaryImagePath;
         foreach (ImageItem item in ProductImageData.GetAllItems())
         {
             CreateRow(
                 _tempImageSource, item.ProductImageID, 0,
                 item.RegularImage, item.LargeImage, item.ThumbnailImage,
                 item.ImageSize, item.SortOrder, item.IsZoom, item.IsEnlarge,
                 item.ImageWidth, item.ImageHeight, item.Locales[CurrentCulture].AltTag, item.Locales[CurrentCulture].TitleTag);
         }
     }
     else
     {
         Product product = DataAccessContext.ProductRepository.GetOne(CurrentCulture, ProductID, new StoreRetriever().GetCurrentStoreID());
         uxSecondaryImageHidden.Value = product.ImageSecondary;
         foreach (ProductImage productImage in product.ProductImages)
         {
             ProductImageLocale locale = productImage.Locales[CurrentCulture];
             using (ProductImageFile imageFile =
                        ProductImageFile.Load(new FileManager(), Path.GetFileName(productImage.LargeImage)))
             {
                 CreateRow(_tempImageSource, productImage.ProductImageID,
                           ConvertUtilities.ToInt32(product.ProductID),
                           productImage.RegularImage,
                           productImage.LargeImage,
                           productImage.ThumbnailImage,
                           ProductImageFile.GetImageSize(new FileManager(), productImage.LargeImage),
                           productImage.SortOrder,
                           productImage.IsZoom,
                           productImage.IsEnlarge,
                           imageFile.LargeImageWidth,
                           imageFile.LargeImageHeight,
                           locale.AltTag,
                           locale.TitleTag);
             }
         }
     }
 }
예제 #7
0
    protected void Page_Load(object sender, EventArgs e)
    {
        System.Drawing.Image    thumbnail_image = null;
        System.Drawing.Image    original_image  = null;
        System.Drawing.Bitmap   final_image     = null;
        System.Drawing.Graphics graphic         = null;
        String       fileNameInfo   = String.Empty;
        MemoryStream ms             = null;
        bool         errorDuplicate = false;

        try
        {
            // Get the data
            HttpPostedFile jpeg_image_upload = Request.Files["Filedata"];
            fileNameInfo = Path.GetFileName(jpeg_image_upload.FileName);
            using (original_image = System.Drawing.Image.FromStream(jpeg_image_upload.InputStream))
            {
                using (ProductImageFile imageFile = new ProductImageFile(new FileManager(), fileNameInfo, original_image))
                {
                    if (IsUsedByAnotherProduct(imageFile.LargeFilePath))
                    {
                        errorDuplicate = true;
                        Response.End();
                    }

                    imageFile.SaveLargeImage();
                    imageFile.SaveRegular();
                    imageFile.SaveThumbnail();

                    if (ProductID == "0")
                    {
                        int sortOrder = ProductImageData.GetNexOrder();

                        ProductImageData.AddImageItem(
                            imageFile.ThumbnailFilePath,
                            imageFile.RegularFilePath,
                            imageFile.LargeFilePath,
                            ProductImageFile.GetImageSize(new FileManager(), imageFile.LargeFilePath),
                            sortOrder,
                            IsZoomable(imageFile),
                            true,
                            imageFile.LargeImageWidth,
                            imageFile.LargeImageHeight,
                            StoreContext.Culture,
                            "",
                            ""
                            );

                        if (sortOrder == 0)
                        {
                            SaveSecondaryNoProduct(imageFile);
                        }
                    }
                    else
                    {
                        string       storeID      = new StoreRetriever().GetCurrentStoreID();
                        Product      product      = DataAccessContext.ProductRepository.GetOne(StoreContext.Culture, ProductID, storeID);
                        ProductImage productImage = new ProductImage();

                        productImage.RegularImage   = imageFile.RegularFilePath;
                        productImage.LargeImage     = imageFile.LargeFilePath;
                        productImage.ThumbnailImage = imageFile.ThumbnailFilePath;
                        productImage.IsZoom         = IsZoomable(imageFile);
                        productImage.IsEnlarge      = true;

                        if (product.ProductImages.Count == 0)
                        {
                            SaveSecondary(product, imageFile);
                        }

                        productImage.SortOrder = product.ProductImages.Count;

                        product.ProductImages.Add(productImage);

                        DataAccessContext.ProductRepository.Save(product);
                    }
                }
            }
            Response.StatusCode = 200;
            Response.Write("Success");
        }
        catch
        {
            // If any kind of error occurs return a 500 Internal Server error

            if (!errorDuplicate)
            {
                Response.StatusCode = 500;
                Response.Write("An error occured");
            }
            else
            {
                Response.StatusCode = 601;
                Response.Write("Upload Error Duplicated");
            }
            Response.End();
        }
        finally
        {
            // Clean up
            if (final_image != null)
            {
                final_image.Dispose();
            }
            if (graphic != null)
            {
                graphic.Dispose();
            }
            if (original_image != null)
            {
                original_image.Dispose();
            }
            if (thumbnail_image != null)
            {
                thumbnail_image.Dispose();
            }
            if (ms != null)
            {
                ms.Close();
            }
            Response.End();
        }
    }
예제 #8
0
 protected void uxAddButton_Click(object sender, EventArgs e)
 {
     ProductImageData.Clear();
     MainContext.RedirectMainControl("ProductAdd.ascx");
 }