diff --git a/Controllers/newsController.cs b/Controllers/newsController.cs index a0562c1..8299bed 100644 --- a/Controllers/newsController.cs +++ b/Controllers/newsController.cs @@ -19,6 +19,9 @@ namespace WebApplication1.Controllers // GET: news public ActionResult Index() { + var news = db.news.ToList(); + var users = db.users.ToList(); + var models = new Tuple, List>(news, users); return View(db.news.ToList()); } @@ -34,6 +37,8 @@ namespace WebApplication1.Controllers { return HttpNotFound(); } + var user = db.users.Find(news.userID); + // var model = new Tuple(news,user); return View(news); } @@ -67,46 +72,59 @@ namespace WebApplication1.Controllers if (Request.Files.Count > 0) { setLists(); - var image = Request.Files[0]; - if ( image.ContentLength > 1024 * 1024) + + if (news.title != null && news.link != null && news.cat != null && news.tag != null) { - ModelState.AddModelError("imageFile", "File size cannot exceed 1MB."); - return RedirectToAction("Index"); - } + var image = Request.Files[0]; + if (image.ContentLength > 1024 * 1024) + { + //check if fields are empty + ModelState.AddModelError("imageFile", "File size cannot exceed 1MB."); + return RedirectToAction("Index"); + } - // Check file extension - string fileExtension = Path.GetExtension(image.FileName).ToLower(); - //if (fileExtension != ".jpg" || fileExtension != ".jpeg" || fileExtension != ".png") - if (!new[] { ".jpg", ".jpeg", ".png" }.Contains(fileExtension)) - { - ModelState.AddModelError("image", "Only JPG, JPEG, and PNG files are allowed."); + // Check file extension + string fileExtension = Path.GetExtension(image.FileName).ToLower(); + //if (fileExtension != ".jpg" || fileExtension != ".jpeg" || fileExtension != ".png") + if (!new[] { ".jpg", ".jpeg", ".png" }.Contains(fileExtension)) + { + ModelState.AddModelError("image", "Only JPG, JPEG, and PNG files are allowed."); + } + else + { + int length = 10; // Desired length of the random string + string allowedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + char[] chars = new char[length]; + Random rand = new Random(); + string imgname = ""; + for (int i = 0; i < length; i++) + { + chars[i] = allowedChars[rand.Next(0, allowedChars.Length)]; + imgname += "" + chars[i]; + } + var path = $"~/Media/news/" + imgname + fileExtension; + image.SaveAs(Server.MapPath(path)); + news.image = path; + } + news.userID = Convert.ToInt32(Session["Userid"]); + news.views = 0; + news.publishDate = DateTime.Now; + + + db.news.Add(news); + db.SaveChanges(); + return RedirectToAction("Index"); + } else { - int length = 10; // Desired length of the random string - string allowedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - char[] chars = new char[length]; - Random rand = new Random(); - string imgname=""; - for (int i = 0; i < length; i++) - { - chars[i] = allowedChars[rand.Next(0, allowedChars.Length)]; - imgname = "" + chars[i]; - } - - image.SaveAs(Server.MapPath($"~/Media/news/"+imgname+fileExtension)); + ModelState.AddModelError("", "no field can be empty"); } + } - /* - Request.Files[i].SaveAs(Server.MapPath($"~/Media/User/avatar.png")); - - db.news.Add(news); - db.SaveChanges(); - return RedirectToAction("Index"); - */ } return View(news); @@ -170,7 +188,6 @@ namespace WebApplication1.Controllers } void setLists() { - var news = db.news.ToList(); var cat = db.categories.ToList(); ViewBag.categoryTitle = cat; var tags = db.tags.ToList(); diff --git a/Media/news/H.jpg b/Media/news/U.jpg similarity index 100% rename from Media/news/H.jpg rename to Media/news/U.jpg diff --git a/Views/news/Create.cshtml b/Views/news/Create.cshtml index d42c0fa..a48c1f7 100644 --- a/Views/news/Create.cshtml +++ b/Views/news/Create.cshtml @@ -54,7 +54,7 @@
@Html.LabelFor(model => model.tag, htmlAttributes: new { @class = "control-label col-md-2" })
- @foreach (var item in ViewBag.tagTitle) { diff --git a/Views/news/Details.cshtml b/Views/news/Details.cshtml index 892f45c..501c28d 100644 --- a/Views/news/Details.cshtml +++ b/Views/news/Details.cshtml @@ -9,7 +9,7 @@

news


-
+
@Html.DisplayNameFor(model => model.title)
@@ -23,6 +23,7 @@
+ @Html.DisplayFor(model => model.image)
diff --git a/Views/news/Index.cshtml b/Views/news/Index.cshtml index 876ca8d..1dd3a67 100644 --- a/Views/news/Index.cshtml +++ b/Views/news/Index.cshtml @@ -1,5 +1,4 @@ @model IEnumerable - @{ ViewBag.Title = "Index"; } @@ -14,30 +13,15 @@ @Html.DisplayNameFor(model => model.title) - - @Html.DisplayNameFor(model => model.image) - - - @Html.DisplayNameFor(model => model.link) - - - @Html.DisplayNameFor(model => model.summary) - @Html.DisplayNameFor(model => model.cat) - - @Html.DisplayNameFor(model => model.tag) - @Html.DisplayNameFor(model => model.publishDate) @Html.DisplayNameFor(model => model.userID) - - @Html.DisplayNameFor(model => model.Content) - @Html.DisplayNameFor(model => model.views) @@ -49,30 +33,15 @@ @Html.DisplayFor(modelItem => item.title) - - @Html.DisplayFor(modelItem => item.image) - - - @Html.DisplayFor(modelItem => item.link) - - - @Html.DisplayFor(modelItem => item.summary) - @Html.DisplayFor(modelItem => item.cat) - - @Html.DisplayFor(modelItem => item.tag) - @Html.DisplayFor(modelItem => item.publishDate) @Html.DisplayFor(modelItem => item.userID) - - @Html.DisplayFor(modelItem => item.Content) - @Html.DisplayFor(modelItem => item.views)