예제 #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.TimeOffset       = new TimeSpan();
            this.settings         = Settings;
            this.metadata         = metadata;
            baseCurrency          = metadata.BaseOrganization.GetAttributeValue <EntityReference>("basecurrencyid");
            baseCurrencyPrecision = metadata.BaseOrganization.GetAttributeValue <int>("pricingdecimalprecision");

            this.db             = new XrmDb(metadata.EntityMetadata, GetOnlineProxy());
            this.snapshots      = new Dictionary <string, Snapshot>();
            this.security       = new Security(this, metadata, SecurityRoles);
            this.ServiceFactory = new MockupServiceProviderAndFactory(this);

            //add the additional plugin settings to the meta data
            if (settings.IPluginMetadata != null)
            {
                metadata.Plugins.AddRange(Settings.IPluginMetadata);
            }

            this.pluginManager   = new PluginManager(Settings.BasePluginTypes, metadata.EntityMetadata, metadata.Plugins);
            this.workflowManager = new WorkflowManager(Settings.CodeActivityInstanceTypes, Settings.IncludeAllWorkflows,
                                                       Workflows, metadata.EntityMetadata);

            this.systemAttributeNames = new List <string>()
            {
                "createdon", "createdby", "modifiedon", "modifiedby"
            };

            this.RequestHandlers = GetRequestHandlers(db);
            InitializeDB();
            this.security.InitializeSecurityRoles(db);
        }
예제 #2
0
 /// <summary>
 /// Create a new XrmMockup instance
 /// </summary>
 /// <param name="settings"></param>
 /// <param name="metadata"></param>
 /// <param name="workflows"></param>
 /// <param name="securityRoles"></param>
 protected XrmMockupBase(XrmMockupSettings settings, MetadataSkeleton metadata, List <Entity> workflows, List <SecurityRole> securityRoles)
 {
     this.Core           = new Core(settings, metadata, workflows, securityRoles);
     this.ServiceFactory = new MockupServiceProviderAndFactory(this.Core);
     if (settings.EnableProxyTypes == true)
     {
         EnableProxyTypes();
     }
 }
예제 #3
0
        /// <summary>
        /// Gets an instance of XrmMockup2016
        /// </summary>
        /// <param name="Settings"></param>
        public static XrmMockup2016 GetInstance(XrmMockupSettings Settings)
        {
            if (instances.ContainsKey(Settings))
            {
                return(instances[Settings]);
            }
            var instance = new XrmMockup2016(Settings);

            instances[Settings] = instance;
            return(instance);
        }
예제 #4
0
        /// <summary>
        /// Gets an instance of XrmMockup2011
        /// </summary>
        /// <param name="Settings"></param>
        public static XrmMockup2016 GetInstance(XrmMockupSettings Settings)
        {
            if (instances.ContainsKey(Settings))
            {
                return(instances[Settings]);
            }
            var prefix   = "../../Metadata";
            var instance = new XrmMockup2016(Settings, Utility.GetMetadata(prefix), Utility.GetWorkflows(prefix), Utility.GetSecurityRoles(prefix));

            instances[Settings] = instance;
            return(instance);
        }
예제 #5
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);
        }
예제 #6
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.TimeOffset       = new TimeSpan();
            this.settings         = Settings;
            this.metadata         = metadata;
            baseCurrency          = metadata.BaseOrganization.GetAttributeValue <EntityReference>("basecurrencyid");
            baseCurrencyPrecision = metadata.BaseOrganization.GetAttributeValue <int>("pricingdecimalprecision");

            this.db             = new XrmDb(metadata.EntityMetadata, GetOnlineProxy());
            this.snapshots      = new Dictionary <string, Snapshot>();
            this.security       = new Security(this, metadata, SecurityRoles, this.db);
            this.ServiceFactory = new MockupServiceProviderAndFactory(this);

            //add the additional plugin settings to the meta data
            if (settings.IPluginMetadata != null)
            {
                metadata.Plugins.AddRange(Settings.IPluginMetadata);
            }

            this.pluginManager   = new PluginManager(Settings.BasePluginTypes, metadata.EntityMetadata, metadata.Plugins);
            this.workflowManager = new WorkflowManager(Settings.CodeActivityInstanceTypes, Settings.IncludeAllWorkflows, Workflows, metadata.EntityMetadata);

            this.systemAttributeNames = new List <string>()
            {
                "createdon", "createdby", "modifiedon", "modifiedby"
            };

            this.RequestHandlers = GetRequestHandlers(db);
            InitializeDB();
            this.security.InitializeSecurityRoles(db);

            //persist the access team templates as they livein the db as records.
            if (metadata.AccessTeamTemplates != null)
            {
                foreach (var att in metadata.AccessTeamTemplates)
                {
                    if (!db.HasRow(att.ToEntityReference()))
                    {
                        var create = new CreateRequest();
                        create.Target = att;
                        this.Execute(create, AdminUserRef);
                    }
                }
            }
        }
예제 #7
0
파일: Core.cs 프로젝트: BYCisner/XrmMockup
        /// <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.TimeOffset       = new TimeSpan();
            this.settings         = Settings;
            this.metadata         = metadata;
            baseCurrency          = metadata.BaseOrganization.GetAttributeValue <EntityReference>("basecurrencyid");
            baseCurrencyPrecision = metadata.BaseOrganization.GetAttributeValue <int>("pricingdecimalprecision");

            this.db              = new XrmDb(metadata.EntityMetadata, GetOnlineProxy());
            this.security        = new Security(this, metadata, SecurityRoles);
            this.ServiceFactory  = new MockupServiceProviderAndFactory(this);
            this.pluginManager   = new PluginManager(Settings.BasePluginTypes, metadata.EntityMetadata, metadata.Plugins);
            this.workflowManager = new WorkflowManager(Settings.CodeActivityInstanceTypes, Settings.IncludeAllWorkflows, Workflows, metadata.EntityMetadata);

            this.RequestHandlers = GetRequestHandlers(db);
            InitializeDB();
            this.security.InitializeSecurityRoles(db);
        }
예제 #8
0
        /// <summary>
        /// Create a new XrmMockup instance
        /// </summary>
        /// <param name="settings"></param>
        protected XrmMockupBase(XrmMockupSettings settings)
        {
            var metadataDirectory = "../../Metadata/";

            if (settings.MetadataDirectoryPath != null)
            {
                metadataDirectory = settings.MetadataDirectoryPath;
            }
            MetadataSkeleton    metadata      = Utility.GetMetadata(metadataDirectory);
            List <Entity>       workflows     = Utility.GetWorkflows(metadataDirectory);
            List <SecurityRole> securityRoles = Utility.GetSecurityRoles(metadataDirectory);

            this.Core           = new Core(settings, metadata, workflows, securityRoles);
            this.ServiceFactory = new MockupServiceProviderAndFactory(this.Core);
            if (settings.EnableProxyTypes == true)
            {
                EnableProxyTypes();
            }
        }
예제 #9
0
 private XrmMockup2011(XrmMockupSettings Settings, MetadataSkeleton Metadata, List <Entity> Workflows, List <SecurityRole> SecurityRoles)
     : base(Settings, Metadata, Workflows, SecurityRoles)
 {
 }
예제 #10
0
 private XrmMockup2011(XrmMockupSettings Settings)
     : base(Settings)
 {
 }
예제 #11
0
 private XrmMockup365(XrmMockupSettings Settings) :
     base(Settings)
 {
 }