public static async Task<MagazineManager> LoadLocalMagazinesAsync() { if (_sampleDataSource.AllGroups.Count > 0) return null; var manager = new MagazineManager("http://librelio-europe.s3.amazonaws.com/niveales/wind/", "Magazines"); await manager.LoadLocalMagazineList(); bool newGroup = false; MagazineDataGroup group = null; if (GetGroup("My Magazines") == null) { group = new MagazineDataGroup("My Magazines", "My Magazines", ""); newGroup = true; } else { group = GetGroup("My Magazines"); } if (newGroup) { _sampleDataSource.AllGroups.Add(group); newGroup = false; } for (int i = 0; i < manager.MagazineLocalUrl.Count; i++) { if (manager.MagazineLocalUrl[i].IsDownloaded) { var m = new MagazineModel(manager.MagazineLocalUrl[i], i); if (GetItem(m.Title + m.Subtitle) != null) continue; BitmapImage image = null; try { var file = await StorageFile.GetFileFromPathAsync(m.pngPath); image = new BitmapImage(); await image.SetSourceAsync(await file.OpenReadAsync()); } catch { } int index = 0; for (int p = 0; p < group.Items.Count; p++) { index = p + 1; if (group.Items[p].Index > m.Index) break; } if (group.Items.Count == 0) group.Items.Insert(index, new MagazineViewModel(m.Title + m.Subtitle, 2, 2, m.Title, m.Subtitle, image, group, m)); else group.Items.Insert(index, new MagazineViewModel(m.Title + m.Subtitle, 1, 1, m.Title, m.Subtitle, image, group, m)); } } newGroup = false; if (GetGroup("All Magazines") == null) { group = new MagazineDataGroup("All Magazines", "All Magazines", ""); newGroup = true; } else { group = GetGroup("All Magazines"); } if (newGroup) { _sampleDataSource.AllGroups.Add(group); newGroup = false; } for (int i = 0; i < manager.MagazineLocalUrl.Count; i++) { var m = new MagazineModel(manager.MagazineLocalUrl[i], i); if (GetItem(m.Title + m.Subtitle + "1") != null) continue; BitmapImage image = null; try { //if (m.isDowloaded) { // var file = await StorageFile.GetFileFromPathAsync(m.pngPath); // image = new BitmapImage(); // await image.SetSourceAsync(await file.OpenReadAsync()); //} else { image = new BitmapImage(new Uri(m.pngUrl)); //} } catch { } int index = 0; for (int p = 0; p < group.Items.Count; p++) { index = p + 1; if (group.Items[p].Index > m.Index) break; } MagazineViewModel item = null; if (group.Items.Count == 0) item = new MagazineViewModel(m.Title + m.Subtitle + "1", 2, 2, m.Title, m.Subtitle, image, group, m); else item = new MagazineViewModel(m.Title + m.Subtitle + "1", 1, 1, m.Title, m.Subtitle, image, group, m); if (m.isDowloaded) item.SecondButtonVisible = false; group.Items.Insert(index, item); } return manager; }
public static async Task<MagazineManager> LoadMagazinesAsync() { if (_sampleDataSource.AllGroups.Count > 0) return null; var manager = new MagazineManager("http://librelio-europe.s3.amazonaws.com/niveales/wind/", "Magazines"); await manager.LoadLocalMagazineList(); //if (manager.MagazineLocalUrl.Count == 0) //{ //await manager.LoadPLISTAsync(); //} bool newGroup = false; MagazineDataGroup group = null; if (GetGroup("My Magazines") == null) { group = new MagazineDataGroup("My Magazines", "My Magazines", ""); newGroup = true; } else { group = GetGroup("My Magazines"); } if (newGroup) { _sampleDataSource.AllGroups.Add(group); newGroup = false; } for (int i = 0; i < manager.MagazineLocalUrl.Count; i++) { if (manager.MagazineLocalUrl[i].IsDownloaded) { var m = new MagazineModel(manager.MagazineLocalUrl[i], i); if (GetItem(m.Title + m.Subtitle) != null) continue; BitmapImage image = null; try { var file = await StorageFile.GetFileFromPathAsync(m.pngPath); image = new BitmapImage(); await image.SetSourceAsync(await file.OpenReadAsync()); } catch { } if (group.Items.Count == 0) group.Items.Add(new MagazineViewModel(m.Title + m.Subtitle, 2, 2, m.Title, m.Subtitle, image, group, m)); else group.Items.Add(new MagazineViewModel(m.Title + m.Subtitle, 1, 1, m.Title, m.Subtitle, image, group, m)); } } newGroup = false; if (GetGroup("All Magazines") == null) { group = new MagazineDataGroup("All Magazines", "All Magazines", ""); newGroup = true; } else { group = GetGroup("All Magazines"); } if (newGroup) { _sampleDataSource.AllGroups.Add(group); newGroup = false; } await manager.LoadPLISTAsync(); var count = manager.MagazineLocalUrl.Count; if (count == 0) count = manager.MagazineUrl.Count; for (int i = 0; i < count; i++) { LibrelioLocalUrl localUrl = null; MagazineModel m = null; //if (manager.MagazineLocalUrl.Count == 0) //{ localUrl = manager.FindInMetadata(manager.MagazineUrl[i]); if (localUrl != null && localUrl.IsDownloaded) m = new MagazineModel(localUrl, manager.MagazineUrl[i].Index); else m = new MagazineModel(manager.MagazineUrl[i]); //} //else //{ //localUrl = manager.MagazineLocalUrl[i]; //m = new MagazineModel(localUrl, i); //} if (GetItem(m.Title + m.Subtitle + "1") != null) continue; BitmapImage image = null; try { if (localUrl != null && localUrl.IsDownloaded) { var file = await StorageFile.GetFileFromPathAsync(m.pngPath); image = new BitmapImage(); await image.SetSourceAsync(await file.OpenReadAsync()); } else { image = new BitmapImage(new Uri(m.pngUrl)); } } catch { } MagazineViewModel item = null; if (group.Items.Count == 0) item = new MagazineViewModel(m.Title + m.Subtitle + "1", 2, 2, m.Title, m.Subtitle, image, group, m); else item = new MagazineViewModel(m.Title + m.Subtitle + "1", 1, 1, m.Title, m.Subtitle, image, group, m); if (localUrl != null && localUrl.IsDownloaded) item.SecondButtonVisible = false; group.Items.Add(item); } group.Items = new ObservableCollection<MagazineViewModel>(group.Items.OrderBy(item => item.Index)); //if (GetGroup("All Magazines") != null) return null; //PList list = new PList("Assets/data/magazines.plist"); ////TODODEBUG try // List<dynamic> arr = list[""]; // group = new MagazineDataGroup("All Magazines", "All Magazines", ""); // for (int i = 0; i < arr.Count; i++) // { // var m = new MagazineModel((Dictionary<string, dynamic>)arr[i]); // group.Items.Add(new MagazineViewModel("", "", "", null, group, m)); // } // _sampleDataSource.AllGroups.Add(group); return manager; }