Пример #1
0
        /// <summary>
        ///     异步获取实例
        /// </summary>
        /// <returns>回忆列表</returns>
        public async Task <MemoryList> GetInstanceAsync()
        {
            var memoryList = new MemoryList();
            // 初始化list
            var query = memoryList.DatabaseHelper.MemoryListDatabase.GetQuery();

            while (query.Read())
            {
                var memoryKeyNo = query.GetInt32(0);
                // 初始化图片list
                var imageModels = new List <ImageModel>();
                var imageQuery  = memoryList.DatabaseHelper.MemoryImageDatabase.GetQuery(memoryKeyNo);
                while (imageQuery.Read())
                {
                    var imagePath   = imageQuery.GetString(2);
                    var accessToken = imageQuery.GetString(3);
                    var imageModel  = await _imageModelService.GetInstanceAsync(imageQuery.GetInt32(1), imagePath, accessToken);

                    // 查下这个图片还在不在
                    if (imageModel != null)
                    {
                        imageModel.KeyNo = imageQuery.GetInt32(0);
                        imageModel       = await _imageModelService.GetThumbnailImageAsync(400, imageModel);

                        imageModels.Add(imageModel);
                    }
                    else
                    {
                        // 从数据库里删掉这个图片
                        memoryList.DatabaseHelper.ImageDatabase.Delete(imagePath);
                        // 从使用list里删掉这个文件夹
                        StorageApplicationPermissions.FutureAccessList.Remove(accessToken);
                    }
                }
                // 初始化回忆model
                var memoryModel = new MemoryModel
                {
                    KeyNo       = memoryKeyNo,
                    MemoryName  = query.GetString(1),
                    ImageModels = imageModels
                };
                memoryModel.CoverImage = memoryModel.ImageModels[0].ThumbnailImage;
                memoryList.MemoryModels.Add(memoryModel);
            }
            return(memoryList);
        }
Пример #2
0
        /// <summary>
        /// 更新图片库
        /// </summary>
        /// <param name="imageFolderLists"></param>
        /// <returns></returns>
        public async Task <IOrderedEnumerable <ImageMonthGroup> > GroupImageAsync(List <ImageFolderList> imageFolderLists)
        {
            // 先初始化所有图片成一个list

            IOrderedEnumerable <ImageMonthGroup> ImageMonthGroups;
            // 先初始化所有图片成一个list
            var imageModels = new List <ImageModel>();

            foreach (var imageFolderList in imageFolderLists)
            {
                foreach (var imageModel in imageFolderList.ImageModels)
                {
                    var iimageModel = await _imageModelService.GetThumbnailImageAsync(400, imageModel);

                    imageModels.Add(iimageModel);
                }
            }
            ImageMonthGroups = imageModels
                               .GroupBy(m => m.MonthYearDate, (key, list) => new ImageMonthGroup(key, list))
                               .OrderByDescending(m => m.Key.WholeDateTime.Year).ThenByDescending(m => m.Key.WholeDateTime.Month);
            return(ImageMonthGroups);
        }
Пример #3
0
        /// <summary>
        /// 从数据库中获取回忆实例
        /// </summary>
        /// <param name="memoryModel"></param>
        /// <returns></returns>
        public async Task <MemoryModel> GetInstanceAsync(MemoryModel memoryModel)
        {
            memoryModel.ImageModels = new List <ImageModel>();
            if (memoryModel?.ImageModels == null)
            {
                return(memoryModel);
            }
            foreach (var imageModel in memoryModel.ImageModels)
            {
                var imageViewModel = await _imageModelService.GetThumbnailImageAsync(400, imageModel);

                memoryModel.ImageModels.Add(imageViewModel);
            }
            if (memoryModel.ImageModels != null && memoryModel.ImageModels.Count > 0)
            {
                memoryModel.CoverImage = memoryModel.ImageModels[0].ThumbnailImage;
            }
            else
            {
                memoryModel.CoverImage = new BitmapImage(new Uri("ms-appx:///Assets/Gray.png"));
            }
            return(memoryModel);
        }