public async Task <ActionResult> Create([Bind(Include = "Id,Branches_Id,Timestamp,Filename,Description,IsOlder")] UploadFilesModels uploadFilesModels, List <HttpPostedFileBase> files) { if (files[0] == null) { ModelState.AddModelError("Document", "File(s) is required."); } if (ModelState.IsValid) { string Dir = Server.MapPath("~/assets/files/"); if (!Directory.Exists(Dir)) { DirectoryInfo di = Directory.CreateDirectory(Dir); } foreach (HttpPostedFileBase file in files) { uploadFilesModels.Id = Guid.NewGuid(); uploadFilesModels.Timestamp = DateTime.UtcNow; uploadFilesModels.Filename = file.FileName; uploadFilesModels.IsOlder = false; db.UploadFiles.Add(uploadFilesModels); file.SaveAs(Path.Combine(Dir, uploadFilesModels.Id.ToString() + "_" + uploadFilesModels.Filename + Path.GetExtension(file.FileName))); } await db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.listBranch = new SelectList(db.Branches.Where(x => x.Active == true).OrderBy(x => x.Name).ToList(), "Id", "Name"); return(View(uploadFilesModels)); }
public async Task <ActionResult> Download(Guid id) { UploadFilesModels uploadFilesModels = await db.UploadFiles.FindAsync(id); string path = Server.MapPath("~/assets/files/" + id.ToString() + "_" + uploadFilesModels.Filename + Path.GetExtension(uploadFilesModels.Filename)); string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; return(File(path, contentType, Path.GetFileName(path))); }
public async Task <ActionResult> DeleteFileUpload(Guid id) { UploadFilesModels uploadFilesModels = await db.UploadFiles.FindAsync(id); db.UploadFiles.Remove(uploadFilesModels); string Dir = Server.MapPath("~/assets/files/"); string fileName = uploadFilesModels.Id.ToString() + "_" + uploadFilesModels.Filename + Path.GetExtension(uploadFilesModels.Filename); if (System.IO.File.Exists(Dir + fileName)) { System.IO.File.Delete(Dir + fileName); } db.SaveChanges(); return(RedirectToAction("Index")); }
public async Task <ActionResult> Update(Guid id) { Permission p = new Permission(); bool auth = p.IsGranted(User.Identity.Name, this.ControllerContext.RouteData.Values["controller"].ToString() + "_" + this.ControllerContext.RouteData.Values["action"].ToString()); if (!auth) { return(new ViewResult() { ViewName = "Unauthorized" }); } else { UploadFilesModels uploadFilesModels = await db.UploadFiles.FindAsync(id); return(View(uploadFilesModels)); } }
public async Task <ActionResult> Update([Bind(Include = "Id,Branches_Id,Timestamp,Filename,Description,IsOlder")] UploadFilesModels uploadFilesModels, List <HttpPostedFileBase> files) { if (files[0] == null) { ModelState.AddModelError("Document", "File(s) is required."); } if (ModelState.IsValid) { string Dir = Server.MapPath("~/assets/files/"); if (!Directory.Exists(Dir)) { DirectoryInfo di = Directory.CreateDirectory(Dir); } UploadFilesModels model_before = await db.UploadFiles.FindAsync(uploadFilesModels.Id); model_before.IsOlder = true; db.Entry(model_before).State = EntityState.Modified; foreach (HttpPostedFileBase file in files) { uploadFilesModels.Id = Guid.NewGuid(); uploadFilesModels.Timestamp = DateTime.UtcNow; uploadFilesModels.Filename = file.FileName; uploadFilesModels.IsOlder = false; db.UploadFiles.Add(uploadFilesModels); file.SaveAs(Path.Combine(Dir, uploadFilesModels.Id.ToString() + "_" + uploadFilesModels.Filename + Path.GetExtension(file.FileName))); } await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(uploadFilesModels)); }