protected void gvAdmin_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        string productImagesId = gvAdmin.DataKeys[e.RowIndex].Values["productImagesId"].ToString();
        //TextBox inventory = (TextBox)gvAdmin.Rows[e.RowIndex].FindControl("txtInventory");
        string      productid = (gvAdmin.Rows[e.RowIndex].FindControl("ddlsku") as DropDownList).SelectedItem.Value;
        string      sku       = (gvAdmin.Rows[e.RowIndex].FindControl("ddlsku") as DropDownList).SelectedItem.Text;
        string      ImgLabl   = (gvAdmin.Rows[e.RowIndex].FindControl("txtImgLabl") as TextBox).Text;
        HiddenField hidimage  = (HiddenField)gvAdmin.Rows[e.RowIndex].FindControl("hdmenuimage");

        productManager objprodct = new productManager();

        try
        {
            char[] imgArray = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };

            string filname = string.Empty;

            string chkFine  = hidimage.Value;
            var    lastChar = chkFine[chkFine.Length - 1];

            string[] strimg     = hidimage.Value.Split('.');
            string   strthumb   = Server.MapPath("../resources/product/thumb/") + hidimage.Value.ToString();
            string   strtActual = Server.MapPath("../resources/product/full/") + hidimage.Value.ToString();
            string   strtMedium = Server.MapPath("../resources/product/medium/") + hidimage.Value.ToString();

            string newThumb  = string.Empty;
            string newActual = string.Empty;
            string newMedium = string.Empty;

            string TemnewThumb   = string.Empty;
            string TempnewActual = string.Empty;
            string TempnewMedium = string.Empty;

            for (int fl = 0; fl <= imgArray.Length; fl++)
            {
                newThumb  = Server.MapPath("../resources/product/thumb/") + sku + imgArray[fl] + "." + strimg[1];
                newActual = Server.MapPath("../resources/product/full/") + sku + imgArray[fl] + "." + strimg[1];
                newMedium = Server.MapPath("../resources/product/medium/") + sku + imgArray[fl] + "." + strimg[1];

                if (Convert.ToString(hidimage.Value) == Convert.ToString(sku + "." + strimg[1]))
                {
                    TemnewThumb   = Server.MapPath("../resources/product/TempThumb/") + sku + "." + strimg[1];
                    TempnewActual = Server.MapPath("../resources/product/TempFull/") + sku + "." + strimg[1];
                    TempnewMedium = Server.MapPath("../resources/product/TempMedium/") + sku + "." + strimg[1];

                    newThumb  = Server.MapPath("../resources/product/thumb/") + sku + "." + strimg[1];
                    newActual = Server.MapPath("../resources/product/full/") + sku + "." + strimg[1];
                    newMedium = Server.MapPath("../resources/product/medium/") + sku + "." + strimg[1];

                    File.Copy(strthumb, TemnewThumb);
                    File.Copy(strtActual, TempnewActual);
                    File.Copy(strtMedium, TempnewMedium);

                    ////delete file
                    File.Delete(strthumb);
                    File.Delete(strtActual);
                    File.Delete(strtMedium);

                    filname = sku + "." + strimg[1];
                    File.Copy(TemnewThumb, newThumb);
                    File.Copy(TempnewActual, newActual);
                    File.Copy(TempnewMedium, newMedium);

                    ////delete file
                    File.Delete(TemnewThumb);
                    File.Delete(TempnewActual);
                    File.Delete(TempnewMedium);
                    break;
                }

                if (!File.Exists(newThumb))
                {
                    filname = sku + imgArray[fl] + "." + strimg[1];
                    File.Copy(strthumb, newThumb);
                    File.Copy(strtActual, newActual);
                    File.Copy(strtMedium, newMedium);

                    ////delete file
                    File.Delete(strthumb);
                    File.Delete(strtActual);
                    File.Delete(strtMedium);

                    break;
                }
                if (Convert.ToString(hidimage.Value) == Convert.ToString(sku + imgArray[fl] + "." + strimg[1]))
                {
                    TemnewThumb   = Server.MapPath("../resources/product/TempThumb/") + sku + imgArray[fl] + "." + strimg[1];
                    TempnewActual = Server.MapPath("../resources/product/TempFull/") + sku + imgArray[fl] + "." + strimg[1];
                    TempnewMedium = Server.MapPath("../resources/product/TempMedium/") + sku + imgArray[fl] + "." + strimg[1];

                    File.Copy(strthumb, TemnewThumb);
                    File.Copy(strtActual, TempnewActual);
                    File.Copy(strtMedium, TempnewMedium);

                    ////delete file
                    File.Delete(strthumb);
                    File.Delete(strtActual);
                    File.Delete(strtMedium);

                    filname = sku + imgArray[fl] + "." + strimg[1];
                    File.Copy(TemnewThumb, newThumb);
                    File.Copy(TempnewActual, newActual);
                    File.Copy(TempnewMedium, newMedium);

                    ////delete file
                    File.Delete(TemnewThumb);
                    File.Delete(TempnewActual);
                    File.Delete(TempnewMedium);
                    break;
                }
            }

            objprodct.imageName       = filname;
            objprodct.productImagesId = Convert.ToInt32(productImagesId);
            objprodct.productId       = Convert.ToInt32(productid); // ddl set
            string pr_name = objprodct.GetProductNameByProductid();

            //if (TxtImgLbl != "")
            //{ objprodct.imgLabel = TxtImgLbl; }
            //else
            //{ objprodct.imgLabel = filname; }
            objprodct.imgLabel = Server.HtmlEncode(pr_name);

            objprodct.UpdateProductID();

            //delete file
            //File.Delete(strPath);

            gvAdmin.EditIndex = -1;
            BindProduct();
            lblmsg.Visible = true;
            lblmsgs.Text   = "Product image updated successfully.";
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally { objprodct = null; }
    }
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            productManager objProduct = new productManager();
            ////insert image product
            HttpFileCollection uploadedFiles = Request.Files;
            bool   flg = false;
            string strImagesNameExist = string.Empty;
            string FileNameCount      = string.Empty;

            for (int im = 0; im < uploadedFiles.Count; im++)
            {
                HttpPostedFile userPostedFile = uploadedFiles[im];
                string         name           = userPostedFile.FileName;
                if (name != "null" && name != "")
                {
                    bool   imgFlag   = false;
                    string extension = Path.GetExtension(userPostedFile.FileName).ToString();
                    string name2     = name.Replace(extension, "");
                    string nameBox   = Request.Form["newr" + name2];
                    if (extension.ToLower() == ".png" || extension.ToLower() == ".jpg")
                    {
                        if (nameBox == null)
                        {
                            #region check SKU and ImageName

                            string NameFile = name2;
                            int    prodimageID;

                            string flname = name2.Substring(name2.Length - 1);
                            if (!CommonFunctions.IsValidValue(flname, true, false, false))
                            {
                                name2 = name2.TrimEnd(name2[name2.Length - 1]);
                            }
                            objProduct.sku = name2;
                            int prodId = objProduct.GetSkuCount();
                            int imgcnt = objProduct.GetproductsImageCount(prodId);

                            // for check images exist or not
                            DataTable dtImgname = new DataTable();
                            dtImgname = objProduct.GetProductImageNameByProductId(prodId);  // get the images from productid
                            if (dtImgname.Rows.Count > 0)
                            {
                                for (int ie = 0; ie < dtImgname.Rows.Count; ie++)
                                {
                                    if (Convert.ToString(dtImgname.Rows[ie]["imageName"]) == Convert.ToString(NameFile + ".jpg"))
                                    {
                                        if (strImagesNameExist == "")
                                        {
                                            strImagesNameExist += dtImgname.Rows[ie]["imageName"].ToString();
                                        }
                                        else
                                        {
                                            strImagesNameExist += "," + dtImgname.Rows[ie]["imageName"].ToString();
                                        }
                                        imgFlag = true;
                                        break;
                                    }

                                    // added on 20_12_2016
                                    if (Convert.ToString(dtImgname.Rows[ie]["imageName"]) == Convert.ToString(NameFile + ".png"))
                                    {
                                        if (strImagesNameExist == "")
                                        {
                                            strImagesNameExist += dtImgname.Rows[ie]["imageName"].ToString();
                                        }
                                        else
                                        {
                                            strImagesNameExist += "," + dtImgname.Rows[ie]["imageName"].ToString();
                                        }
                                        imgFlag = true;
                                        break;
                                    }
                                }
                            }

                            if (imgFlag == false)
                            {
                                if (strImagesNameExist == "")
                                {
                                    lblmsg.Visible = false;
                                }

                                objProduct.productId = 0;
                                objProduct.isactive  = 1;
                                //objProduct.imgLabel = NameFile;
                                objProduct.InsertProductImageItem();

                                if (prodId != 0 && imgcnt != 0 && flg == false)                         // if product id and image count both are in the table
                                {
                                    if (imgFlag == false)                                               // if false then updates record other wise display message
                                    {
                                        prodimageID                = objProduct.GetmaximageProductId(); // gat max productimageid
                                        objProduct.productId       = prodId;
                                        objProduct.productImagesId = prodimageID;
                                        objProduct.actualImageName = userPostedFile.FileName;
                                        objProduct.imageName       = UploadImageSKU(userPostedFile, name2, true);
                                        objProduct.isactive        = 1;
                                        objProduct.sortOrder       = 0;
                                        objProduct.imgLabel        = objProduct.imageName;
                                        objProduct.UpdateProductImagetem();
                                    }
                                    else
                                    {
                                        lblmsg.Visible = true;
                                        lblmsgs.Text   = strImagesNameExist + "Images are already exist.";
                                    }
                                }
                                else if (prodId != 0)  // no images avaliable in product images table
                                {
                                    flg                        = true;
                                    prodimageID                = objProduct.GetmaximageProductId(); // gat max productimageid
                                    objProduct.productId       = prodId;
                                    objProduct.productImagesId = prodimageID;
                                    objProduct.actualImageName = userPostedFile.FileName;
                                    objProduct.imageName       = UploadImageSKU(userPostedFile, NameFile, false);
                                    objProduct.isactive        = 1;
                                    objProduct.sortOrder       = 0;
                                    string pr_name = objProduct.GetProductNameByProductid();
                                    objProduct.imgLabel = Server.HtmlEncode(pr_name);
                                    objProduct.UpdateProductImagetem();
                                }
                                else
                                {
                                    prodimageID = objProduct.GetmaximageProductId();   // gat max productimageid
                                    objProduct.productImagesId = prodimageID;
                                    objProduct.actualImageName = userPostedFile.FileName;
                                    objProduct.imageName       = UploadImage(userPostedFile, prodimageID.ToString());
                                    objProduct.imgLabel        = objProduct.imageName;
                                    objProduct.UpdateImage();
                                }
                            }
                            else
                            {
                                //lblmsg.Visible = true;
                                //lblmsgs.Text = strImagesNameExist + "  Images are already exist.";

                                string[] FileMaxId = name.Split('.');
                                string   filesName = UploadImage(userPostedFile, FileMaxId[0].ToString());

                                if (FileNameCount == "")
                                {
                                    FileNameCount = filesName;
                                }
                                else
                                {
                                    FileNameCount += "," + filesName;
                                }

                                lblmsg.Visible = true;
                                lblmsgs.Text   = "image " + FileNameCount + " updates successfully.";
                            }

                            #endregion

                            //int prodimageID = objProduct.GetmaximageProductId();
                            //objProduct.productImagesId = prodimageID;
                            //objProduct.actualImageName = userPostedFile.FileName;
                            ////objProduct.imageName = UploadImage(userPostedFile, prodimageID);
                            ////objProduct.imgLabel = objProduct.imageName;
                            ////objProduct.UpdateImage();
                        }
                        else
                        {
                        }
                    }
                }
            }
            BindProduct();
        }
    }
    protected void BtnMultiUpload_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            foreach (GridViewRow row in gvAdmin.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    bool isChecked = row.Cells[0].Controls.OfType <CheckBox>().FirstOrDefault().Checked;
                    if (isChecked)
                    {
                        string lblProdutImageId = row.Cells[0].Controls.OfType <HiddenField>().FirstOrDefault().Value;
                        string hidimage         = row.Cells[1].Controls.OfType <HiddenField>().FirstOrDefault().Value;
                        string sku       = row.Cells[2].Controls.OfType <DropDownList>().FirstOrDefault().SelectedItem.Text;
                        string TxtImgLbl = row.Cells[4].Controls.OfType <TextBox>().FirstOrDefault().Text;
                        string productid = row.Cells[2].Controls.OfType <DropDownList>().FirstOrDefault().SelectedItem.Value;

                        productManager objprodct = new productManager();
                        try
                        {
                            char[] imgArray = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };

                            string filname = string.Empty;

                            //string chkFine = hidimage.Value;
                            //var lastChar = chkFine[chkFine.Length - 1];

                            string[] strimg     = hidimage.Split('.');
                            string   strthumb   = Server.MapPath("../resources/product/thumb/") + hidimage.ToString();
                            string   strtActual = Server.MapPath("../resources/product/full/") + hidimage.ToString();
                            string   strtMedium = Server.MapPath("../resources/product/medium/") + hidimage.ToString();

                            //string newThumbSku = Server.MapPath("../resources/product/thumb/") + sku + strimg[1];
                            //if (File.Exists(newThumbSku))
                            //{
                            //    string newActualSku = Server.MapPath("../resources/product/full/") + sku + strimg[1];
                            //    string newMediumSku = Server.MapPath("../resources/product/medium/") + sku + strimg[1];

                            //    filname = sku + strimg[1];
                            //    File.Copy(strthumb, newThumbSku);
                            //    File.Copy(strtActual, newActualSku);
                            //    File.Copy(strtMedium, newMediumSku);

                            //    ////delete file
                            //    File.Delete(strthumb);
                            //    File.Delete(strtActual);
                            //    File.Delete(strtMedium);

                            //    break;
                            //}
                            //else
                            //{
                            for (int fl = 0; fl <= imgArray.Length; fl++)
                            {
                                string newThumb  = Server.MapPath("../resources/product/thumb/") + sku + imgArray[fl] + "." + strimg[1];
                                string newActual = Server.MapPath("../resources/product/full/") + sku + imgArray[fl] + "." + strimg[1];
                                string newMedium = Server.MapPath("../resources/product/medium/") + sku + imgArray[fl] + "." + strimg[1];

                                if (!File.Exists(newThumb))
                                {
                                    filname = sku + imgArray[fl] + "." + strimg[1];
                                    File.Copy(strthumb, newThumb);
                                    File.Copy(strtActual, newActual);
                                    File.Copy(strtMedium, newMedium);

                                    ////delete file
                                    File.Delete(strthumb);
                                    File.Delete(strtActual);
                                    File.Delete(strtMedium);

                                    break;
                                }
                                if (Convert.ToString(hidimage) == Convert.ToString(sku + imgArray[fl] + "." + strimg[1]))
                                {
                                    string TemnewThumb   = Server.MapPath("../resources/product/TempThumb/") + sku + imgArray[fl] + "." + strimg[1];
                                    string TempnewActual = Server.MapPath("../resources/product/TempFull/") + sku + imgArray[fl] + "." + strimg[1];
                                    string TempnewMedium = Server.MapPath("../resources/product/TempMedium/") + sku + imgArray[fl] + "." + strimg[1];

                                    File.Copy(strthumb, TemnewThumb);
                                    File.Copy(strtActual, TempnewActual);
                                    File.Copy(strtMedium, TempnewMedium);

                                    ////delete file
                                    File.Delete(strthumb);
                                    File.Delete(strtActual);
                                    File.Delete(strtMedium);

                                    filname = sku + imgArray[fl] + "." + strimg[1];
                                    File.Copy(TemnewThumb, newThumb);
                                    File.Copy(TempnewActual, newActual);
                                    File.Copy(TempnewMedium, newMedium);

                                    ////delete file
                                    File.Delete(TemnewThumb);
                                    File.Delete(TempnewActual);
                                    File.Delete(TempnewMedium);
                                    break;
                                }
                            }
                            //}

                            objprodct.imageName       = filname;
                            objprodct.productImagesId = Convert.ToInt32(lblProdutImageId);
                            objprodct.productId       = Convert.ToInt32(productid); // ddl set
                            string pr_name = objprodct.GetProductNameByProductid();

                            //if (TxtImgLbl != "")
                            //{ objprodct.imgLabel = TxtImgLbl; }
                            //else
                            //{ objprodct.imgLabel = filname; }
                            objprodct.imgLabel = Server.HtmlEncode(pr_name);
                            objprodct.UpdateProductID();

                            //delete file
                            //File.Delete(strPath);

                            //gvAdmin.EditIndex = -1;
                            BindProduct();
                            lblmsg.Visible = true;
                            lblmsgs.Text   = "Product image updated successfully.";
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }
                        finally { objprodct = null; }
                    }
                }
            }
        }
    }
    protected void gvAdmin_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.Equals("UpdateSku"))
        {
            int index = Convert.ToInt32(e.CommandArgument.ToString());

            DropDownList ddlSkus          = (DropDownList)gvAdmin.Rows[index].FindControl("ddlsku");
            TextBox      txtImgLabl       = (TextBox)gvAdmin.Rows[index].FindControl("txtImgLabl");
            HiddenField  lblProdutImageId = (HiddenField)gvAdmin.Rows[index].FindControl("hidProductImageIds");
            HiddenField  hidimage         = (HiddenField)gvAdmin.Rows[index].FindControl("hdmenuimage");
            Label        hidsku           = (Label)gvAdmin.Rows[index].FindControl("hidsku");

            productManager objprodct = new productManager();
            try
            {
                char[] imgArray = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };

                string filname = string.Empty;

                //string chkFine = hidimage.Value;
                //var lastChar = chkFine[chkFine.Length - 1];

                string[] strimg     = hidimage.Value.Split('.');
                string   strthumb   = Server.MapPath("../resources/product/thumb/") + hidimage.Value.ToString();
                string   strtActual = Server.MapPath("../resources/product/full/") + hidimage.Value.ToString();
                string   strtMedium = Server.MapPath("../resources/product/medium/") + hidimage.Value.ToString();

                string newThumb  = string.Empty;
                string newActual = string.Empty;
                string newMedium = string.Empty;

                string TemnewThumb   = string.Empty;
                string TempnewActual = string.Empty;
                string TempnewMedium = string.Empty;

                newThumb  = Server.MapPath("../resources/product/thumb/") + ddlSkus.SelectedItem.Text + "." + strimg[1];
                newActual = Server.MapPath("../resources/product/full/") + ddlSkus.SelectedItem.Text + "." + strimg[1];
                newMedium = Server.MapPath("../resources/product/medium/") + ddlSkus.SelectedItem.Text + "." + strimg[1];

                if (!File.Exists(newThumb))
                {
                    filname = ddlSkus.SelectedItem.Text + "." + strimg[1];
                    File.Copy(strthumb, newThumb);
                    File.Copy(strtActual, newActual);
                    File.Copy(strtMedium, newMedium);

                    ////delete file
                    File.Delete(strthumb);
                    File.Delete(strtActual);
                    File.Delete(strtMedium);
                }
                else if (Convert.ToString(hidimage.Value) == Convert.ToString(ddlSkus.SelectedItem.Text + "." + strimg[1]))
                {
                    TemnewThumb   = Server.MapPath("../resources/product/TempThumb/") + ddlSkus.SelectedItem.Text + "." + strimg[1];
                    TempnewActual = Server.MapPath("../resources/product/TempFull/") + ddlSkus.SelectedItem.Text + "." + strimg[1];
                    TempnewMedium = Server.MapPath("../resources/product/TempMedium/") + ddlSkus.SelectedItem.Text + "." + strimg[1];

                    File.Copy(strthumb, TemnewThumb);
                    File.Copy(strtActual, TempnewActual);
                    File.Copy(strtMedium, TempnewMedium);

                    ////delete file
                    File.Delete(strthumb);
                    File.Delete(strtActual);
                    File.Delete(strtMedium);

                    filname = ddlSkus.SelectedItem.Text + "." + strimg[1];
                    File.Copy(TemnewThumb, newThumb);
                    File.Copy(TempnewActual, newActual);
                    File.Copy(TempnewMedium, newMedium);

                    ////delete file
                    File.Delete(TemnewThumb);
                    File.Delete(TempnewActual);
                    File.Delete(TempnewMedium);
                }
                else
                {
                    for (int fl = 0; fl <= imgArray.Length; fl++)
                    {
                        newThumb  = Server.MapPath("../resources/product/thumb/") + ddlSkus.SelectedItem.Text + imgArray[fl] + "." + strimg[1];
                        newActual = Server.MapPath("../resources/product/full/") + ddlSkus.SelectedItem.Text + imgArray[fl] + "." + strimg[1];
                        newMedium = Server.MapPath("../resources/product/medium/") + ddlSkus.SelectedItem.Text + imgArray[fl] + "." + strimg[1];

                        if (!File.Exists(newThumb))
                        {
                            filname = ddlSkus.SelectedItem.Text + imgArray[fl] + "." + strimg[1];
                            File.Copy(strthumb, newThumb);
                            File.Copy(strtActual, newActual);
                            File.Copy(strtMedium, newMedium);

                            ////delete file
                            File.Delete(strthumb);
                            File.Delete(strtActual);
                            File.Delete(strtMedium);

                            break;
                        }
                        if (Convert.ToString(hidimage.Value) == Convert.ToString(ddlSkus.SelectedItem.Text + imgArray[fl] + "." + strimg[1]))
                        {
                            TemnewThumb   = Server.MapPath("../resources/product/TempThumb/") + ddlSkus.SelectedItem.Text + imgArray[fl] + "." + strimg[1];
                            TempnewActual = Server.MapPath("../resources/product/TempFull/") + ddlSkus.SelectedItem.Text + imgArray[fl] + "." + strimg[1];
                            TempnewMedium = Server.MapPath("../resources/product/TempMedium/") + ddlSkus.SelectedItem.Text + imgArray[fl] + "." + strimg[1];

                            File.Copy(strthumb, TemnewThumb);
                            File.Copy(strtActual, TempnewActual);
                            File.Copy(strtMedium, TempnewMedium);

                            ////delete file
                            File.Delete(strthumb);
                            File.Delete(strtActual);
                            File.Delete(strtMedium);

                            filname = ddlSkus.SelectedItem.Text + imgArray[fl] + "." + strimg[1];
                            File.Copy(TemnewThumb, newThumb);
                            File.Copy(TempnewActual, newActual);
                            File.Copy(TempnewMedium, newMedium);

                            ////delete file
                            File.Delete(TemnewThumb);
                            File.Delete(TempnewActual);
                            File.Delete(TempnewMedium);
                            break;
                        }
                    }
                }


                objprodct.imageName       = filname;
                objprodct.productImagesId = Convert.ToInt32(lblProdutImageId.Value);
                objprodct.productId       = Convert.ToInt32(ddlSkus.SelectedValue); // ddl set
                string pr_name = objprodct.GetProductNameByProductid();

                //if (txtImgLabl.Text != "")
                //{ objprodct.imgLabel = txtImgLabl.Text; }
                //else { objprodct.imgLabel = filname; }
                objprodct.imgLabel = Server.HtmlEncode(pr_name);

                objprodct.UpdateProductID();

                //delete file
                //File.Delete(strPath);

                //gvAdmin.EditIndex = -1;
                BindProduct();
                lblmsg.Visible = true;
                lblmsgs.Text   = "Product image updated successfully.";
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally { objprodct = null; }
        }
    }