public virtual async Task <ActionResult> Details(string id) { var cts = TaskHelper.CreateChildCancellationTokenSource(ClientDisconnectedToken()); DirectoryInfo data = null; try { var repository = FileSystemGenericRepositoryFactory.CreateFolderRepositoryReadOnly(cts.Token, PhysicalPath, IncludeSubDirectories); data = await repository.GetByPathAsync(id.Replace("/", "\\")); if (data == null) { return(HandleReadException()); } } catch { return(HandleReadException()); } ViewBag.PageTitle = Title; ViewBag.Admin = Admin; var dto = Mapper.Map <FolderMetadataDto>(data); dto.Id = dto.Id.Replace(PhysicalPath, ""); //return View("Details", dto); return(View("~/Views/Bootstrap4/Details.cshtml", dto)); }
public virtual async Task <ActionResult> Index(int page = 1, int pageSize = 10, string orderColumn = nameof(DirectoryInfo.LastWriteTime), string orderType = "desc", string search = "") { var cts = TaskHelper.CreateChildCancellationTokenSource(ClientDisconnectedToken()); try { var repository = FileSystemGenericRepositoryFactory.CreateFolderRepositoryReadOnly(cts.Token, PhysicalPath, IncludeSubDirectories); var dataTask = repository.SearchAsync(search, null, LamdaHelper.GetOrderByFunc <DirectoryInfo>(orderColumn, orderType), (page - 1) * pageSize, pageSize); var totalTask = repository.GetSearchCountAsync(search, null); await TaskHelper.WhenAllOrException(cts, dataTask, totalTask); var data = dataTask.Result; var total = totalTask.Result; var rows = data.ToList().Select(Mapper.Map <DirectoryInfo, FolderMetadataDto>).ToList(); foreach (FolderMetadataDto dto in rows) { dto.Id = dto.Id.Replace(PhysicalPath, ""); } var response = new WebApiPagedResponseDto <FolderMetadataDto> { Page = page, PageSize = pageSize, Records = total, Rows = rows, OrderColumn = orderColumn, OrderType = orderType, Search = search }; ViewBag.Search = search; ViewBag.Page = page; ViewBag.PageSize = pageSize; ViewBag.OrderColumn = orderColumn; ViewBag.OrderType = orderType; ViewBag.DisableCreate = true; ViewBag.DisableSorting = true; ViewBag.DisableDelete = false; ViewBag.PageTitle = Title; ViewBag.Admin = Admin; return(View("List", response)); } catch { return(HandleReadException()); } }
public virtual async Task <ActionResult> Index(int p = 1, int pageSize = 10, string orderBy = nameof(DirectoryInfo.LastWriteTime) + " desc", string search = "") { var cts = TaskHelper.CreateChildCancellationTokenSource(ClientDisconnectedToken()); try { var repository = FileSystemGenericRepositoryFactory.CreateFolderRepositoryReadOnly(cts.Token, PhysicalPath, IncludeSubDirectories); var data = await repository.SearchAsync(search, null, UIHelper.GetOrderByIQueryableDelegate <DirectoryInfo>(orderBy), (p - 1) *pageSize, pageSize); var total = await repository.GetSearchCountAsync(search, null); var rows = data.ToList().Select(Mapper.Map <DirectoryInfo, FolderMetadataDto>).ToList(); foreach (FolderMetadataDto dto in rows) { dto.Id = dto.Id.Replace(PhysicalPath, ""); } var response = new WebApiPagedResponseDto <FolderMetadataDto> { Page = p, PageSize = pageSize, Records = total, Rows = rows, OrderBy = orderBy, Search = search }; ViewBag.Search = search; ViewBag.Page = p; ViewBag.PageSize = pageSize; ViewBag.OrderBy = orderBy; ViewBag.DisableCreate = true; ViewBag.DisableSorting = true; ViewBag.DisableDelete = false; ViewBag.PageTitle = Title; ViewBag.Admin = Admin; //return View("List", response); return(View("~/Views/Bootstrap4/List.cshtml", response)); } catch { return(HandleReadException()); } }