public ActionResult Raw(Guid id, string encodedName, string encodedPath, bool display = false) { ViewBag.ID = id; var repo = RepositoryRepository.GetRepository(id); using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, repo.Name))) { var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); if (!display) { return(File(model.Data, "application/octet-stream", model.Name)); } if (model.IsText) { return(Content(model.Text, "text/plain", model.Encoding)); } if (model.IsImage) { return(File(model.Data, MimeTypeMap.GetMimeType(Path.GetExtension(model.Name.ToLower())), model.Name)); } } return(HttpNotFound()); }
public ActionResult Blob(string id, string name, string encodedPath) { ViewBag.ID = id; if (!String.IsNullOrEmpty(id)) { using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, id))) { var path = PathEncoder.Decode(encodedPath); string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); PopulateBranchesData(browser, referenceName); PopulateAddressBarData(name, path); model.Text = FileDisplayHandler.GetText(model.Data); model.IsText = model.Text != null; if (model.IsText) model.TextBrush = FileDisplayHandler.GetBrush(path); else model.IsImage = FileDisplayHandler.IsImage(path); return View(model); } } return View(); }
public ActionResult Blob(string id, string name, string path) { ViewBag.ID = id; if (!String.IsNullOrEmpty(id)) { using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, id))) { string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); PopulateBranchesData(browser, referenceName); PopulateAddressBarData(name, path); model.Text = FileDisplayHandler.GetText(model.Data); model.IsText = model.Text != null; if (model.IsText) { model.TextBrush = FileDisplayHandler.GetBrush(path); } else { model.IsImage = FileDisplayHandler.IsImage(path); } return(View(model)); } } return(View()); }
public ActionResult Raw(string id, string encodedName, string encodedPath, bool display = false) { ViewBag.ID = id; if (String.IsNullOrEmpty(id)) { return(HttpNotFound()); } using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, id))) { var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); if (!display) { return(File(model.Data, "application/octet-stream", model.Name)); } if (model.IsText) { return(Content(model.Text, "text/plain", model.Encoding)); } if (model.IsImage) { return(File(model.Data, FileDisplayHandler.GetMimeType(model.Name), model.Name)); } } return(HttpNotFound()); }
public ActionResult Tree(Guid id, string encodedName, string encodedPath) { bool includeDetails = Request.IsAjaxRequest(); var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); var repo = RepositoryRepository.GetRepository(id); var repositoryDetailModel = ConvertRepositoryModel(repo, User); ViewBag.ID = id; ViewBag.Name = repo.Name; ViewBag.GitUrl = GitUrl(repo.Name); using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, repo.Name))) { string referenceName; var files = browser.BrowseTree(name, path, out referenceName, includeDetails).ToList(); var readme = files.FirstOrDefault(x => x.Name.Equals("readme.md", StringComparison.OrdinalIgnoreCase)); string readmeTxt = string.Empty; if (readme != null) { string refereceName; var blob = browser.BrowseBlob(name, readme.Path, out refereceName); readmeTxt = blob.Text; } var model = new RepositoryTreeModel { Name = repo.Name, Branch = name ?? referenceName, Path = path, Readme = readmeTxt, Logo = new RepositoryLogoDetailModel(repo.Logo), Files = files.OrderByDescending(i => i.IsTree).ThenBy(i => i.Name) }; if (includeDetails) { return(Json(model, JsonRequestBehavior.AllowGet)); } else { PopulateBranchesData(browser, referenceName); PopulateAddressBarData(path); return(View(model)); } } }
public ActionResult Raw(string id, string name, string path) { ViewBag.ID = id; if (!String.IsNullOrEmpty(id)) { using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, id))) { string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); return(File(model.Data, "application/octet-stream", model.Name)); } } return(View()); }
public ActionResult Blob(Guid id, string encodedName, string encodedPath) { ViewBag.ID = id; var repo = RepositoryRepository.GetRepository(id); using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, repo.Name))) { var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); PopulateBranchesData(browser, referenceName); PopulateAddressBarData(path); return(View(model)); } }
public ActionResult Blob(string id, string encodedName, string encodedPath) { ViewBag.ID = id; if (!String.IsNullOrEmpty(id)) { using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, id))) { var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); PopulateBranchesData(browser, referenceName); PopulateAddressBarData(name, path); return(View(model)); } } return(View()); }
public ActionResult Blob(string id, string encodedName, string encodedPath) { ViewBag.ID = id; if (!String.IsNullOrEmpty(id)) { using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, id))) { var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); PopulateBranchesData(browser, referenceName); PopulateAddressBarData(name, path); return View(model); } } return View(); }
private static void AddTreeToZip(RepositoryBrowser browser, string name, string path, ZipFile outputZip) { string referenceName; var treeNode = browser.BrowseTree(name, path, out referenceName); foreach (var item in treeNode) { if (!item.IsTree) { string blobReferenceName; var model = browser.BrowseBlob(item.TreeName, item.Path, out blobReferenceName); outputZip.AddEntry(Path.Combine(item.TreeName, item.Path), model.Data); } else { // recursive call AddTreeToZip(browser, item.TreeName, item.Path, outputZip); } } }
public ActionResult Tree(string id, string encodedName, string encodedPath) { bool includeDetails = Request.IsAjaxRequest(); if (String.IsNullOrEmpty(id)) return View(); ViewBag.ID = id; var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, id))) { string referenceName; var files = browser.BrowseTree(name, path, out referenceName, includeDetails); var readme = files.Where(x => x.Path.Equals("readme.md", StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); string readmeTxt = string.Empty; if (readme != null) { string refereceName; var blob = browser.BrowseBlob(name, readme.Path, out refereceName); readmeTxt = blob.Text; } var model = new RepositoryTreeModel { Name = id, Branch = name, Path = path, Files = files.OrderByDescending(i => i.IsTree).ThenBy(i => i.Name), Readme = readmeTxt }; if (includeDetails) { return Json(model, JsonRequestBehavior.AllowGet); } else { PopulateBranchesData(browser, referenceName); PopulateAddressBarData(path); return View(model); } } }
private static void AddTreeToZip(RepositoryBrowser browser, string name, string path, ZipFile outputZip) { string referenceName; var treeNode = browser.BrowseTree(name, path, out referenceName); foreach (var item in treeNode) { if (item.IsLink) { outputZip.AddDirectoryByName(Path.Combine(item.TreeName, item.Path)); } else if (!item.IsTree) { string blobReferenceName; var model = browser.BrowseBlob(item.TreeName, item.Path, out blobReferenceName); outputZip.AddEntry(Path.Combine(item.TreeName, item.Path), model.Data); } else { // recursive call AddTreeToZip(browser, item.TreeName, item.Path, outputZip); } } }
public ActionResult Raw(string id, string encodedName, string encodedPath, bool display = false) { ViewBag.ID = id; if (String.IsNullOrEmpty(id)) return HttpNotFound(); using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, id))) { var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); if (!display) { return File(model.Data, "application/octet-stream", model.Name); } if (model.IsText) { return Content(model.Text, "text/plain", model.Encoding); } if (model.IsImage) { return File(model.Data, FileDisplayHandler.GetMimeType(model.Name), model.Name); } } return HttpNotFound(); }
public ActionResult Raw(string id, string name, string path) { ViewBag.ID = id; if (!String.IsNullOrEmpty(id)) { using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, id))) { string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); return File(model.Data, "application/octet-stream", model.Name); } } return View(); }
public ActionResult Blob(Guid id, string encodedName, string encodedPath) { ViewBag.ID = id; var repo = RepositoryRepository.GetRepository(id); using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, repo.Name))) { var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); model.Logo = new RepositoryLogoDetailModel(repo.Logo); PopulateBranchesData(browser, referenceName); PopulateAddressBarData(path); return View(model); } }
public ActionResult Raw(Guid id, string encodedName, string encodedPath, bool display = false) { ViewBag.ID = id; var repo = RepositoryRepository.GetRepository(id); using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, repo.Name))) { var name = PathEncoder.Decode(encodedName); var path = PathEncoder.Decode(encodedPath); string referenceName; var model = browser.BrowseBlob(name, path, out referenceName); model.Logo = new RepositoryLogoDetailModel(repo.Logo); if (!display) { return File(model.Data, "application/octet-stream", model.Name); } if (model.IsText) { return Content(model.Text, "text/plain", model.Encoding); } if (model.IsImage) { return File(model.Data, MimeTypeMap.GetMimeType(Path.GetExtension(model.Name.ToLower())), model.Name); } } return HttpNotFound(); }
public ActionResult Detail(Guid id) { var mater = ConvertRepositoryModel(RepositoryRepository.GetRepository(id), User); if (mater != null) { mater.IsCurrentUserAdministrator = RepositoryPermissionService.HasPermission(User.Id(), mater.Id, RepositoryAccessLevel.Administer); SetGitUrls(mater); } ViewBag.ID = id; ViewBag.Name = mater.Name; ViewBag.GitUrl = mater.GitUrl; //using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, model.Name))) //{ // string defaultReferenceName; // browser.BrowseTree(null, null, out defaultReferenceName); // RouteData.Values.Add("encodedName", defaultReferenceName); //} bool includeDetails = Request.IsAjaxRequest(); var name = PathEncoder.Decode(null); var path = PathEncoder.Decode(null); var repo = RepositoryRepository.GetRepository(id); var repositoryDetailModel = ConvertRepositoryModel(repo, User); using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, repo.Name))) { string referenceName; var files = browser.BrowseTree(name, path, out referenceName, includeDetails).ToList(); PopulateBranchesData(browser, referenceName); var readme = files.FirstOrDefault(x => x.Name.Equals("readme.md", StringComparison.OrdinalIgnoreCase)); string readmeTxt = string.Empty; if (readme != null) { string refereceName; var blob = browser.BrowseBlob(name, readme.Path, out refereceName); readmeTxt = blob.Text; } var model = new RepositoryTreeModel { Name = repo.Name, Branch = name ?? referenceName, Path = path, Readme = readmeTxt, Logo = new RepositoryLogoDetailModel(repo.Logo), Files = files.OrderByDescending(i => i.IsTree).ThenBy(i => i.Name) }; if (includeDetails) { return(Json(model, JsonRequestBehavior.AllowGet)); } else { PopulateBranchesData(browser, referenceName); PopulateAddressBarData(path); return(View(model)); } } }