public void GenerateUserAndContainerSnapshotTest()
        {
            TestRoleData roleData = SCObjectGenerator.PrepareTestRoleWithOrgAndGroup();

            SCConditionCalculator calculator = new SCConditionCalculator();

            ProcessProgress.Clear();
            ProcessProgress.Current.RegisterResponser(TestProgressResponser.Instance);

            calculator.GenerateUserAndContainerSnapshot(new List <ISCUserContainerObject>()
            {
                roleData.Group
            });
            calculator.GenerateUserAndContainerSnapshot(new List <ISCUserContainerObject>()
            {
                roleData.Role
            });

            SameContainerUserAndContainerSnapshotCollection snapshot = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(roleData.Role.ID);

            Console.WriteLine(roleData.ToString());
            Console.Error.WriteLine("Error: {0}", ProcessProgress.Current.GetDefaultError());
            Console.WriteLine("Output: {0}", ProcessProgress.Current.GetDefaultOutput());

            Assert.IsTrue(snapshot.ContainsKey(roleData.UserInGroup.ID));
            Assert.IsTrue(snapshot.ContainsKey(roleData.UserInOrg.ID));
            Assert.IsTrue(snapshot.ContainsKey(roleData.UserInRole.ID));
            Assert.IsTrue(snapshot.ContainsKey(roleData.UserInConditionRole.ID));
            Assert.IsTrue(snapshot.ContainsKey(roleData.UserInConditionGroup.ID));
        }
        protected void ProcessCaculating(object sender, MCS.Web.WebControls.PostProgressDoPostedDataEventArgs e)
        {
            SCConditionCalculator calc = new SCConditionCalculator();

            calc.GenerateUserAndContainerSnapshot(new[] { (PC.SCGroup)SchemaObjectAdapter.Instance.Load(this.calcProgress.Tag) });

            e.Result.DataChanged = true;
            e.Result.CloseWindow = false;
            e.Result.ProcessLog  = ProcessProgress.Current.GetDefaultOutput();
        }
        public void IsChildAllByIDBuiltInFunctionTest()
        {
            SchemaObjectAdapter.Instance.ClearAllData();

            TestRoleData roleData = SCObjectGenerator.PrepareTestRoleWithOrgAndGroup(data => string.Format("IsChildAll(\"{0}\", \"{1}\")", "Guid", data.SidelineOrganization.ID));

            SCConditionCalculator calculator = new SCConditionCalculator();

            ProcessProgress.Clear();
            ProcessProgress.Current.RegisterResponser(TestProgressResponser.Instance);

            calculator.GenerateUserAndContainerSnapshot(new List <ISCUserContainerObject>()
            {
                roleData.BuiltInFunctionRole
            });

            SameContainerUserAndContainerSnapshotCollection snapshot = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(roleData.BuiltInFunctionRole.ID);

            Console.WriteLine(roleData.ToString());
            Console.Error.WriteLine("Error: {0}", ProcessProgress.Current.GetDefaultError());
            Console.WriteLine("Output: {0}", ProcessProgress.Current.GetDefaultOutput());

            Assert.IsFalse(snapshot.ContainsKey(roleData.SidelineUserInOrg.ID));
        }