예제 #1
0
        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            using( new TimedLog(UserGuid.ToString(), "Activity: Get User Setting") )
            {
                using (var db = DatabaseHelper.GetDashboardData())
                {
                    var query = from u in db.UserSettings
                                where u.UserId == UserGuid
                                select u;

                    IEnumerator<UserSetting> e = query.GetEnumerator();

                    if (e.MoveNext())
                    {
                        this.UserSetting = e.Current;
                    }
                    else
                    {
                        // No setting saved before. Create default setting
                        UserSetting newSetting = new UserSetting();
                        newSetting.UserId = UserGuid;
                        newSetting.CurrentPageId = (from page in db.Pages
                                                    where page.UserId == UserGuid
                                                    select page.ID).First();

                        db.UserSettings.InsertOnSubmit(newSetting);
                        db.SubmitChanges();

                        this.UserSetting = newSetting;
                    }

                    // Get users current page and if not available, get the first page
                    this.CurrentPage = db.Pages.SingleOrDefault(page => page.ID == this.UserSetting.CurrentPageId)
                        ?? db.Pages.First(page => page.UserId == this.UserGuid);
                }

                return ActivityExecutionStatus.Closed;
            }
        }
예제 #2
0
        public void RegisterAs(string email)
        {
            using (new TimedLog(this._UserName, "Register As: " + email))
            {
                using (var db = DatabaseHelper.GetDashboardData())
                {
                    MembershipUser newUser = Membership.GetUser(email);

                    // Get the User Id for the anonymous user from the aspnet_users table
                    aspnet_User anonUser = db.aspnet_Users.Single(u => u.LoweredUserName == this._UserName && u.ApplicationId == DatabaseHelper.ApplicationGuid);

                    Guid oldGuid = anonUser.UserId;
                    Guid newGuid = (Guid)newUser.ProviderUserKey;

                    // Move page ownership
                    using (TransactionScope ts = new TransactionScope())
                    {
                        List<Page> pages = db.Pages.Where(p => p.UserId == oldGuid).ToList();
                        foreach (Page page in pages)
                            page.UserId = newGuid;

                        // Change setting ownership
                        UserSetting setting = db.UserSettings.Single(u => u.UserId == oldGuid);
                        db.UserSettings.DeleteOnSubmit(setting);

                        UserSetting newSetting = new UserSetting();
                        newSetting.UserId = newGuid;
                        newSetting.CurrentPageId = setting.CurrentPageId;
                        db.UserSettings.InsertOnSubmit(newSetting);
                        db.SubmitChanges();

                        ts.Complete();
                    }
                }
            }
        }
예제 #3
0
 partial void DeleteUserSetting(UserSetting instance);
예제 #4
0
 partial void UpdateUserSetting(UserSetting instance);
예제 #5
0
 partial void InsertUserSetting(UserSetting instance);