public void ShowPreviewAsync(Awful.Core.Models.ActionResult result, SAThreadPage preview) { ThreadPool.QueueUserWorkItem(state => { this.HandleResult(result, preview, 0); }, null); }
static void Authenticator_LoginSuccessful(object sender, Awful.Core.Event.ProfileChangedEventArgs e) { ThreadPool.QueueUserWorkItem(state => { try { OnProfileChanged(sender, e); using (var db = new SAForumDB()) { var count = db.Smilies.Count(); if (count == 0) { var signal = new AutoResetEvent(false); Services.AwfulSmileyService.FetchSmiliesFromWebAsync((result, list) => { if (result == Awful.Core.Models.ActionResult.Success) { db.Smilies.InsertAllOnSubmit(list); } signal.Set(); }); signal.WaitOne(); db.SubmitChanges(ConflictMode.FailOnFirstConflict); } } } catch (Exception ex) { string error = string.Format("An error occured while updating the smiley database: [{0}] {1}", ex.Message, ex.StackTrace); Awful.Core.Event.Logger.AddEntry(error); } }, null); }
protected void HandleResult(Awful.Core.Models.ActionResult result, ThreadPage page, int postNumber) { ThreadPage old = this._currentThreadPage; switch (result) { case Awful.Core.Models.ActionResult.Success: this._currentThreadPage = page; if (this.CurrentUserID == 0) { ThreadCache.AddPageToCache(page as SAThreadPage); } break; case Awful.Core.Models.ActionResult.Failure: Deployment.Current.Dispatcher.BeginInvoke(() => { MessageBox.Show(Globals.Constants.WEB_PAGE_FAILURE, ":(", MessageBoxButton.OK); }); break; } object[] args = new object[2] { _currentThreadPage, postNumber }; this.BuildContentFromThreadPage(args); }
private static void OnProfileChanged(object sender, Awful.Core.Event.ProfileChangedEventArgs e) { try { using (var db = new SAForumDB()) { var profile = db.Profiles.Where(p => p.Username.Equals(e.Value.Username)).SingleOrDefault(); if (profile == null) { profile = new Profile() { Username = e.Value.Username, Password = e.Value.Password }; profile.AssignTokens(e.Cookies); db.Profiles.InsertOnSubmit(profile); db.SubmitChanges(ConflictMode.FailOnFirstConflict); App.Settings.CurrentProfileID = profile.ID; } else { App.Settings.CurrentProfileID = profile.ID; App.CurrentUser = profile.Username; foreach (var cookie in e.Cookies) { var token = new SAAuthToken(cookie) { Profile = profile }; db.Tokens.InsertOnSubmit(token); } db.SubmitChanges(ConflictMode.FailOnFirstConflict); var profile2 = db.Profiles.Where(p => p.ID == profile.ID).SingleOrDefault(); } } } catch (Exception ex) { string error = string.Format( "There was an error while trying to save profile to DB. [{0}] {1}", ex.Message, ex.StackTrace); Awful.Core.Event.Logger.AddEntry(error); } }