public void ActiveRoleDifferenceObjectss_For_User_That_Do_Not_Have_Roles_Should_Be_Zero(){
            var queryRoleDifferenceObjectsObject = new QueryRoleModelDifferenceObject(Session.DefaultSession);

            var queryable = queryRoleDifferenceObjectsObject.GetActiveModelDifferences("");

            Assert.AreEqual(0, queryable.Count());
        }
        public override IEnumerable <ModelApplicationBase> GetAllLayers(ModelApplicationBase master)
        {
            IQueryable <ModelDifferenceObject> differenceObjects = new QueryRoleModelDifferenceObject(Session).GetActiveModelDifferences(PersistentApplication.UniqueName, null).Cast <ModelDifferenceObject>();

            differenceObjects = differenceObjects.Concat(new QueryModelDifferenceObject(Session).GetActiveModelDifferences(PersistentApplication.UniqueName, null));
            return(GetAllLayers(differenceObjects, master));
        }
 protected internal IQueryable<ModelDifferenceObject> GetActiveDifferenceObjects(){
     IQueryable<UserModelDifferenceObject> modelDifferenceObjects = new QueryUserModelDifferenceObject(ObjectSpace.Session).GetActiveModelDifferences(
         Application.GetType().FullName);
     List<RoleModelDifferenceObject> roleAspectObjects = new QueryRoleModelDifferenceObject(ObjectSpace.Session).GetActiveModelDifferences(
         Application.GetType().FullName).ToList();
     IEnumerable<ModelDifferenceObject> roleAspectObjectsConcat = roleAspectObjects.Cast<ModelDifferenceObject>().Concat(modelDifferenceObjects.Cast<ModelDifferenceObject>());
     return roleAspectObjectsConcat.AsQueryable();
 }
        public override Dictionary GetCombinedModel(bool isSaving)

        {

            List<RoleModelDifferenceObject> roleModelDifferenceObjects = new QueryRoleModelDifferenceObject(Session).GetActiveModelDifferences(
                PersistentApplication.UniqueName).ToList();

            var modelDifferenceObjects = new List<ModelDifferenceObject>();
            var modelDifferenceObject = new QueryModelDifferenceObject(Session).GetActiveModelDifference(PersistentApplication.UniqueName);
            modelDifferenceObjects.Add(modelDifferenceObject);
            IEnumerable<ModelDifferenceObject> differenceObjects = roleModelDifferenceObjects.Cast<ModelDifferenceObject>().Concat(modelDifferenceObjects);

            return GetCombinedModel(differenceObjects,isSaving);
        }
        public void ActiveDifferenceObjectsRoles_Will_Be_All_ModelDifferenceObjectsObjects_that_are_OfRoleType_And_That_At_Leat_One_of_Their_Roles_Is_Current_User_Role()
        {
            Isolate.Fake.ISecurityComplex();
            var role = new Role(Session.DefaultSession);
            role.Save();
            ((User)SecuritySystem.CurrentUser).Roles.Add(role);
            XafTypesInfo.Instance.RegisterEntity(typeof(RoleModelDifferenceObject));
            RoleDifferenceObjectBuilder.CreateDynamicMembers(Isolate.Fake.Instance<ISecurityComplex>());
            new ModelDifferenceObject(Session.DefaultSession){PersistentApplication = new PersistentApplication(Session.DefaultSession)}.Save();
            var roleDifferenceObjectsObject1 = new RoleModelDifferenceObject(Session.DefaultSession) { PersistentApplication =new PersistentApplication(Session.DefaultSession) { UniqueName = "AppName" } };
            ((XPCollection)roleDifferenceObjectsObject1.GetMemberValue("Roles")).Add(role);
            roleDifferenceObjectsObject1.Save();
            var roleDifferenceObjectsObject2 = new RoleModelDifferenceObject(Session.DefaultSession) { PersistentApplication = new PersistentApplication(Session.DefaultSession) { UniqueName = "AppName" } };
            roleDifferenceObjectsObject2.Save();
            ((XPCollection)roleDifferenceObjectsObject2.GetMemberValue("Roles")).Add(role);
            new RoleModelDifferenceObject(Session.DefaultSession) { PersistentApplication = new PersistentApplication(Session.DefaultSession){ Name = "AppName" } }.Save();
            

            IQueryable<RoleModelDifferenceObject> queryable = new QueryRoleModelDifferenceObject(Session.DefaultSession).GetActiveModelDifferences("AppName");

            Assert.AreEqual(2, queryable.Count());
        }
 public override IEnumerable<ModelApplicationBase> GetAllLayers(ModelApplicationBase master) {
     IQueryable<ModelDifferenceObject> differenceObjects = new QueryRoleModelDifferenceObject(Session).GetActiveModelDifferences(PersistentApplication.UniqueName, null).Cast<ModelDifferenceObject>();
     differenceObjects = differenceObjects.Concat(new QueryModelDifferenceObject(Session).GetActiveModelDifferences(PersistentApplication.UniqueName, null));
     return GetAllLayers(differenceObjects, master);
 }