Exemplo n.º 1
0
        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);
            }
        }