Exemplo n.º 1
0
        // Methods toward ImageDesc Table.


        /// <summary>
        /// First validate then Update/Save new imagedesc object..
        /// </summary>
        /// <param name="imagedesc"></param>
        public void SaveImageDesc(ImageDesc imagedesc)
        {
            ICollection <ValidationResult> validationresults;

            if (!imagedesc.Validate(out validationresults))
            {
                throw new ApplicationException();
            }

            if (imagedesc.ImgDescID == 0)
            {
                ImageDescDAL.SaveImageDesc(imagedesc);
            }
            else
            {
                ImageDescDAL.UpdateImageDesc(imagedesc);
            }
        }
        // Methods toward ImageDesc Table.
        /// <summary>
        /// First validate then Update/Save new imagedesc object..
        /// </summary>
        /// <param name="imagedesc"></param>
        public void SaveImageDesc(ImageDesc imagedesc)
        {
            ICollection<ValidationResult> validationresults;
            if (!imagedesc.Validate(out validationresults))
            {
                throw new ApplicationException();
            }

            if (imagedesc.ImgDescID == 0)
            {
                ImageDescDAL.SaveImageDesc(imagedesc);
            }
            else
            {
                ImageDescDAL.UpdateImageDesc(imagedesc);
            }
        }
        /// <summary>
        /// Method to Upload image reference on server and save on disk.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void UploadButton_Click(object sender, EventArgs e)
        {
            // Have Onservervalidate="CustomValidator_ServerValidate" on my checkboxlist so need to have ISValid to prevent from saving file.
            if (IsValid) {
                if (ModelState.IsValid)
                {
                    try
                    {
                        // Catching stream and extension from filename. from Select button.
                        var selectedPic = Select.FileContent;
                        var extension = Path.GetExtension(Select.FileName);

                        // Creating Image Reference object and populating it..
                        var image = ImageProp;
                        // Name selected by user from Textbox.

                        image.UpLoaded = DateTime.Now;

                        //Generating "Uniqe" filename, but removing extension and also adding selecte.filename extension instead.
                        image.SaveName = String.Format("{0}{1}",Path.GetFileNameWithoutExtension(Path.GetRandomFileName()),extension);

                        // Saving Image Stream and image saveName onto disk.
                        image.SaveImage(selectedPic, image.SaveName);
                        // Saving the new picture with its properties, from stored procedure i return the newly created Image primary key.
                        Service.SaveImage(image);

                        // Creating a foreach loop that convert all checkbox items into listitem then for eatch selected checkbox make a SQL call binding the image to that category.
                        var imagedesc = new ImageDesc();
                        foreach (var item in CheckBoxLisT.Items.Cast<ListItem>().Where(item => item.Selected))
                        {
                            // TODO: här e jag.
                            imagedesc = new ImageDesc();
                            imagedesc.CategoryID = int.Parse(item.Value);
                            imagedesc.ImageID = image.ImageID;
                            imagedesc.Edited = DateTime.Now;
                            imagedesc.ImgName = PictureName.Text;
                            Service.SaveImageDesc(imagedesc);
                        }
                        // Message saved in Extension method and redirect to last saved Category.
                        Page.SetTempData("Confirmation", String.Format("Bilden {0} har sparats", imagedesc.ImgName));
                        Response.RedirectToRoute("ImageList", new  { CategoryID = imagedesc.CategoryID });
                        Context.ApplicationInstance.CompleteRequest();
                    }
                    catch (Exception)
                    {
                        ModelState.AddModelError(String.Empty, "Fel inträffade när bild  skulle Sparas.");
                    }
                }
            }
        }