Beispiel #1
0
        private void Save(string path, PictureTransfer picTransfer)
        {
            FileStream fileStream = File.Create(path, picTransfer.ContentLength);

            // Initialize the bytes array with the stream length and then fill it with data
            byte[] bytesInStream = new byte[picTransfer.ContentLength];
            picTransfer.Stream.Read(bytesInStream, 0, bytesInStream.Length);

            // Use write method to write to the file specified above
            fileStream.Write(bytesInStream, 0, bytesInStream.Length);
            fileStream.Close();
        }
Beispiel #2
0
        public ActionResult Edit(ProductDto product, HttpPostedFileBase[] files)
        {
            if (ModelState.IsValid)
            {
                string            physicalPath = Server.MapPath(virtualPath);
                PictureTransfer[] picTransfers = new PictureTransfer[files.Length];

                // specify Picture states
                for (int i = 0; i < product.ProductPictures.Count(); i++)
                {
                    ProductPictureDto prodPic = product.ProductPictures.ElementAt(i);

                    if ((Request.Form["changeRadio_" + i] as string) != null)
                    {
                        if ((Request.Form["changeRadio_" + i] as string).Equals("state_deleted"))
                        {
                            picTransfers[i] = new PictureTransfer {
                                State = PictureTransfer.States.Deleted
                            };
                            //picTransfers[i].State = PictureTransfer.States.Deleted;
                            //System.IO.File.Delete(Server.MapPath(prodPic.FilePath));
                        }
                        else if ((Request.Form["changeRadio_" + i] as string).Equals("state_updated"))
                        {
                            if (files[i] != null)
                            {
                                picTransfers[i] = new PictureTransfer
                                {
                                    State         = PictureTransfer.States.Updated,
                                    FileName      = files[i].FileName,
                                    ContentType   = files[i].ContentType,
                                    ContentLength = files[i].ContentLength,
                                    Stream        = files[i].InputStream
                                };

                                //System.IO.File.Delete(Server.MapPath(prodPic.FilePath));
                                //string virtualPath;
                                //SaveProductPicture(files[i], "~/Images", prodPic, out virtualPath);
                                //ModifyProductPicture(files[i], prodPic, virtualPath);
                            }
                        }
                        else if ((Request.Form["changeRadio_" + i] as string).Equals("state_unchanged"))
                        {
                            picTransfers[i] = new PictureTransfer
                            {
                                State = PictureTransfer.States.Unchanged
                            };
                            //picTransfers[i].State = PictureTransfer.States.Unchanged;
                        }
                    }
                    else
                    {
                        picTransfers[i] = new PictureTransfer
                        {
                            State         = PictureTransfer.States.Added,
                            Stream        = files[i].InputStream,
                            ContentType   = files[i].ContentType,
                            FileName      = files[i].FileName,
                            ContentLength = files[i].ContentLength
                        };
                        //SaveProductPicture(files[i], "~/Images", prodPic, out virtualPath);
                        //ModifyProductPicture(files[i], prodPic, virtualPath);
                        //prodPic.State = "state_added";
                    }
                }

                _productService.Update(product, virtualPath, physicalPath, picTransfers);
                ViewBag.Success = true;
            }

            ProductDto prod = _productService.Get(p => p.Id.Equals(product.Id)).FirstOrDefault();

            prod.ProductPropertyValues = prod.ProductPropertyValues.OrderBy(p => p.ProductTypePropertyOrderNumber).ToList();
            prod.ProductPictures       = product.ProductPictures.OrderBy(pp => pp.PictureOrder).ToList();
            @ViewBag.PicOrders         =
                (IEnumerable <SelectListItem>)prod.ProductPictures
                .Select(p => new SelectListItem {
                Text = p.PictureOrder.ToString(), Value = p.PictureOrder.ToString()
            });
            return(View("~/Areas/Admin/Views/Products/Edit.cshtml", prod));
        }