示例#1
0
        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());
            }
        }
示例#3
0
        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());
            }
        }