/// <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); }
/// <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); }
/// <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); }