public ActionResult Delete(TSFile File) { var perms = Permissions.Load(User); bool can = perms.Can(File); if (!can) { ModelState.AddModelError("", "You can't delete this file. Check your <a href='" + Url.Action("Index", "Manage") + "' target='_blank'>permissions</a>."); var model2 = new FileEditModel(); model2.File = File; model2.Permissions = perms; return(View("Edit", model2)); } FileEditModel model; if (File == null || File.TeleSoftwareID <= 0) { return(RedirectToAction("Index")); } string err; if (!File.Delete(out err)) { ModelState.AddModelError("", err); model = new FileEditModel(); model.File = File; model.Permissions = perms; return(View("Edit", model)); } return(RedirectToAction("Index")); }
public async Task <IActionResult> Edit(Guid idFile, FileEditModel model) { if (idFile == null) { return(NotFound()); } var file = await _context.Files .SingleOrDefaultAsync(m => m.Id == idFile); if (file == null) { return(NotFound()); } if (ModelState.IsValid) { file.Name = model.Name; await _context.SaveChangesAsync(); return(RedirectToAction("Details", "Folders", new { idParent = file.FolderId })); } return(View(model)); }
public ActionResult Download(int?ID) { int id = ID ?? -1; var model = new FileEditModel(); model.File = TSFile.Load(id); if (id != -1 && model.File.TeleSoftwareID <= 0) { return(RedirectToAction("Index")); } return(File(model.File.Contents, MediaTypeNames.Application.Octet, model.File.FileName)); }
public async Task <IActionResult> Create(Guid?idParent, FileEditModel model) { if (idParent == null) { NotFound(); } var fileName = Path.GetFileName(ContentDispositionHeaderValue.Parse(model.file.ContentDisposition).FileName.Value.Trim('"')); var fileExt = Path.GetExtension(fileName); var folder = await _context.Folders .SingleOrDefaultAsync(m => m.Id == idParent); if (folder == null) { NotFound(); } if (ModelState.IsValid) { var file = new Models.File { FolderId = folder.Id, Name = model.Name, Extension = fileExt, Size = (int)model.file.Length }; byte[] Data = null; using (var binaryReader = new BinaryReader(model.file.OpenReadStream())) { Data = binaryReader.ReadBytes((int)model.file.Length); } file.file = Data; file.Id = Guid.NewGuid(); _context.Add(file); await _context.SaveChangesAsync(); return(RedirectToAction("Details", "Folders", new { idParent = folder.Id })); } return(View(model)); }
public ActionResult Copy(int ID, string ID2) { if (ID <= 0) { return(RedirectToAction("Index")); } var model = new FileEditModel(); model.Copying = true; model.File = TSFile.Load(ID); model.File.Environment = ID2; model.File.CopyingFromID = model.File.TeleSoftwareID; model.File.TeleSoftwareID = -1; if (string.IsNullOrWhiteSpace(model.File.Environment)) { model.OldKey = model.File.Key; model.File.Key = ""; } Session["FileCopy"] = model; return(RedirectToAction("Edit")); }
public ActionResult EditFile(FileEditModel model) { if (ModelState.IsValid) { int days = Convert.ToInt32(model.DeleteTime); var file = UnitOfWork.Files.GetFile(model.Id); if (file == null) { return(HttpNotFound()); } ModelMapper.Map(model, file); file.DeleteTime = file.CreationTime.AddDays(days); UnitOfWork.Files.SaveFile(file); UnitOfWork.SaveChanges(); return(RedirectToAction("Details", "File", new { sha = file.Sha })); } return(View(model)); }
public ActionResult EditFile(string sha) { if (sha == null) { return(HttpNotFound()); } var file = UnitOfWork.Files.GetFile(sha); if (file == null) { return(HttpNotFound()); } var model = new FileEditModel { Id = file.Id, Sha = file.Sha, Name = file.Name, Password = file.Password, DeleteTime = Convert.ToString((file.DeleteTime - file.CreationTime).Days) }; return(PartialView(model)); }
public ActionResult Edit(int?ID) { int id = ID ?? -1; var model = new FileEditModel(); var copy = Session["FileCopy"] as FileEditModel; if (copy == null) { model.File = TSFile.Load(id); } else { model = copy; model.File.Environment = copy.File.Environment; } Session["FileCopy"] = null; if (id != -1 && model.File.TeleSoftwareID <= 0) { return(RedirectToAction("Index")); } model.Permissions = Permissions.Load(User); return(View(model)); }
public ActionResult Save(TSFile File) { var perms = Permissions.Load(User); bool can = perms.Can(File); FileEditModel model; if (ModelState.IsValid) { if (!can) { ModelState.AddModelError("", "You can't save this file. Check your <a href='" + Url.Action("Index", "Manage") + "' target='_blank'>permissions</a>."); model = new FileEditModel(); model.File = File; model.Permissions = perms; if (model.File.CopyingFromID > 0) { var cf = TSFile.Load(model.File.CopyingFromID); model.File.FileName = cf.FileName; model.File.Contents = cf.Contents; } return(View("Edit", model)); } File.Contents = new byte[0]; File.FileName = ""; try { if (Request.Files.Count > 0) { HttpPostedFileBase objFiles = Request.Files["Contents"]; using (var binaryReader = new BinaryReader(objFiles.InputStream)) { File.Contents = binaryReader.ReadBytes(objFiles.ContentLength); } File.FileName = Path.GetFileName(objFiles.FileName); } } catch { File.Contents = new byte[0]; File.FileName = ""; } if (File.Contents == null || File.Contents.Length == 0) { var existing = TSFile.Load(File.TeleSoftwareID); File.Contents = existing.Contents; File.FileName = existing.FileName; } string err; if (File.TeleSoftwareID <= 0 && File.OwnerID <= 0) { File.OwnerID = perms.User.UserNo; } if (File.CopyingFromID > 0) { var cf = TSFile.Load(File.CopyingFromID); File.FileName = cf.FileName; File.Contents = cf.Contents; } if (!TSFile.Save(File, out err)) { ModelState.AddModelError("", err); model = new FileEditModel(); model.File = File; model.Permissions = perms; if (model.File.CopyingFromID > 0) { var cf = TSFile.Load(model.File.CopyingFromID); model.File.FileName = cf.FileName; model.File.Contents = cf.Contents; } return(View("Edit", model)); } return(RedirectToAction("Index")); } model = new FileEditModel(); if (File == null) { model.File = new TSFile(); } if (File.TeleSoftwareID > 0) { File = TSFile.Load(File.TeleSoftwareID); } model.File = File; model.Permissions = perms; if (model.File.CopyingFromID > 0) { var cf = TSFile.Load(model.File.CopyingFromID); model.File.FileName = cf.FileName; model.File.Contents = cf.Contents; } return(View("Edit", model)); }