public async Task BookmarkSchool(string school, bool bookmark) { SchoolBookmarks.UpdateOrInsert(new SchoolBookmark(school, bookmark)); AllSchoolClassBookmarks.Where((arg) => arg.SchoolClass.School.Equals(school)) .ToList() .ForEach(schoolClassBookmark => { var newBookmark = new SchoolClassBookmark(schoolClassBookmark.SchoolClass, schoolClassBookmark.Bookmarked, bookmark); UpdateSchoolClassBookmark(newBookmark); }); UpdateBookmarkedVplan(); await PersistSchoolBookmarks(); await PersistSchoolClassBookmarks(); }
void UpdateSchoolClassBookmark(SchoolClassBookmark newBookmark) { // Replace bookmark AllSchoolClassBookmarks.Remove(newBookmark); AllSchoolClassBookmarks.Add(newBookmark); var newBookmarkIndex = NewSchoolClassBookmarks.IndexOf(newBookmark); if (newBookmarkIndex >= 0) { NewSchoolClassBookmarks[newBookmarkIndex] = newBookmark; } if (newBookmark.SchoolBookmarked) { SchoolClassBookmarks.UpdateOrInsert(newBookmark); } else { SchoolClassBookmarks.Remove(newBookmark); } }
void AddNewSchoolClasses(IEnumerable <SchoolClass> schoolClasses) { foreach (SchoolClass schoolClass in schoolClasses) { var schoolBookmark = GetSchoolBookmark(schoolClass.School); Debug.Assert(schoolBookmark != null, string.Format("School class bookmark {0} schould exist", schoolClass)); var newBookmark = new SchoolClassBookmark(schoolClass, false, schoolBookmark.Bookmarked); if (AllSchoolClassBookmarks.Contains(newBookmark)) { return; } if (schoolBookmark.Bookmarked) { NewSchoolClassBookmarks.Add(newBookmark); } UpdateSchoolClassBookmark(newBookmark); } }
async Task PersistSchoolClassBookmarks() { await Persistence.PersistSchoolClassBookmarks(AllSchoolClassBookmarks.ToList()); }