add news and stuff

This commit is contained in:
2024-07-30 17:51:04 +03:30
parent 323910fb41
commit f310a94d5c
5 changed files with 51 additions and 64 deletions

View File

@ -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>, List<user>>(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<object,object>(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();