/// <summary> /// 从文件夹获取照片 /// </summary> /// <returns></returns> private static List <PictureModel> GetPictureFromFolder(LoadFilter filter) { var list = new List <PictureModel>(); var files = GetFiles(filter.Folder); for (var i = 0; i < files.Count; i++) { if (files[i].Name.StartsWith("snapshot_")) { continue; } var picture = GetPicture(files[i]); list.Add(picture); if (list.Count == filter.Page) { return(list); } } return(list); }
/// <summary> /// 获取所有的图片信息 /// </summary> /// <param name="directory"></param> /// <returns></returns> public static List <PictureModel> GetPictureList(LoadFilter filter) { var result = new List <PictureModel>(); //先获取所有的 var items = new ItemBusiness().GetItems(); //获取所有的分类 var categories = new CategoryBusiness().GetCategories(); //获取所有的图片 var picturesInDatabase = new PictureBusiness().GetPictures(); //文件夹里面的 var picturesInFolder = filter.FromFolder ? GetPictureFromFolder(filter) : new List <PictureModel>(); //已入库的 var picturesSaved = new List <PictureModel>(); //未入库的 var picturesDraft = new List <PictureModel>(); //分别处理 picturesInFolder.ForEach(x => { if (picturesInDatabase.Exists(y => y.EId == x.EId)) { picturesSaved.Add(x); } else { picturesDraft.Add(x); } }); //包含文件夹 if (filter.FromFolder) { if (filter.IncludeSaved) { result.AddRange(picturesSaved); } if (filter.IncludeDraft) { result.AddRange(picturesDraft); } } //包含数据库 if (filter.FromDatabase) { picturesInDatabase.ForEach(x => { if (!result.Exists(y => y.EId == x.EId)) { result.Add(x); } }); } return(result); }
/// <summary> /// 获取过滤条件 /// </summary> /// <returns></returns> private LoadFilter GetFilter() { var filter = new LoadFilter() { FromFolder = this.checkBox2.Checked, FromDatabase = this.checkBox3.Checked, IncludeSaved = this.checkBox4.Checked, IncludeDraft = this.checkBox5.Checked, Keyword = string.Empty, Page = Manager.BatchCount, Folder = this.textBox1.Text.Trim() }; return(filter); }
/// <summary> /// 加载图片 /// </summary> private void InitLoadPictureWorker(LoadFilter filter) { this.checkBox1.Checked = false; this.button3.Enabled = false; this.backgroundWorker2 = new BackgroundWorker(); // 实例化后台对象 backgroundWorker2.WorkerReportsProgress = true; // 设置可以通告进度 backgroundWorker2.WorkerSupportsCancellation = true; // 设置可以取消 backgroundWorker2.DoWork += new DoWorkEventHandler(LoadPictures); backgroundWorker2.RunWorkerCompleted += new RunWorkerCompletedEventHandler(LoadPicturesCompleted); backgroundWorker2.RunWorkerAsync(filter); }