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; } }
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(); } } } }
partial void DeleteUserSetting(UserSetting instance);
partial void UpdateUserSetting(UserSetting instance);
partial void InsertUserSetting(UserSetting instance);