public void Should_UpdatePreferences() { var users = CreateDataContext().AddUsers(5); foreach (var u in users) { var prefRes = GetRepo <UserRepository>() .ForActiveOrg(u.OrgId) .GetPreferences(u.Id); Assert.False(prefRes.HasError); var model = prefRes.Value; var emptyModel = new ModelUserPreferences() { UserId = u.Id, OrgId = u.OrgId }; Assert.True(emptyModel.Equals(prefRes.Value)); TestFactory.Update(model); Assert.False(GetRepo <UserRepository>() .ForActiveOrg(u.OrgId) .UpdatePreferences(model) .HasError); prefRes = GetRepo <UserRepository>() .ForActiveOrg(u.OrgId) .GetPreferences(u.Id); Assert.False(prefRes.HasError); Assert.True(model.Equals(prefRes.Value)); } }
public void Should_DeleteUsersAndPreferences() { var users = CreateDataContext().AddUsers(5); CreateDataContext().AddUserPreferences(); Assert.True(CreateDataContext() .Preferences .ToList() .Count == users.Count); foreach (var u in users) { Assert.False(GetRepo <UserRepository>() .ForActiveOrg(u.OrgId) .Delete(u.Id) .HasError); var prefCount = CreateDataContext() .Preferences .ToList() .Count; var userCount = CreateDataContext() .Users .ToList() .Count; Assert.True(prefCount == userCount); var model = GetRepo <UserRepository>() .ForActiveOrg(u.OrgId) .GetPreferences(u.Id); Assert.False(model.HasError); var emptyModel = new ModelUserPreferences() { UserId = u.Id, OrgId = u.OrgId }; Assert.True(emptyModel.Equals(model.Value)); } Assert.Empty(CreateDataContext() .Preferences .ToList()); }
/// <summary> /// /// </summary> /// <param name=""></param> public OperationResult <ModelPreferences> GetEffectivePreferences(int id) { var p = new ModelPreferences(); var res = OperationResult <ModelPreferences> .Create(p); try { var prefs = DataContext .Preferences .ForActiveOrg() .Where(x => (null == x.UserId && null == x.TeamId) || (x.UserId == id)) .ToList(); if (0 != prefs.Count) { var userPref = prefs.FirstOrDefault(x => x.UserId == id); var orgPref = prefs.FirstOrDefault(x => x.UserId == null); if (null != orgPref) { p.TimeZone = orgPref.TimeZone; p.Theme = orgPref.Theme; } if (null != userPref) { if (userPref?.TimeZone != Security.TimeZone.Default) { p.TimeZone = userPref.TimeZone; } if (userPref?.Theme != Security.Theme.Default) { p.Theme = userPref.Theme; } } } } catch {} return(res); }
/// <summary> /// /// </summary> /// <param name="teamId"></param> /// <returns></returns> public OperationResult <ModelPreferences> UpdatePreferences(ModelPreferences pref) { OperationResult <ModelPreferences> res; try { var entity = DataContext .Preferences .ForActiveOrg() .FirstOrDefault(p => p.UserId == pref.UserId); if (null != entity) { entity.Update(pref); } else { entity = pref.ToUserEntity(); entity.OrgId = DataContext.ActiveOrgId; DataContext.Preferences.Add(entity); } DataContext.SaveChanges(); var model = entity .UpdateId(pref) .ToUserModel(); res = OperationResult <ModelPreferences> .Create(model); } catch (Exception e) { res = OperationResult <ModelPreferences> .Create(ErrorCode.BadUpdateUserPreferences, e); } return(res); }
public void ShouldNot_UpdatePreferencesWhenBadUserId() { var users = CreateDataContext().AddUsers(5); foreach (var u in users) { var prefRes = GetRepo <UserRepository>() .ForActiveOrg(u.OrgId) .GetPreferences(u.Id); Assert.False(prefRes.HasError); var model = prefRes.Value; var emptyModel = new ModelUserPreferences() { UserId = u.Id, OrgId = u.OrgId }; Assert.True(emptyModel.Equals(prefRes.Value)); TestFactory.Update(model); Assert.True(GetRepo <UserRepository>() .ForActiveOrg(0) .UpdatePreferences(model) .Error .Code == ErrorCode.BadUpdateUserPreferences); model.UserId = TestFactory.GetRandomUShort(1000) + 1000; Assert.True(GetRepo <UserRepository>() .ForActiveOrg(u.OrgId) .UpdatePreferences(model) .Error .Code == ErrorCode.BadUpdateUserPreferences); } }