コード例 #1
0
        public async Task <IActionResult> Edit(int?id, [Bind("Header, Content, Year")] Models.NewsItem newsItem)
        {
            //if (id != newsItem.NewsItemId)
            //{
            //    return NotFound();
            //}

            if (id == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                string webRootPath = _hostingEnvironment.WebRootPath;
                var    files       = HttpContext.Request.Form.Files;

                var newsFromDb = _db.NewsItem.Where(m => m.NewsItemId == id).FirstOrDefault();

                if (files.Count > 0 && files[0] != null)
                {
                    //if user uploads a new image
                    var uploads = Path.Combine(webRootPath, SD.NewsImageFolder);
                    //var extension_new = Path.GetExtension(files[0].FileName);
                    //var extension_old = Path.GetExtension(newsFromDb.Image);

                    var newFilename = Path.GetFileName(files[0].FileName);
                    var oldFilename = newsFromDb.FileName;

                    if (System.IO.File.Exists(Path.Combine(uploads, oldFilename)))
                    {
                        System.IO.File.Delete(Path.Combine(uploads, oldFilename));
                    }
                    using (var filestream = new FileStream(Path.Combine(uploads, newFilename), FileMode.Create))
                    {
                        files[0].CopyTo(filestream);
                    }
                    newsFromDb.FilePath = @"\" + SD.NewsImageFolder + @"\" + newFilename;
                    newsFromDb.FileName = newFilename;
                }

                //if (newsItem.FilePath != null)
                //{
                //    newsFromDb.FilePath = newsItem.FilePath;
                //}

                newsFromDb.Header  = newsItem.Header;
                newsFromDb.Content = newsItem.Content;
                newsFromDb.Year    = newsItem.Year;
                //newsFromDb.Image = newsItem.Image;
                //newsFromDb.FileId = file.FileId;

                await _db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            ViewData["Year"] = new SelectList(new string[] { "2019", "2018", "2017", "2016" });
            return(View(newsItem));
        }
コード例 #2
0
 // PUT: api/NewsItem/5
 public void Put(int id, Models.NewsItem value)
 {
     Database.Model1   db = new Database.Model1();
     Database.NewsItem ni = db.NewsItems.Find(id);
     ni.HeadLine     = value.HeadLine;
     ni.NewsItemDate = value.StoryDate;
     db.SaveChanges();
 }
コード例 #3
0
 // POST: api/NewsItem
 public void Post(Models.NewsItem newsItem)
 {
     Database.Model1 db = new Database.Model1();
     db.NewsItems.Add(new Database.NewsItem()
     {
         HeadLine = newsItem.HeadLine, NewsItemDate = DateTime.Now
     });
     db.SaveChanges();
 }
コード例 #4
0
        /// <summary>
        /// This method fires when the user clicks the Save button in the
        /// submitNewsItem user control
        /// </summary>
        /// <param name="sender">The submitNewsItem control</param>
        /// <param name="e">The Click event</param>
        protected void submitNewsItem_Click(object sender, EventArgs e)
        {
            if (currentProgramRole.AllowedToEdit.Value || currentProgramRole.RoleFK.Value == (int)Utilities.ProgramRoleFKs.HUB_DATA_VIEWER)
            {
                //Get the item pk
                int itemPK = Convert.ToInt32(hfAddEditNewsItemPK.Value);

                if (itemPK > 0)
                {
                    //This is an edit
                    using (PyramidContext context = new PyramidContext())
                    {
                        //The current news item
                        NewsItem currentNewsItem = context.NewsItem.Find(itemPK);

                        //Fill the NewsItem fields from the form
                        currentNewsItem.ItemNum     = Convert.ToInt32(txtItemNum.Value);
                        currentNewsItem.Contents    = txtNewsItemContents.Value.ToString();
                        currentNewsItem.NewsEntryFK = currentNewsEntryPK;

                        //Set the edit-only fields
                        currentNewsItem.Editor   = User.Identity.Name;
                        currentNewsItem.EditDate = DateTime.Now;

                        //Get the existing NewsItem record
                        Models.NewsItem existingNewsItem = context.NewsItem.Find(currentNewsItem.NewsItemPK);

                        //Overwrite the existing NewsItem record with the values from the form
                        context.Entry(existingNewsItem).CurrentValues.SetValues(currentNewsItem);
                        context.SaveChanges();
                    }

                    //Show the user a success message
                    msgSys.ShowMessageToUser("success", "News Item Added", "News Item successfully edited!", 5000);
                }
                else
                {
                    //This is an add
                    using (PyramidContext context = new PyramidContext())
                    {
                        //The current news item
                        NewsItem currentNewsItem = new NewsItem();

                        //Fill the NewsItem fields from the form
                        currentNewsItem.ItemNum     = Convert.ToInt32(txtItemNum.Value);
                        currentNewsItem.Contents    = txtNewsItemContents.Value.ToString();
                        currentNewsItem.NewsEntryFK = currentNewsEntryPK;

                        //Set the create-only fields
                        currentNewsItem.Creator    = User.Identity.Name;
                        currentNewsItem.CreateDate = DateTime.Now;

                        //Add the NewsItem to the database
                        context.NewsItem.Add(currentNewsItem);
                        context.SaveChanges();
                    }

                    //Show the user a success message
                    msgSys.ShowMessageToUser("success", "News Item Added", "News Item successfully added!", 5000);
                }

                //Reset the values in the hidden field and hide the div
                hfAddEditNewsItemPK.Value  = "0";
                divAddEditNewsItem.Visible = false;

                //Bind the news items
                BindNewsItems();
            }
        }
コード例 #5
0
        public async Task <IActionResult> Create([Bind("Header, Content, Year")] Models.NewsItem newsItem)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var identityUser = await _userManager.GetUserAsync(HttpContext.User);

            if (identityUser == null)
            {
                return(RedirectToPage(nameof(Index)));
            }

            // This comes up if the user doesn't select a year
            if (newsItem.Year == -1)
            {
                ModelState.AddModelError("Year", "Please select a year");
            }

            //var news = _db.File.Find();
            //newsItem.FileId = news.FileId;

            if (ModelState.IsValid)
            {
                //newsItem.File = file;
                _db.NewsItem.Add(newsItem);
                await _db.SaveChangesAsync();

                //Save Physical Image------------------------------------------------------------------------------------
                string webRootPath = _hostingEnvironment.WebRootPath;
                var    files       = HttpContext.Request.Form.Files;

                //var photosFromDb = _db.Photo.Find(AdminPhotoVM.Photo.PhotoId);
                var newsFromDb = _db.NewsItem.Find(newsItem.NewsItemId);

                if (files.Count != 0)
                {
                    //Image(s) has been uploaded with form
                    var uploads   = Path.Combine(webRootPath, SD.NewsImageFolder);
                    var extension = Path.GetExtension(files[0].FileName);
                    var filename  = Path.GetFileName(files[0].FileName);

                    using (var filestream = new FileStream(Path.Combine(uploads, filename), FileMode.Create))
                    {
                        files[0].CopyTo(filestream); //moves to server and renames
                    }

                    //now I know the new image name, so I can save the STRING image to the database
                    newsFromDb.FilePath = @"\" + SD.NewsImageFolder + @"\" + filename;
                    newsFromDb.FileName = filename;
                }
                //else
                //{
                //    //when the user didn't give us an image so we'll upload the placeholder
                //    var uploads = Path.Combine(webRootPath, SD.NewsImageFolder + @"\" + SD.DefaultImage);
                //    System.IO.File.Copy(uploads, webRootPath + @"\" + SD.NewsImageFolder + @"\" + newsItem.NewsItemId + ".jpg");
                //    newsFromDb.Image = @"\" + SD.NewsImageFolder + @"\" + newsItem.NewsItemId + ".jpg";
                //}
                //------------------------------------------------------------------------------------------------------

                //newsItem.File = file;
                //_db.Add(newsItem);
                //_db.NewsItem.Add(newsItem);
                await _db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            ViewData["Year"] = new SelectList(new string[] { "2019", "2018", "2017", "2016" });
            return(View(newsItem));
        }