public virtual void BusinessObject_GetProperty()
        {
            var obj = (IBusinessObject)ObjectWithSecurity.NewObject();

            ((ObjectWithSecurity)obj).TheProperty = -1;
            var property = obj.BusinessObjectClass.GetPropertyDefinition("TheProperty");

            bool value = false;

            Assert.That(obj.GetProperty(property), Is.Not.Null);

            var gcCounter = new GCCounter();

            gcCounter.BeginCount();
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            for (int i = 0; i < TestRepititions; i++)
            {
                value ^= obj.GetProperty(property) == null;
            }
            stopwatch.Stop();
            gcCounter.EndCount();

            Trace.WriteLine(value);

            double averageMilliSeconds = ((double)stopwatch.ElapsedMilliseconds / TestRepititions) * 1000;

            Console.WriteLine("BusinessObject_GetProperty (executed {0:N0}x): Average duration: {1:N} µs", TestRepititions, averageMilliSeconds);
            gcCounter.PrintCount(Console.Out);
        }
        public virtual void BusinessObject_Property_IsAccessible()
        {
            var obj      = (IBusinessObject)ObjectWithSecurity.NewObject();
            var property = obj.BusinessObjectClass.GetPropertyDefinition("TheProperty");

            bool value = true;

            foreach (var propertyDefinition in obj.BusinessObjectClass.GetPropertyDefinitions())
            {
                Assert.That(propertyDefinition.IsAccessible(obj));
            }

            var gcCounter = new GCCounter();

            gcCounter.BeginCount();
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            for (int i = 0; i < TestRepititions; i++)
            {
                value ^= property.IsAccessible(obj);
            }
            stopwatch.Stop();
            gcCounter.EndCount();

            Trace.WriteLine(value);

            double averageMilliSeconds = ((double)stopwatch.ElapsedMilliseconds / TestRepititions) * 1000;

            Console.WriteLine("BusinessObject_Property_IsAccessible (executed {0:N0}x): Average duration: {1:N} µs", TestRepititions, averageMilliSeconds);
            gcCounter.PrintCount(Console.Out);
        }
        public virtual void DomainObject_SetProperty()
        {
            var obj = ObjectWithSecurity.NewObject();

            obj.TheProperty = -1;

            var gcCounter = new GCCounter();

            gcCounter.BeginCount();
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            for (int i = 0; i < TestRepititions; i++)
            {
                obj.TheProperty = i;
            }

            stopwatch.Stop();
            gcCounter.EndCount();

            Trace.WriteLine(obj.TheProperty);

            double averageMilliSeconds = ((double)stopwatch.ElapsedMilliseconds / TestRepititions) * 1000;

            Console.WriteLine("DomainObject_SetProperty ((executed {0:N0}x): Average duration: {1:N} µs", TestRepititions, averageMilliSeconds);
            gcCounter.PrintCount(Console.Out);
        }
        public virtual void BusinessObject_SetProperty()
        {
            var obj      = (IBusinessObject)ObjectWithSecurity.NewObject();
            var property = obj.BusinessObjectClass.GetPropertyDefinition("TheProperty");

            obj.SetProperty(property, -1);

            var gcCounter = new GCCounter();

            gcCounter.BeginCount();
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            for (int i = 0; i < TestRepititions; i++)
            {
                obj.SetProperty(property, i);
            }

            stopwatch.Stop();
            gcCounter.EndCount();

            double averageMilliSeconds = ((double)stopwatch.ElapsedMilliseconds / TestRepititions) * 1000;

            Console.WriteLine("BusinessObject_SetProperty (executed {0:N0}x): Average duration: {1:N} µs", TestRepititions, averageMilliSeconds);
            gcCounter.PrintCount(Console.Out);
        }
        public virtual void DynamicMethod_GetProperty()
        {
            var obj = (IBusinessObject)ObjectWithSecurity.NewObject();

            ((ObjectWithSecurity)obj).TheProperty = -1;
            var property = (PropertyBase)obj.BusinessObjectClass.GetPropertyDefinition("TheProperty");

            bool value = false;

            var propertyInfo  = property.PropertyInfo;
            var dynamicMethod = propertyInfo.GetGetMethod(false).GetFastInvoker <Func <object, object> >();

            Assert.That(dynamicMethod(obj), Is.Not.Null);

            var gcCounter = new GCCounter();

            gcCounter.BeginCount();
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            for (int i = 0; i < TestRepititions; i++)
            {
                value ^= dynamicMethod(obj) == null;
            }

            stopwatch.Stop();
            gcCounter.EndCount();

            Trace.WriteLine(value);

            double averageMilliSeconds = ((double)stopwatch.ElapsedMilliseconds / TestRepititions) * 1000;

            Console.WriteLine("DynamicMethod_GetProperty (executed {0:N0}x): Average duration: {1:N} µs", TestRepititions, averageMilliSeconds);
            gcCounter.PrintCount(Console.Out);
        }
Exemplo n.º 6
0
        public override void UpdateDatabaseAfterUpdateSchema()
        {
            base.UpdateDatabaseAfterUpdateSchema();
            Position developerPosition = ObjectSpace.FindObject <Position>(CriteriaOperator.Parse("Title == 'Developer'"));

            if (developerPosition == null)
            {
                developerPosition       = ObjectSpace.CreateObject <Position>();
                developerPosition.Title = "Developer";
            }
            Position managerPosition = ObjectSpace.FindObject <Position>(CriteriaOperator.Parse("Title == 'Manager'"));

            if (managerPosition == null)
            {
                managerPosition       = ObjectSpace.CreateObject <Position>();
                managerPosition.Title = "Manager";
            }

            Contact contactJohn = ObjectSpace.FindObject <Contact>(CriteriaOperator.Parse("FirstName == 'John' && LastName == 'Nilsen'"));

            if (contactJohn == null)
            {
                contactJohn           = ObjectSpace.CreateObject <Contact>();
                contactJohn.FirstName = "John";
                contactJohn.LastName  = "Nilsen";
                contactJohn.Email     = "*****@*****.**";
                contactJohn.Birthday  = new DateTime(1981, 10, 3);
                contactJohn.Position  = developerPosition;
            }
            PhoneNumber johnPhoneNumber_1 = ObjectSpace.FindObject <PhoneNumber>(CriteriaOperator.Parse("Number == '888-111-222'"));

            if (johnPhoneNumber_1 == null)
            {
                johnPhoneNumber_1        = ObjectSpace.CreateObject <PhoneNumber>();
                johnPhoneNumber_1.Number = "888-111-222";
                contactJohn.PhoneNumbers.Add(johnPhoneNumber_1);
            }
            PhoneNumber johnPhoneNumber_2 = ObjectSpace.FindObject <PhoneNumber>(CriteriaOperator.Parse("Number == '888-333-222'"));

            if (johnPhoneNumber_2 == null)
            {
                johnPhoneNumber_2        = ObjectSpace.CreateObject <PhoneNumber>();
                johnPhoneNumber_2.Number = "888-333-222";
                contactJohn.PhoneNumbers.Add(johnPhoneNumber_2);
            }

            ObjectSpace.CommitChanges();

            Contact contactMary = ObjectSpace.FindObject <Contact>(CriteriaOperator.Parse("FirstName == 'Mary' && LastName == 'Tellitson'"));

            if (contactMary == null)
            {
                contactMary           = ObjectSpace.CreateObject <Contact>();
                contactMary.FirstName = "Mary";
                contactMary.LastName  = "Tellitson";
                contactMary.Email     = "*****@*****.**";
                contactMary.Birthday  = new DateTime(1980, 11, 27);
                contactMary.Position  = managerPosition;
            }
            PhoneNumber maryPhoneNumber_1 = ObjectSpace.FindObject <PhoneNumber>(CriteriaOperator.Parse("Number == '999-999-999'"));

            if (maryPhoneNumber_1 == null)
            {
                maryPhoneNumber_1        = ObjectSpace.CreateObject <PhoneNumber>();
                maryPhoneNumber_1.Number = "999-999-999";
                contactMary.PhoneNumbers.Add(maryPhoneNumber_1);
            }
            PhoneNumber maryPhoneNumber_2 = ObjectSpace.FindObject <PhoneNumber>(CriteriaOperator.Parse("Number == '999-999-777'"));

            if (maryPhoneNumber_2 == null)
            {
                maryPhoneNumber_2        = ObjectSpace.CreateObject <PhoneNumber>();
                maryPhoneNumber_2.Number = "999-999-777";
                contactMary.PhoneNumbers.Add(maryPhoneNumber_2);
            }

            ObjectSpace.CommitChanges();

            Company myOrg = ObjectSpace.FindObject <Company>(CriteriaOperator.Parse("Name == 'Demo Company'"));

            if (myOrg == null)
            {
                myOrg      = ObjectSpace.CreateObject <Company>();
                myOrg.Name = "Demo Company";
                myOrg.City = "DefaultCity";
            }
#if !DXCORE3
            CreateReport("OrdinalReport", OrdinalReportResource.ReportLayout, "ReportWithParametersObject", typeof(DemoParameters));
            ReportDataV2 reportData = CreateReport("SubreportCompany", SubreportCompanyLayout.ReportLayout);
            string       reportWithSubReportLayout = ReportWithSubReportLayout.ReportLayout.Replace("SubReportKEY", ObjectSpace.GetObjectHandle(reportData));
            ReportDataV2 simpleSubReportData       = CreateReport("SimpleSubReport", SimpleSubReportLayout.ReportLayout);
            string       reportWithSubReportDifferentEnumsLayout = ReportWithSubReportDifferentEnumsLayout.ReportLayout.Replace("SubReportKEY", ObjectSpace.GetObjectHandle(simpleSubReportData));
            CreateReport("ReportWithSecurity", ReportWithSecurity.ReportLayout);
            CreateReport("ReportWithSubReportDifferentEnums", reportWithSubReportDifferentEnumsLayout);
            CreateReport("ReportWithSubReport", reportWithSubReportLayout);
            CreateReport("ReportWithViewDataSource", ReportWithViewDataSourceLayout.ReportLayout);
            CreateReport("OrdinalReport", OrdinalReportResource.ReportLayout);
#else
            CreateReport("OrdinalReport", "OrdinalReport.repx");
            CreateReport("ReportWithSecurity", "ReportWithSecurity.repx");
            CreateReport("OrdinalReport", "OrdinalReport.repx", "ReportWithParametersObject", typeof(DemoParameters));
            ReportDataV2 simpleSubReportData = CreateReport("SimpleSubReport", "SimpleSubReport.repx");
            CreateReport("ReportWithSubReportDifferentEnums", "ReportWithSubReportDifferentEnums.repx", subReportUrl: ObjectSpace.GetObjectHandle(simpleSubReportData));
            ReportDataV2 reportData = CreateReport("SubreportCompany", "SubreportCompany.repx");
            CreateReport("ReportWithSubReport", "ReportWithSubReport.repx", subReportUrl: ObjectSpace.GetObjectHandle(reportData));
            CreateReport("ReportWithViewDataSource", "ReportWithViewDataSource.repx");
#endif
            CreateReportParameters();
            CreateReportMultiValueParameters();
            CreateReportWithBookmark();
            CreateUser();
            SimpleObjectWithEnum simpleObjectWithEnum = ObjectSpace.FindObject <SimpleObjectWithEnum>(CriteriaOperator.Parse("Name == 'One'"));
            if (simpleObjectWithEnum == null)
            {
                simpleObjectWithEnum            = ObjectSpace.CreateObject <SimpleObjectWithEnum>();
                simpleObjectWithEnum.Name       = "One";
                simpleObjectWithEnum.SimpleEnum = SimpleEnum.One;
            }
            ObjectWithSecurity objectWithSecurity = ObjectSpace.FindObject <ObjectWithSecurity>(new BinaryOperator("Name", "TestObject"));
            if (objectWithSecurity == null)
            {
                objectWithSecurity      = ObjectSpace.CreateObject <ObjectWithSecurity>();
                objectWithSecurity.Name = "TestObject";
                PermissionPolicyUser user = ObjectSpace.FindObject <PermissionPolicyUser>(new BinaryOperator("UserName", "User"));
                objectWithSecurity.User = user;
            }


            ObjectSpace.CommitChanges();
        }