Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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);
        }