public virtual PageListDto <FileInfoDto> GetPageList(FileInfoPageParamDto vm) { PageListDto <FileInfoDto> result = null; if (vm != null && this.Client.IsLogin) { result = this.Client.Request <PageListDto <FileInfoDto>, FileInfoPageParamDto>(MsgCmd.GetFileInfoPageList, vm); } return(result); }
public ActionResult GetPageList(FileInfoPageParamDto vm) { if (vm != null && vm.Index > 0 && vm.Size > 0) { var fileInfoService = this.GetService <IFileInfoService>(); PageListDto <FileInfoDto> data = fileInfoService.GetPageList(vm); return(Success(data)); } return(Error()); }
public virtual PageListDto <FileInfoDto> GetPageList(FileInfoPageParamDto vm) { var fileInfoRepository = this.GetRepository <IFileInfoRepository>(); return(fileInfoRepository.GetPageList(vm)); }
private void DownloadLocal(FileInfoDto m, string loaclDir) { if (m == null || m.Type == (int)FileInfoType.None) { return; } using (var client = IocUtils.Get <IFileInfoService>(new object[] { MainForm.Current.FileClient })) { Queue <FileInfoDto> queue = new Queue <FileInfoDto>(); queue.Enqueue(m); string relDir = m.Directory; while (queue.Count > 0 && !this.isStop) { FileInfoDto item = queue.Dequeue(); string dir = Utils.Combine(loaclDir, Utils.GetRelative(item.Directory, relDir)); string fullname = Utils.Combine(dir, item.Name); string remofull = Utils.Combine(item.Directory, item.Name); if (item.Type == FileInfoType.Directory) { MainForm.Current.SetStatusText("下载目录:" + remofull); if (!Directory.Exists(fullname)) { Directory.CreateDirectory(fullname); Directory.SetCreationTime(fullname, item.CreationTime); Directory.SetLastAccessTime(fullname, item.LastWriteTime); } FileInfoPageParamDto param = new FileInfoPageParamDto() { Index = 1, Size = 50, ParentId = item.Id }; var page = client.GetPageList(param); int pos = 0; while (page != null && pos < page.TotalCount && !this.isStop) { if (page.List != null && page.List.Count > 0) { page.List.ForEach(q => { queue.Enqueue(q); pos++; }); } param.Index = param.Index + 1; page = client.GetPageList(param); } } else if (item.Type == FileInfoType.File) { string status = ""; FilePositionCallback call = (len, pos) => { string s = string.Format("下载文件: {0} ({1}/{2})", remofull, Utils.ToAutoUnit(pos), Utils.ToAutoUnit(len)); if (status != s) { status = s; MainForm.Current.SetStatusText(status); } return(!this.isStop); }; client.GetFile(item, dir, item.Name, call); } } } MainForm.Current.SetStatusText(""); }
private void GetServerList() { this.SetEnabled(false); object[] param = new object[] { this.dropDownList_ServerFileInfoType.SelectedValue, this.txt_ServerKeyword.Text.Trim(), this.ucPageFooter_Server.PageIndex, this.ucPageFooter_Server.PageSize }; System.Threading.ThreadPool.QueueUserWorkItem((o) => { object[] _param = o as object[]; FileInfoType type = (FileInfoType)_param[0]; string key = _param[1] as string; using (var fileclient = IocUtils.Get <IFileInfoService>(new object[] { MainForm.Current.FileClient })) { var vm = new FileInfoPageParamDto() { Index = (int)_param[2], Size = (int)_param[3], Type = type, Keyword = key }; if (this.ServerPath != null) { vm.ParentId = this.ServerPath.Id; } var page = fileclient.GetPageList(vm); this.Sync.Post((obj) => { var p = obj as PageListDto <FileInfoDto>; List <FileInfoDto> list = new List <FileInfoDto>(); if (this.ServerPath != null) { list.Add(new FileInfoDto() { Type = (int)FileInfoType.None, Name = "...", Directory = this.LocalPath, Key = Guid.NewGuid().ToString("n") }); } if (p != null && p.List != null && p.List.Count > 0) { list.AddRange(p.List); } var l = this.serverList; this.listView_Server.BeginUpdate(); this.serverList = list; this.listView_Server.VirtualListSize = this.serverList.Count; this.listView_Server.EndUpdate(); l.Clear(); if (p != null) { this.ucPageFooter_Server.SetPageIndex(p.Index, p.TotalCount); } else { this.ucPageFooter_Server.SetPageIndex(1, 0); } this.SetEnabled(true); }, page); } }, param); }
public virtual PageListDto <FileInfoDto> GetPageList(FileInfoPageParamDto vm) { PageListDto <FileInfoDto> page = new PageListDto <FileInfoDto>(); using (var db = this.CreateDbContext()) { var query = from q in db.FileInfo where q.IsDelete == false && q.ParentId == vm.ParentId select new FileInfoDto { Id = q.Id, ParentId = q.ParentId, Type = q.Type, Directory = q.Directory, Name = q.Name, Length = q.Length, CreationTime = q.CreationTime, LastWriteTime = q.LastWriteTime, Key = q.Key, UpdateTime = q.UpdateTime, IsDelete = q.IsDelete, }; #region where if (vm.Type != FileInfoType.None) { query = query.Where(q => q.Type == vm.Type); } if (vm.BeginCreateTime.HasValue) { query = query.Where(q => q.CreationTime >= vm.BeginCreateTime.Value); } if (vm.EndCreateTime.HasValue) { query = query.Where(q => q.CreationTime < vm.EndCreateTime.Value.AddSeconds(1)); } if (vm.BeginLastWriteTime.HasValue) { query = query.Where(q => q.LastWriteTime >= vm.BeginLastWriteTime.Value); } if (vm.EndLastWriteTime.HasValue) { query = query.Where(q => q.LastWriteTime < vm.EndLastWriteTime.Value.AddSeconds(1)); } if (!string.IsNullOrEmpty(vm.Keyword)) { query = query.Where(q => q.Name.Contains(vm.Keyword.ToLower())); } #endregion page.TotalCount = query.Count(); #region Orderby switch (vm.Orderby) { case "Type": query = vm.IsDesc ? query.OrderByDescending(q => q.Type) : query.OrderBy(q => q.Type); break; case "Name": query = vm.IsDesc ? query.OrderByDescending(q => q.Name) : query.OrderBy(q => q.Name); break; case "Length": query = vm.IsDesc ? query.OrderByDescending(q => q.Length) : query.OrderBy(q => q.Length); break; case "CreationTime": query = vm.IsDesc ? query.OrderByDescending(q => q.CreationTime) : query.OrderBy(q => q.CreationTime); break; case "LastWriteTime": query = vm.IsDesc ? query.OrderByDescending(q => q.LastWriteTime) : query.OrderBy(q => q.LastWriteTime); break; default: query = from q in query orderby q.Type, q.Name select q; break; } #endregion this.GetPage(page, query, vm.Index, vm.Size); } return(page); }