Exemple #1
0
        static void Main(string[] args)
        {
            int warmupCount = 400;
            int runCount    = 500;

            CrmServiceClient     crmConn = new CrmServiceClient(ConfigurationManager.ConnectionStrings["CRM"].ConnectionString);
            IOrganizationService service = crmConn.OrganizationServiceProxy;


            CreateAccounts("Early Bound Test", warmupCount, runCount, () =>
            {
                EvL.Account a = new EvL.Account();
                a.Name        = "Test Early Vs Late";
                service.Create(a);
            });


            CreateAccounts("Late Bound Test", warmupCount, runCount, () =>
            {
                Entity e  = new Entity("account");
                e["name"] = "Test Early Vs Late";
                service.Create(e);
            });

            //TidyUp();

            Console.WriteLine("Finished");
            Console.ReadKey();
        }
        protected override void Execute(CodeActivityContext executionContext)
        {
            var tracing        = executionContext.GetExtension <ITracingService>();
            var context        = executionContext.GetExtension <IWorkflowContext>();
            var serviceFactory = executionContext.GetExtension <IOrganizationServiceFactory>();
            var service        = serviceFactory.CreateOrganizationService(context.UserId);

            int warmupCount = 0;
            int runCount    = 0;

            tracing.Trace("Entering EarlyVsLateTestWF.");
            tracing.Trace("Running on Entity: {0} EntityId: {1}", context.PrimaryEntityName, context.PrimaryEntityId);

            if (null != this.WarmupCount && this.WarmupCount.Get <int>(executionContext) > 0)
            {
                warmupCount = this.WarmupCount.Get <int>(executionContext);
            }
            if (null != this.RunCount && this.RunCount.Get <int>(executionContext) > 0)
            {
                runCount = this.RunCount.Get <int>(executionContext);
            }

            tracing.Trace("Warm up count: {0}. Run count: {1}", warmupCount, runCount);

            CreateAccounts("Late Bound Test", warmupCount, runCount, tracing, () =>
            {
                Entity e  = new Entity("account");
                e["name"] = "Test Early Vs Late";
                service.Create(e);
            });

            // TODO: An Account entity has a lot of plugins firing on it as standard, try this out with a custom entity to eliminate.
            CreateAccounts("Early Bound Test", warmupCount, runCount, tracing, () =>
            {
                EvL.Account a = new EvL.Account();
                a.Name        = "Test Early Vs Late";
                service.Create(a);
            });

            tracing.Trace("Finished. Exiting EarlyVsLateTestWF.");
        }