Beispiel #1
0
        public ActionResult Edit(NewsViewModel newsViewModel, HttpPostedFileBase ImageFile)
        {
            if (ModelState.IsValid)
            {
                var newNews = db.News.Find(newsViewModel.NewsID);
                if (newNews == null)
                {
                    return(HttpNotFound());
                }

                // save image to disk
                // /NewsImages/imagename.png
                if (ImageFile != null)
                {
                    // create relative path
                    string relativePath = "/NewsImages/" + DateTime.Now.Ticks.ToString() + "_" + ImageFile.FileName;
                    // map the relative to physical path
                    string physicalPath = Server.MapPath(relativePath);


                    // check if the image folder exists
                    string imageFolder = Path.GetDirectoryName(physicalPath);
                    if (!Directory.Exists(imageFolder))
                    {
                        Directory.CreateDirectory(imageFolder);
                    }

                    // save the image to physical path
                    ImageFile.SaveAs(physicalPath);
                    newsViewModel.ImageUrl = relativePath;
                }

                newsViewModel.UpdateNews(newNews);
                newNews.Categories.Clear();

                //always check if the object null before usage
                if (newsViewModel.CategoryID != null)
                {
                    foreach (var cID in newsViewModel.CategoryID)
                    {
                        var category = db.Categories.Find(cID);
                        if (category != null)
                        {
                            newNews.Categories.Add(category);
                        }
                    }
                }

                db.Entry(newNews).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.UserID = new SelectList(db.Users, "UserID", "UserName", newsViewModel.UserID);
            return(View(newsViewModel));
        }
Beispiel #2
0
        public NewsPage()
        {
            InitializeComponent();

            var vm = new NewsViewModel(Navigation, new NewsDataStore());

            BindingContext = vm;
            vm.IsBusy      = true;
            Task.Run(() =>
            {
                vm.UpdateNews();
                vm.IsBusy = false;
            });
        }