// GET: CONTENTTABLEs/Delete/5 public ActionResult Delete(int?id) { //cek session login if (Session["userId"] == null) { return(RedirectToAction("Login", "USERTABLEs", new { area = "" })); } //cek parameter id if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //menyamakan role dari user dengan role dari content var uss = Convert.ToInt32(Session["userId"]); var konten = from c in db.CONTENTTABLEs join cr in db.CONTENTROLEs on c.CONTENTID equals cr.CONTENTID join ur in db.USERROLEs on cr.ROLEID equals ur.ROLEID where (ur.USERID == uss) & (cr.CONTENTID == id) select c; var disc = Enumerable.Distinct(konten); var hasil = from all in disc select all; if (hasil.Count() == 0) { //role dari konten dengan role dari user berbeda //kalau bukan admin tidak diperbolehkan, dilempar if (Session["userRole"].ToString() != "admin") { return(RedirectToAction("Index")); } } //cek kepemilikan content if (db.CONTENTTABLEs.Where(m => m.CONTENTID == id).Select(c => c.USERID).FirstOrDefault() != uss) { //kalau bukan admin ataupun konten tersebut miliknya, dilempar if (Session["userRole"].ToString() != "admin") { return(RedirectToAction("Index")); } } //cek id di database CONTENTTABLE cONTENTTABLE = db.CONTENTTABLEs.Find(id); if (cONTENTTABLE == null) { //id tidak ada di database return(HttpNotFound()); } return(View(cONTENTTABLE)); }
public FileResult Attachment(int?id) { //cek parameter id if (id == null) { return(null); } else { //ada id di parameternya var uss = Convert.ToInt32(Session["userId"]); var konten = from c in db.CONTENTTABLEs join cr in db.CONTENTROLEs on c.CONTENTID equals cr.CONTENTID join ur in db.USERROLEs on cr.ROLEID equals ur.ROLEID where (ur.USERID == uss) & (cr.CONTENTID == id) select c; var disc = Enumerable.Distinct(konten); var hasil = from all in disc select all; if (hasil.Count() != 0 || Session["userRole"].ToString() == "admin") //role user sesuai dengan role konten || user adalah admin { CONTENTTABLE att = db.CONTENTTABLEs.Where(m => m.CONTENTID == id).FirstOrDefault(); //cek id ke database if (att != null) { string filename = att.CONTENTFILEPATH.ToString(); filename = filename.Remove(0, 18); System.Diagnostics.Debug.WriteLine(filename); var reg = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(Path.GetExtension(filename).ToLower()); string contentType = "application/unknown"; //cek file if (reg != null) { //file ada string registryContentType = reg.GetValue("Content Type") as string; if (!String.IsNullOrWhiteSpace(registryContentType)) { //tampilkan file contentType = registryContentType; return(new FilePathResult("~/UserContentFiles/" + filename, contentType)); } } return(null); } return(null); } else { //System.Diagnostics.Debug.WriteLine("wes gak admin, role e dee gak cocok sisan karo konten e"); return(null); } } }
public ActionResult DeleteConfirmed(int id) { CONTENTTABLE cONTENTTABLE = db.CONTENTTABLEs.Find(id); string path = Server.MapPath(cONTENTTABLE.CONTENTFILEPATH); if (System.IO.File.Exists(path)) { //kalau ada filenya, hapus file di lokal System.IO.File.Delete(path); } db.CONTENTTABLEs.Remove(cONTENTTABLE); db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: CONTENTTABLEs/Create public ActionResult Create() { //cek session login if (Session["userId"] == null) { return(RedirectToAction("Login", "USERTABLEs", new { area = "" })); } //ada session loginnya CONTENTTABLE cONTENTTABLE = new CONTENTTABLE(); var Results = from r in db.ROLETABLEs select new { r.ROLEID, r.ROLENAME, Checked = ((from ur in db.CONTENTROLEs where (ur.CONTENTID == 0) & (ur.ROLEID == r.ROLEID) select ur).Count() > 0) }; var myViewModel = new CONTENTTABLEVIEW(); ViewBag.CONTENTTYPEID = new SelectList(db.CONTENTTYPETABLEs, "CONTENTTYPEID", "CONTENTTYPENAME"); ViewBag.STATUSID = new SelectList(db.STATUSTABLEs, "STATUSID", "STATUSNAME"); //masukkan semua role ke checkbox var myCheckBoxList = new List <CHECKBOXVIEW>(); foreach (var item in Results) { myCheckBoxList.Add(new CHECKBOXVIEW { Id = item.ROLEID, Name = item.ROLENAME, Checked = item.Checked }); } myViewModel.contentRole = myCheckBoxList; return(View(myViewModel)); }
public ActionResult Edit(CONTENTTABLEVIEW cONTENTTABLE, HttpPostedFileBase CONTENTFILEPATH, int id) { string path = Server.MapPath("~/UserContentFiles/"); if (!Directory.Exists(path)) { //buat direktori apabila tidak ada Directory.CreateDirectory(path); } //cek content title if (db.CONTENTTABLEs.Where(m => m.CONTENTTITLE == cONTENTTABLE.contentTitle && m.CONTENTID != cONTENTTABLE.contentId).FirstOrDefault() != null) { //content title sudah ada ViewBag.CONTENTTITLENOT = "Content Title exists"; var Results = from r in db.ROLETABLEs select new { r.ROLEID, r.ROLENAME, Checked = ((from ur in db.CONTENTROLEs where (ur.CONTENTID == 0) & (ur.ROLEID == r.ROLEID) select ur).Count() > 0) }; var myViewModel = new CONTENTTABLEVIEW(); ViewBag.CONTENTTYPEID = new SelectList(db.CONTENTTYPETABLEs, "CONTENTTYPEID", "CONTENTTYPENAME", cONTENTTABLE.CONTENTTYPEID); ViewBag.STATUSID = new SelectList(db.STATUSTABLEs, "STATUSID", "STATUSNAME", cONTENTTABLE.STATUSID); var myCheckBoxList = new List <CHECKBOXVIEW>(); foreach (var item2 in Results) { myCheckBoxList.Add(new CHECKBOXVIEW { Id = item2.ROLEID, Name = item2.ROLENAME, Checked = item2.Checked }); } myViewModel.contentRole = myCheckBoxList; return(View(myViewModel)); } //cek apakah user input file if (CONTENTFILEPATH != null) { HttpPostedFileBase File = Request.Files["contentFilePath"]; var supportedTypes = new[] { "txt", "doc", "docx", "pdf", "xls", "xlsx" }; var fileExt = System.IO.Path.GetExtension(File.FileName).Substring(1); if (!supportedTypes.Contains(fileExt)) { //file bukan dokumen ModelState.AddModelError("contentFilePath", "Only document file types allowed."); var Results = from r in db.ROLETABLEs select new { r.ROLEID, r.ROLENAME, Checked = ((from ur in db.CONTENTROLEs where (ur.CONTENTID == 0) & (ur.ROLEID == r.ROLEID) select ur).Count() > 0) }; var myViewModel = new CONTENTTABLEVIEW(); ViewBag.CONTENTTYPEID = new SelectList(db.CONTENTTYPETABLEs, "CONTENTTYPEID", "CONTENTTYPENAME", cONTENTTABLE.CONTENTTYPEID); ViewBag.STATUSID = new SelectList(db.STATUSTABLEs, "STATUSID", "STATUSNAME", cONTENTTABLE.STATUSID); var myCheckBoxList = new List <CHECKBOXVIEW>(); foreach (var item2 in Results) { myCheckBoxList.Add(new CHECKBOXVIEW { Id = item2.ROLEID, Name = item2.ROLENAME, Checked = item2.Checked }); } myViewModel.contentRole = myCheckBoxList; return(View(myViewModel)); } //cek ukuran file if (CONTENTFILEPATH.ContentLength > 10000000) { //ukuran file > 10mb ModelState.AddModelError("contentFilePath", "Only for <= 10MB file allowed."); var Results = from r in db.ROLETABLEs select new { r.ROLEID, r.ROLENAME, Checked = ((from ur in db.CONTENTROLEs where (ur.CONTENTID == 0) & (ur.ROLEID == r.ROLEID) select ur).Count() > 0) }; var myViewModel = new CONTENTTABLEVIEW(); ViewBag.CONTENTTYPEID = new SelectList(db.CONTENTTYPETABLEs, "CONTENTTYPEID", "CONTENTTYPENAME", cONTENTTABLE.CONTENTTYPEID); ViewBag.STATUSID = new SelectList(db.STATUSTABLEs, "STATUSID", "STATUSNAME", cONTENTTABLE.STATUSID); var myCheckBoxList = new List <CHECKBOXVIEW>(); foreach (var item2 in Results) { myCheckBoxList.Add(new CHECKBOXVIEW { Id = item2.ROLEID, Name = item2.ROLENAME, Checked = item2.Checked }); } myViewModel.contentRole = myCheckBoxList; return(View(myViewModel)); } else { //tipe file dokumen dan ukurannya <= 10mb CONTENTTABLE cONTENTTABLE2 = db.CONTENTTABLEs.Find(id); string path2 = Server.MapPath(cONTENTTABLE2.CONTENTFILEPATH); if (System.IO.File.Exists(path2)) { System.IO.File.Delete(path2); } //get started here string ext = Path.GetExtension(File.FileName); var nameNew = DateTime.Now.ToString("H-mm-ss_dd-MM-yyyy"); CONTENTFILEPATH.SaveAs(path + nameNew.ToString() + Path.GetExtension(File.FileName)); string path_relative = VirtualPathUtility.ToAbsolute("~/UserContentFiles/").ToString() + nameNew.ToString() + Path.GetExtension(File.FileName).ToString(); cONTENTTABLE.contentFilePath = path_relative.ToString(); } } else { //hapus file lama di lokal CONTENTTABLE cONTENTTABLE3 = db.CONTENTTABLEs.Find(id); string path3 = Server.MapPath(cONTENTTABLE3.CONTENTFILEPATH); if (System.IO.File.Exists(path3)) { System.IO.File.Delete(path3); } cONTENTTABLE.contentFilePath = null; } //save data lama var item = db.CONTENTTABLEs.Find(cONTENTTABLE.contentId); var oldUser = item.USERID; var oldContent = item.CONTENTID; var oldDate = item.CONTENTDATE; //hapus row lama db.Entry(item).State = EntityState.Deleted; db.SaveChanges(); //System.Diagnostics.Debug.WriteLine("inserted keyword : " + cONTENTTABLE.contentKeyword); //masukkan row baru db.CONTENTTABLEs.Add(new CONTENTTABLE() { CONTENTTITLE = cONTENTTABLE.contentTitle, CONTENTDESCRIPTION = cONTENTTABLE.contentDescription, CONTENTLINK = cONTENTTABLE.contentLink, CONTENTFILEPATH = cONTENTTABLE.contentFilePath, CONTENTTYPEID = cONTENTTABLE.CONTENTTYPEID.Value, USERID = Convert.ToInt32(oldUser), STATUSID = cONTENTTABLE.STATUSID.Value, CONTENTDATE = oldDate, CONTENTKEYWORD = cONTENTTABLE.contentKeyword }); db.SaveChanges(); var newId = db.CONTENTTABLEs.Where(m => m.CONTENTTITLE == cONTENTTABLE.contentTitle).FirstOrDefault(); //masukkan role ke content role foreach (var item3 in cONTENTTABLE.contentRole) { if (item3.Checked) { db.CONTENTROLEs.Add(new CONTENTROLE() { CONTENTID = newId.CONTENTID, ROLEID = item3.Id }); } } //end db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: CONTENTTABLEs/Edit/5 public ActionResult Edit(int?id) { // cek session login if (Session["userId"] == null) { return(RedirectToAction("Login", "USERTABLEs", new { area = "" })); } //cek parameter id if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //ambil userrole dari id user var uss = Convert.ToInt32(Session["userId"]); var konten = from c in db.CONTENTTABLEs join cr in db.CONTENTROLEs on c.CONTENTID equals cr.CONTENTID join ur in db.USERROLEs on cr.ROLEID equals ur.ROLEID where (ur.USERID == uss) & (cr.CONTENTID == id) select c; var disc = Enumerable.Distinct(konten); var hasil = from all in disc select all; //cek apakah role content dimiliki oleh role user if (hasil.Count() == 0) { //user tidak punya role yang sama dengan content if (Session["userRole"].ToString() != "admin") { //kalau bukan admin, dilempar return(RedirectToAction("Index")); } } //kalau admin bisa semua //cek apakah user berhak mengeditnya if (db.CONTENTTABLEs.Where(m => m.CONTENTID == id).Select(c => c.USERID).FirstOrDefault() != uss) { // kalau contentnya bukan miliknya, ya gak bisa lah if (Session["userRole"].ToString() != "admin") { //kalau admin, semua content bisa dieditnya return(RedirectToAction("Index")); } } //divider CONTENTTABLE cONTENTTABLE = db.CONTENTTABLEs.Find(id); if (cONTENTTABLE == null) { return(HttpNotFound()); } var Results = from r in db.ROLETABLEs select new { r.ROLEID, r.ROLENAME, Checked = ((from ur in db.CONTENTROLEs where (ur.CONTENTID == id) & (ur.ROLEID == r.ROLEID) select ur).Count() > 0) }; //masukkan semua data dari model ke viewmodel var myViewModel = new CONTENTTABLEVIEW(); myViewModel.contentId = id.Value; myViewModel.contentTitle = cONTENTTABLE.CONTENTTITLE; myViewModel.contentDescription = cONTENTTABLE.CONTENTDESCRIPTION; myViewModel.contentLink = cONTENTTABLE.CONTENTLINK; myViewModel.contentFilePath = null; myViewModel.CONTENTTYPEID = cONTENTTABLE.CONTENTTYPEID; myViewModel.USERID = cONTENTTABLE.USERID; myViewModel.STATUSID = cONTENTTABLE.STATUSID; myViewModel.contentDate = cONTENTTABLE.CONTENTDATE; myViewModel.contentKeyword = cONTENTTABLE.CONTENTKEYWORD; ViewBag.STATUSID = new SelectList(db.STATUSTABLEs, "STATUSID", "STATUSNAME", cONTENTTABLE.STATUSID); ViewBag.CONTENTTYPEID = new SelectList(db.CONTENTTYPETABLEs, "CONTENTTYPEID", "CONTENTTYPENAME", cONTENTTABLE.CONTENTTYPEID); var myCheckBoxList = new List <CHECKBOXVIEW>(); foreach (var item in Results) { myCheckBoxList.Add(new CHECKBOXVIEW { Id = item.ROLEID, Name = item.ROLENAME, Checked = item.Checked }); } myViewModel.contentRole = myCheckBoxList; return(View(myViewModel)); }
public ActionResult Create(CONTENTTABLEVIEW contentTableView, HttpPostedFileBase contentFilePath) { string path = Server.MapPath("~/UserContentFiles/"); //kalau direktori tidak ada, dibuatkan if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } //cek title apakah ada yang sama if (db.CONTENTTABLEs.Where(c => c.CONTENTTITLE == contentTableView.contentTitle).FirstOrDefault() != null) { //title sudah ada ViewBag.CONTENTTITLENOT = "Content Title exists"; CONTENTTABLE cONTENTTABLE = new CONTENTTABLE(); var Results = from r in db.ROLETABLEs select new { r.ROLEID, r.ROLENAME, Checked = ((from ur in db.CONTENTROLEs where (ur.CONTENTID == 0) & (ur.ROLEID == r.ROLEID) select ur).Count() > 0) }; var myViewModel = new CONTENTTABLEVIEW(); ViewBag.CONTENTTYPEID = new SelectList(db.CONTENTTYPETABLEs, "CONTENTTYPEID", "CONTENTTYPENAME"); ViewBag.STATUSID = new SelectList(db.STATUSTABLEs, "STATUSID", "STATUSNAME"); var myCheckBoxList = new List <CHECKBOXVIEW>(); foreach (var item in Results) { myCheckBoxList.Add(new CHECKBOXVIEW { Id = item.ROLEID, Name = item.ROLENAME, Checked = item.Checked }); } myViewModel.contentRole = myCheckBoxList; return(View(myViewModel)); } //title tersedia //cek apakah user insert file if (contentFilePath != null || contentTableView.contentFilePath != null) { //user insert file HttpPostedFileBase File = Request.Files["contentFilePath"]; var supportedTypes = new[] { "txt", "doc", "docx", "pdf", "xls", "xlsx" }; var fileExt = System.IO.Path.GetExtension(File.FileName).Substring(1); //cek extention if (!supportedTypes.Contains(fileExt)) { //bukan tipe dokumen ModelState.AddModelError("CONTENTFILEPATH", "Only document file type is allowed."); CONTENTTABLE cONTENTTABLE = new CONTENTTABLE(); var Results = from r in db.ROLETABLEs select new { r.ROLEID, r.ROLENAME, Checked = ((from ur in db.CONTENTROLEs where (ur.CONTENTID == 0) & (ur.ROLEID == r.ROLEID) select ur).Count() > 0) }; var myViewModel = new CONTENTTABLEVIEW(); ViewBag.CONTENTTYPEID = new SelectList(db.CONTENTTYPETABLEs, "CONTENTTYPEID", "CONTENTTYPENAME"); ViewBag.STATUSID = new SelectList(db.STATUSTABLEs, "STATUSID", "STATUSNAME"); var myCheckBoxList = new List <CHECKBOXVIEW>(); foreach (var item in Results) { myCheckBoxList.Add(new CHECKBOXVIEW { Id = item.ROLEID, Name = item.ROLENAME, Checked = item.Checked }); } myViewModel.contentRole = myCheckBoxList; return(View(myViewModel)); } //cek ukuran file if (contentFilePath.ContentLength > 10000000) { //ukuran file > 10mb ModelState.AddModelError("CONTENTFILEPATH", "Only for <= 10MB file is allowed."); CONTENTTABLE cONTENTTABLE = new CONTENTTABLE(); var Results = from r in db.ROLETABLEs select new { r.ROLEID, r.ROLENAME, Checked = ((from ur in db.CONTENTROLEs where (ur.CONTENTID == 0) & (ur.ROLEID == r.ROLEID) select ur).Count() > 0) }; var myViewModel = new CONTENTTABLEVIEW(); ViewBag.CONTENTTYPEID = new SelectList(db.CONTENTTYPETABLEs, "CONTENTTYPEID", "CONTENTTYPENAME"); ViewBag.STATUSID = new SelectList(db.STATUSTABLEs, "STATUSID", "STATUSNAME"); var myCheckBoxList = new List <CHECKBOXVIEW>(); foreach (var item in Results) { myCheckBoxList.Add(new CHECKBOXVIEW { Id = item.ROLEID, Name = item.ROLENAME, Checked = item.Checked }); } myViewModel.contentRole = myCheckBoxList; return(View(myViewModel)); } else { //filenya dokumen dan ukurannya <= 10mb string ext = Path.GetExtension(File.FileName); System.Diagnostics.Debug.WriteLine(ext); //menamakan file var nameNew = DateTime.Now.ToString("H-mm-ss_dd-MM-yyyy"); //save file ke lokal contentFilePath.SaveAs(path + nameNew.ToString() + Path.GetExtension(File.FileName)); string path_relative = VirtualPathUtility.ToAbsolute("~/UserContentFiles/").ToString() + nameNew.ToString() + Path.GetExtension(File.FileName).ToString(); System.Diagnostics.Debug.WriteLine(path_relative); //masukkan path ke objek contentTableView.contentFilePath = path_relative.ToString(); } } else { //do nothing } //insert ke tabel content db.CONTENTTABLEs.Add(new CONTENTTABLE() { CONTENTTITLE = contentTableView.contentTitle, CONTENTDESCRIPTION = contentTableView.contentDescription, CONTENTLINK = contentTableView.contentLink, CONTENTFILEPATH = contentTableView.contentFilePath, STATUSID = 1, USERID = Convert.ToInt32(Session["userId"]), CONTENTTYPEID = contentTableView.CONTENTTYPEID.Value, CONTENTKEYWORD = contentTableView.contentKeyword, CONTENTDATE = DateTime.Now }); foreach (var item in contentTableView.contentRole) { if (item.Checked) { //masukkan ke tabel content role if (db.CONTENTTABLEs.Where(m => m.CONTENTTITLE == contentTableView.contentTitle && m.CONTENTDESCRIPTION == contentTableView.contentDescription) != null) { db.CONTENTROLEs.Add(new CONTENTROLE() { CONTENTID = contentTableView.contentId, ROLEID = item.Id }); } } } db.SaveChanges(); return(RedirectToAction("Index")); }