Ejemplo n.º 1
0
        /// <summary>
        /// Creates a new instance of Core
        /// </summary>
        /// <param name="Settings"></param>
        /// <param name="metadata"></param>
        /// <param name="SecurityRoles"></param>
        /// <param name="Workflows"></param>
        public Core(XrmMockupSettings Settings, MetadataSkeleton metadata, List <Entity> Workflows, List <SecurityRole> SecurityRoles)
        {
            this.dataMethods    = new DataMethods(this, metadata, SecurityRoles);
            this.ServiceFactory = new MockupServiceProviderAndFactory(this);
            this.settings       = Settings;
            this.InitRequestMap();
            this.pluginManager   = new PluginManager(Settings.BasePluginTypes, metadata.EntityMetadata, metadata.Plugins);
            this.workflowManager = new WorkflowManager(Settings.CodeActivityInstanceTypes, Settings.IncludeAllWorkflows, Workflows, metadata.EntityMetadata);

            var tracingService = new TracingService();
            var factory        = new MockupServiceProviderAndFactory(this, null, tracingService);
            var service        = factory.CreateOrganizationService(null, new MockupServiceSettings(false, true, MockupServiceSettings.Role.SDK));

            dataMethods.SetWorkflowServices(tracingService, factory, service);
        }
Ejemplo n.º 2
0
        internal void ExecuteWaitingWorkflows(PluginContext pluginContext, Core core)
        {
            var provider = new MockupServiceProviderAndFactory(core, pluginContext, new TracingService());
            var service  = provider.CreateOrganizationService(null, new MockupServiceSettings(true, true, MockupServiceSettings.Role.SDK));

            foreach (var waitInfo in waitingWorkflows.ToList())
            {
                waitingWorkflows.Remove(waitInfo);
                var variables     = waitInfo.VariablesInstance;
                var shadowService = core.ServiceFactory.CreateAdminOrganizationService(new MockupServiceSettings(false, true, MockupServiceSettings.Role.SDK));

                var primaryEntity = shadowService.Retrieve(waitInfo.PrimaryEntity.LogicalName, waitInfo.PrimaryEntity.Id, new ColumnSet(true));
                variables["InputEntities(\"primaryEntity\")"] = primaryEntity;
                waitInfo.Element.Execute(waitInfo.ElementIndex, ref variables, core.TimeOffset, service, provider, new TracingService(), false);
                if (variables["Wait"] != null)
                {
                    waitingWorkflows.Add(variables["Wait"] as WaitInfo);
                }
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Create an organization service for the systemuser with the given id
 /// </summary>
 /// <param name="userId"></param>
 /// <returns></returns>
 public IOrganizationService CreateOrganizationService(Guid userId)
 {
     return(ServiceFactory.CreateOrganizationService(userId));
 }