Example #1
0
        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));
            }
        }
Example #2
0
        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());
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
        }
Example #5
0
        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);
            }
        }