private void OnReadyToBind(ThreadViewPageState state) { var eventHandler = ReadyToBind; if (eventHandler != null) { eventHandler(this, new Common.ThreadReadyToBindEventArgs(state)); } }
protected override void OnSuccess(object arg) { ThreadViewPageState state = arg as ThreadViewPageState; if (state != null) { // we know for sure it was successful IsReady = true; OnReadyToBind(state); } }
public void UpdateModel(ThreadViewPageState state) { var thread = Data.MainDataSource.Instance.FindThreadByID(state.ThreadID); if (thread == null) { ThreadMetadata metadata = new ThreadMetadata(); metadata.ThreadID = state.ThreadID; metadata.Title = state.Title; metadata.PageCount = state.PageCount; thread = new Data.ThreadDataSource(metadata); } this.Thread = thread; int index = state.PageNumber - 1; var page = this.Pages[index]; page.Html = state.Html; page.Posts = state.Posts; this.IsReady = true; }
protected override object DoWork(int parameter) { ThreadViewPageState state = null; ThreadPageMetadata page = LoadPageFromWeb(parameter); if (page == null) { throw new NullReferenceException("Thread page must not be null."); } else { var pageData = new Data.ThreadPageDataObject(page); // mine data about the thread from the page Thread.Title = page.ThreadTitle; if (page.LastPage > 0) { Thread.PageCount = page.LastPage; } // set the selected index to that of the loaded page SelectedIndex = page.PageNumber - 1; // create page state and save immeadiately so we don't have to load this again state = new ThreadViewPageState(Thread, pageData); try { ThreadViewPageState.Save(state); } catch (Exception) { } // setup page proxy and insert page at proper index SetPages(Thread.PageCount); Pages[SelectedIndex] = pageData; } return(state); }
public ThreadReadyToBindEventArgs(ThreadViewPageState state) { State = state; }