public static StubIServiceProvider StubIServiceProvider(StubIOrganizationService service, StubIPluginExecutionContext pluginExecutionContext) { // ITracingService var tracingService = new StubITracingService { TraceStringObjectArray = (f, o) => { Debug.WriteLine(f, o); } }; // IOrganizationServiceFactory var factory = new StubIOrganizationServiceFactory { CreateOrganizationServiceNullableOfGuid = id => service }; // IServiceProvider var serviceProvider = new StubIServiceProvider { GetServiceType = t => { if (t == typeof(IPluginExecutionContext)) { return(pluginExecutionContext); } if (t == typeof(ITracingService)) { return(tracingService); } return(t == typeof(IOrganizationServiceFactory) ? factory : null); } }; return(serviceProvider); }
public void SetupServices() { ////Entity entity = new Entity(); ////entity.Attributes["ava_name"] = "CMSHostURL"; ////entity.Attributes["ava_value"] = "CMSHostURLValue"; ////EntityCollection entityCol = new EntityCollection(); ////entityCol.Entities.Add(entity); this.ServiceFake = new StubIOrganizationService(); ////{ //// RetrieveMultipleQueryBase = (queryBase) => entityCol, //// ExecuteOrganizationRequest = (request) => null ////}; IOrganizationServiceFactory factoryFake = new StubIOrganizationServiceFactory() { CreateOrganizationServiceNullableOfGuid = (userId) => this.ServiceFake }; ITracingService tracingServiceFake = new StubITracingService() { TraceStringObjectArray = (format, args) => { return; } }; this.ServiceProviderFake = new StubIServiceProvider() { GetServiceType = (type) => { if (type == typeof(IOrganizationService)) { return(ServiceFake); } if (type == typeof(IPluginExecutionContext)) { return(PluginContextFake); } if (type == typeof(ITracingService)) { return(tracingServiceFake); } if (type == typeof(IOrganizationServiceFactory)) { return(factoryFake); } if (type == typeof(ISystemNetWebClient)) { return(null); } return(null); } }; }
public static void PluginVariables(StubIServiceProvider serviceProvider, StubIPluginExecutionContext pluginContext, StubIOrganizationService organizationService, int stageNumber, string messageName, EntityImageCollection postImage) { var serviceFactory = new StubIOrganizationServiceFactory(); var tracingService = new StubITracingService(); if (serviceProvider != null) { serviceProvider.GetServiceType = type => { if (type == typeof(IPluginExecutionContext)) { return(pluginContext); } else if (type == typeof(ITracingService)) { return(tracingService); } else if (type == typeof(IOrganizationServiceFactory)) { return(serviceFactory); } return(null); }; } pluginContext.DepthGet = () => 1; pluginContext.UserIdGet = () => new Guid(); pluginContext.MessageNameGet = () => messageName; pluginContext.StageGet = () => stageNumber; pluginContext.InitiatingUserIdGet = () => Guid.Parse("F83DA6A6-748E-E412-9412-00155D614A70"); pluginContext.CorrelationIdGet = () => new Guid(); pluginContext.PrimaryEntityIdGet = () => { return(Guid.NewGuid()); }; pluginContext.PostEntityImagesGet = () => { return(postImage); }; pluginContext.PreEntityImagesGet = () => { return(postImage); }; serviceFactory.CreateOrganizationServiceNullableOfGuid = t1 => organizationService; tracingService.TraceStringObjectArray = Trace; }
/// <summary> /// Moles the plugin variables. /// </summary> /// <param name="serviceProvider">The service provider.</param> /// <param name="pluginContext">The plugin context.</param> /// <param name="organizationService">The organization service.</param> /// <param name="stageNumber">The stage number.</param> /// <param name="messageName">Name of the message.</param> public static void MolePluginVariables( StubIServiceProvider serviceProvider, StubIPluginExecutionContext pluginContext, StubIOrganizationService organizationService, int stageNumber, string messageName) { var serviceFactory = new StubIOrganizationServiceFactory(); var tracingService = new StubITracingService(); if (serviceProvider != null) { serviceProvider.GetServiceType = type => { if (type == typeof(IPluginExecutionContext)) { return(pluginContext); } else if (type == typeof(ITracingService)) { return(tracingService); } else if (type == typeof(IOrganizationServiceFactory)) { return(serviceFactory); } return(null); }; } pluginContext.DepthGet = () => 1; pluginContext.UserIdGet = () => new Guid(); pluginContext.MessageNameGet = () => messageName; pluginContext.StageGet = () => stageNumber; pluginContext.InitiatingUserIdGet = () => new Guid(); pluginContext.CorrelationIdGet = () => new Guid(); pluginContext.PrimaryEntityIdGet = Guid.NewGuid; pluginContext.IsInTransactionGet = () => true; serviceFactory.CreateOrganizationServiceNullableOfGuid = t1 => organizationService; tracingService.TraceStringObjectArray = Trace; }
public void WhenChangeOrderIsCreatedFromInstalledBaseLineAndCustomerDetailsArePresentThenACommercialOrderIsCreated() { var postChangeOrderDetailsCreate = new PostChangeOrderDetailsCreate(); var serviceProvider = new StubIServiceProvider(); var tracingService = new StubITracingService(); var pluginContext = new StubIPluginExecutionContext(); var organizationService = new StubIOrganizationService(); PluginTestsHelper.MolePluginVariables(serviceProvider, pluginContext, organizationService, 40, "Create"); var entityAttributes = new Dictionary <string, object>(); Entity changeOrderDetailsEntity = new Entity(); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.IsCreatedFromInstalledBaseLine, true); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.SelectedInstalledBaseLineGuids, "\"B344FF0E - 2567 - E711 - 81A5 - 000D3A275BAD\",\"BB5F3570 - 1466 - E711 - 81A3 - 000D3A275BAD\""); pluginContext.InputParametersGet = delegate { ParameterCollection parameterCollection = new ParameterCollection(); parameterCollection.Add("Target", changeOrderDetailsEntity); return(parameterCollection); }; // Installed Base Line and Account organizationService.RetrieveStringGuidColumnSet = (entityName, recordId, columns) => { if (string.Compare(entityName, InstalledBaseLineEntity.EntitySchemaName, StringComparison.CurrentCultureIgnoreCase) == 0) { var installedBaseLineEntity = new Entity(); installedBaseLineEntity.Id = Guid.NewGuid(); installedBaseLineEntity.Attributes.Add(InstalledBaseLineEntity.BillingModel, new OptionSetValue(4256364)); installedBaseLineEntity.Attributes.Add(InstalledBaseLineEntity.PriceList, new EntityReference("pricelevel", Guid.NewGuid())); return(installedBaseLineEntity); } else if (string.Compare(entityName, InstalledBaseEntity.EntitySchemaName, StringComparison.CurrentCultureIgnoreCase) == 0) { var installedBaseEntity = new Entity(); installedBaseEntity.Id = Guid.NewGuid(); installedBaseEntity.Attributes.Add(InstalledBaseEntity.ContractId, "ContractABC"); installedBaseEntity.Attributes.Add(InstalledBaseEntity.Customer, new EntityReference(AccountEntity.EntitySchemaName, Guid.NewGuid())); installedBaseEntity.Attributes.Add(InstalledBaseEntity.Currency, new EntityReference("transactioncurrencyid", Guid.NewGuid())); return(installedBaseEntity); } else if (string.Compare(entityName, AccountEntity.EntitySchemaName, StringComparison.CurrentCultureIgnoreCase) == 0) { var accountEntity = new Entity(); accountEntity.Id = Guid.NewGuid(); accountEntity.Attributes.Add(AccountEntity.AccountManager, new EntityReference("systemuser", Guid.NewGuid())); accountEntity.Attributes.Add(AccountEntity.TechnicalContact, new EntityReference("contact", Guid.NewGuid())); accountEntity.Attributes.Add(AccountEntity.BillingContact, new EntityReference("contact", Guid.NewGuid())); return(accountEntity); } return(null); }; organizationService.CreateEntity = (e) => { return(Guid.NewGuid()); }; var selectedInstalledBaseLineEntities = TestDataCreator.GetSelectedInstalledBaseLineRecords(5); var commercialOrderRecord = PostChangeOrderDetailsCreate.GetDetailsToCreateAndCreateCommercialOrderRecordFromDetailsInInstalledBaseAndCustomer(organizationService, tracingService, selectedInstalledBaseLineEntities, changeOrderDetailsEntity); Assert.IsNotNull(commercialOrderRecord); Assert.IsTrue(commercialOrderRecord.Id != Guid.Empty); }
public void WhenAllChangeOrderDetailsCreationDetailsArePresentChangeOrderDetailsAreCreated() { var postChangeOrderDetailsCreate = new PostChangeOrderDetailsCreate(); var serviceProvider = new StubIServiceProvider(); var tracingService = new StubITracingService(); var pluginContext = new StubIPluginExecutionContext(); var organizationService = new StubIOrganizationService(); PluginTestsHelper.MolePluginVariables(serviceProvider, pluginContext, organizationService, 40, "Create"); var entityAttributes = new Dictionary <string, object>(); Entity changeOrderDetailsEntity = new Entity(); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.IsCreatedFromInstalledBaseLine, true); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.SelectedInstalledBaseLineGuids, "\"B344FF0E - 2567 - E711 - 81A5 - 000D3A275BAD\",\"BB5F3570 - 1466 - E711 - 81A3 - 000D3A275BAD\""); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.Operation, new OptionSetValue(10000)); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.OrderType, new OptionSetValue(10000)); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.Product, new EntityReference("product", Guid.NewGuid())); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.OldCustomer, new EntityReference("contact", Guid.NewGuid())); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.OldBranch, new EntityReference("account", Guid.NewGuid())); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.NewBranch, new EntityReference("account", Guid.NewGuid())); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.ScheduleTerminationDuration, 6453); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.ScheduleUnits, false); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.SalesTerminationReason, new OptionSetValue(10000)); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.BillingTerminationReason, new OptionSetValue(10001)); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.HardwareTerminationReason, new OptionSetValue(10002)); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.AddOnTerminationReason, new OptionSetValue(10003)); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.SalesSuspensionReason, new OptionSetValue(10004)); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.BillingSuspensionReason, new OptionSetValue(10005)); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.SalesReactivationReason, new OptionSetValue(10004)); changeOrderDetailsEntity.Attributes.Add(ChangeOrderDetailsEntity.BillingReactivationReason, new OptionSetValue(10002)); pluginContext.InputParametersGet = delegate { ParameterCollection parameterCollection = new ParameterCollection(); parameterCollection.Add("Target", changeOrderDetailsEntity); return(parameterCollection); }; // Installed Base Line and Account organizationService.RetrieveStringGuidColumnSet = (entityName, recordId, columns) => { if (string.Compare(entityName, InstalledBaseLineEntity.EntitySchemaName, StringComparison.CurrentCultureIgnoreCase) == 0) { var installedBaseLineEntity = new Entity(); installedBaseLineEntity.Id = Guid.NewGuid(); installedBaseLineEntity.Attributes.Add(InstalledBaseLineEntity.BillingModel, new OptionSetValue(4256364)); installedBaseLineEntity.Attributes.Add(InstalledBaseLineEntity.PriceList, new EntityReference("pricelevel", Guid.NewGuid())); return(installedBaseLineEntity); } else if (string.Compare(entityName, InstalledBaseEntity.EntitySchemaName, StringComparison.CurrentCultureIgnoreCase) == 0) { var installedBaseEntity = new Entity(); installedBaseEntity.Id = Guid.NewGuid(); installedBaseEntity.Attributes.Add(InstalledBaseEntity.ContractId, "ContractABC"); installedBaseEntity.Attributes.Add(InstalledBaseEntity.Customer, new EntityReference(AccountEntity.EntitySchemaName, Guid.NewGuid())); installedBaseEntity.Attributes.Add(InstalledBaseEntity.Currency, new EntityReference("transactioncurrencyid", Guid.NewGuid())); return(installedBaseEntity); } else if (string.Compare(entityName, AccountEntity.EntitySchemaName, StringComparison.CurrentCultureIgnoreCase) == 0) { var accountEntity = new Entity(); accountEntity.Id = Guid.NewGuid(); accountEntity.Attributes.Add(AccountEntity.AccountManager, new EntityReference("systemuser", Guid.NewGuid())); accountEntity.Attributes.Add(AccountEntity.TechnicalContact, new EntityReference("contact", Guid.NewGuid())); accountEntity.Attributes.Add(AccountEntity.BillingContact, new EntityReference("contact", Guid.NewGuid())); return(accountEntity); } return(null); }; organizationService.CreateEntity = (e) => { return(Guid.NewGuid()); }; Entity commercialOrderEntity = new Entity(); commercialOrderEntity.Id = Guid.NewGuid(); commercialOrderEntity.Attributes.Add(CommercialOrderEntity.Customer, new EntityReference("account", Guid.NewGuid())); commercialOrderEntity.Attributes.Add(CommercialOrderEntity.PriceList, new EntityReference("pricelevel", Guid.NewGuid())); commercialOrderEntity.Attributes.Add(CommercialOrderEntity.Currency, new EntityReference("transactioncurrencyid", Guid.NewGuid())); commercialOrderEntity.Attributes.Add(CommercialOrderEntity.BillingModel, new OptionSetValue(7464)); var selectedInstalledBaseLinesCount = 5; var selectedInstalledBaseLineEntities = TestDataCreator.GetSelectedInstalledBaseLineRecords(selectedInstalledBaseLinesCount); var newlyCreatedChangeOrderRecordGuids = PostChangeOrderDetailsCreate.CreateChangeOrderDetailsFromAvailableDetails(organizationService, tracingService, new Models.ChangeOrderDetailsCreationDetails() { NewlyCreatedChangeOrderDetailsRecord = changeOrderDetailsEntity, CommercialOrderRecord = commercialOrderEntity, SelectedInstalledBaseLineRecords = selectedInstalledBaseLineEntities }); Assert.AreEqual(selectedInstalledBaseLinesCount, newlyCreatedChangeOrderRecordGuids.Count); }
public PipelineBase(IOrganizationService service = null) { _shimContext = ShimsContext.Create(); { if (service == null) { FakeService = new FakeOrganzationService(); Service = FakeService; } else { Service = service; } PreImages = new EntityImageCollection(); PostImages = new EntityImageCollection(); InputParameters = new ParameterCollection(); OutputParameters = new ParameterCollection(); PluginExecutionContext = new StubIPluginExecutionContext(); PluginExecutionContext.PreEntityImagesGet = () => { return(PreImages); }; PluginExecutionContext.PostEntityImagesGet = () => { return(PreImages); }; PluginExecutionContext.InputParametersGet = () => { return(InputParameters); }; PluginExecutionContext.OutputParametersGet = () => { return(OutputParameters); }; // ITracingService TracingService = new StubITracingService(); TracingService.TraceStringObjectArray = (format, values) => { if (values != null && values.Length > 0) { Trace.WriteLine(string.Format(format, values)); } else { Trace.WriteLine(format); } }; // IOrganizationServiceFactory Factory = new StubIOrganizationServiceFactory { CreateOrganizationServiceNullableOfGuid = id => { return(Service); } }; // IServiceProvider ServiceProvider = new System.Fakes.StubIServiceProvider { GetServiceType = type => { if (type == typeof(IPluginExecutionContext)) { return(PluginExecutionContext); } else if (type == typeof(ITracingService)) { return(TracingService); } else if (type == typeof(IOrganizationServiceFactory)) { return(Factory); } return(null); } }; } }
public void ServiceRequestStatusChangedToCancelledTestMethod() { using (ShimsContext.Create()) { ServiceRequestStatusChanged serviceRequestStatus = new StubServiceRequestStatusChanged(); var serviceProvider = new StubIServiceProvider(); var pluginContext = new StubIPluginExecutionContext(); var organizationService = new StubIOrganizationService(); var tracingService = new StubITracingService(); pluginContext.PrimaryEntityNameGet = () => "incident"; pluginContext.PrimaryEntityIdGet = () => new Guid("54D94FC2-52AD-E511-8158-1458D04DB4D1"); ParameterCollection paramCollection = new ParameterCollection(); Entity targetIncident = new Entity("incident"); targetIncident.Id = new Guid("54D94FC2-52AD-E511-8158-1458D04DB4D1"); targetIncident.Attributes["statuscode"] = new OptionSetValue(6); targetIncident.Attributes["smp_cancellingfromwo"] = false; paramCollection.Add("Target", targetIncident); pluginContext.InputParametersGet = () => paramCollection; PluginVariables(serviceProvider, pluginContext, organizationService, 40, "Update"); organizationService.RetrieveMultipleQueryBase = (query) => { EntityCollection collection = new EntityCollection(); string entityName = string.Empty; if (query.GetType().Name.Equals("FetchExpression")) { if (((FetchExpression)query).Query.Contains("<entity name='ava_keyvaluepair'>")) { entityName = "ava_keyvaluepair"; } } else if (query.GetType().Name.Equals("QueryExpression")) { entityName = ((QueryExpression)query).EntityName; } else { entityName = ((QueryByAttribute)query).EntityName; } if (entityName == "msdyn_workorder") { Entity workorder = new Entity("msdyn_workorder"); workorder.Id = new Guid("884A078B-0467-E711-80F5-3863BB3C0660"); workorder.Attributes["msdyn_servicerequest"] = new Guid("54D94FC2-52AD-E511-8158-1458D04DB4D1"); workorder.Attributes["msdyn_systemstatus"] = new OptionSetValue(690970001); collection.Entities.Add(workorder); } if (entityName == "bookableresourcebooking") { Entity bookings = new Entity("bookableresourcebooking"); bookings.Id = new Guid("884A078B-0467-E711-80F5-3863BB3C0660"); bookings.Attributes["msdyn_workorder"] = new Guid("54D94FC2-52AD-E511-8158-1458D04DB4D1"); bookings.Attributes["statecode"] = new OptionSetValue(1); collection.Entities.Add(bookings); } if (entityName == "bookingstatus") { Entity bookingStatus = new Entity("bookingstatus"); bookingStatus.Id = new Guid("884A078B-0467-E711-80F5-3863BB3C0660"); ////bookingStatus.Attributes["msdyn_workorder"] = new Guid("54D94FC2-52AD-E511-8158-1458D04DB4D1"); bookingStatus.Attributes["status"] = new OptionSetValue(3); collection.Entities.Add(bookingStatus); } return(collection); }; organizationService.RetrieveStringGuidColumnSet = delegate(string entity, Guid guid, ColumnSet secondaryUserColumnSet) { if (entity == "incident") { Entity incident = new Entity("incident"); incident.Id = new Guid("54D94FC2-52AD-E511-8158-1458D04DB4D1"); incident.Attributes["smp_problembuilding"] = new EntityReference("smp_building", new Guid("884A078B-0467-E711-80F5-3863BB3C1560")) { Name = "building" }; incident.Attributes["new_problemroomnumber"] = new EntityReference("smp_room", new Guid("884A078B-0467-E711-80F5-3863BB3C0560")) { Name = "room" }; incident.Attributes["caseorigincode"] = new OptionSetValue(915240000); incident.Attributes["smp_duedate"] = new DateTime(2018, 1, 8); incident.Attributes["smp_duedatebybuildingtimezone"] = "2018-01-08"; incident.Attributes["smp_occureddatetimebybuildingtimezone"] = "2018-01-08"; incident.Attributes["smp_submitteddatetimebybuildingtimezone"] = "2018-01-08"; incident.Attributes["smp_createddatetimebybuildingtimezone"] = "2018-01-08"; incident.Attributes["smp_priorityid"] = new EntityReference("smp_priority", new Guid("884A078B-0466-E711-80F5-3863BB3C0560")) { Name = "priority" }; incident.Attributes["smp_problemclassid"] = new EntityReference("smp_problemclass", new Guid("884A078B-0468-E711-80F5-3863BB3C0560")) { Name = "problemClass" }; incident.Attributes["smp_problemtypeid"] = new EntityReference("smp_problemtype", new Guid("884A078B-0469-E711-80F5-3863BB3C0560")) { Name = "problemType" }; incident.Attributes["smp_problemroomtype"] = new EntityReference("smp_roomtype", new Guid("884A078B-0469-E111-80F5-3863BB3C0560")) { Name = "problemType" }; incident.Attributes["smp_cc"] = new EntityReference("contact", new Guid("884A078B-0469-E211-80F5-3863BB3C0560")) { Name = "problemType" }; incident.Attributes["smp_contact"] = new EntityReference("contact", new Guid("884A078B-0469-E311-80F5-3863BB3C0560")) { Name = "problemType" }; incident.Attributes["smp_requestorid"] = new EntityReference("contact", new Guid("884A078B-0469-E411-80F5-3863BB3C0560")) { Name = "Contact" }; incident.Attributes["smp_cancellingfromwo"] = false; return(incident); } return(null); }; serviceRequestStatus.Execute(serviceProvider); } }
public void CreateInspectionsTestMethod() { string resultEntityName = string.Empty; using (ShimsContext.Create()) { CreateInspections createInspections = new StubCreateInspections(); var serviceProvider = new StubIServiceProvider(); var pluginContext = new StubIPluginExecutionContext(); var organizationService = new StubIOrganizationService(); pluginContext.PrimaryEntityNameGet = () => "msdyn_workorder"; pluginContext.PrimaryEntityIdGet = () => new Guid("54D94FC2-52AD-E511-8158-1458D04DB4D1"); ParameterCollection paramCollection = new ParameterCollection(); Entity workOrder = new Entity("msdyn_workorder"); workOrder.Attributes["msdyn_primaryincidenttype"] = new EntityReference("msdyn_primaryincidenttype", new Guid("884A078B-0467-E711-80F5-3863BB3C0660")); paramCollection.Add("Target", workOrder); pluginContext.InputParametersGet = () => paramCollection; PluginVariables(serviceProvider, pluginContext, organizationService, 40, "Create"); organizationService.RetrieveMultipleQueryBase = (query) => { EntityCollection collection = new EntityCollection(); string entityName = string.Empty; if (query.GetType().Name.Equals("FetchExpression")) { if (((Microsoft.Xrm.Sdk.Query.FetchExpression)query).Query.Contains("<entity name='ava_keyvaluepair'>")) { entityName = "ava_keyvaluepair"; } } else if (query.GetType().Name.Equals("QueryExpression")) { entityName = ((QueryExpression)query).EntityName; } else { entityName = ((QueryByAttribute)query).EntityName; } if (entityName == "msdyn_customerasset") { Entity question = new Entity { LogicalName = "msdyn_customerasset", Id = new Guid("884A078c-0467-E711-80E5-3863BB3C0660") }; //// question.Attributes["smp_questiontext"] = "unittest1"; collection.Entities.Add(question); } return(collection); }; organizationService.RetrieveStringGuidColumnSet = delegate(string entity, Guid guid, ColumnSet secondaryUserColumnSet) { if (entity == "msdyn_workorder") { Entity workorder = new Entity { LogicalName = "msdyn_workorder", Id = new Guid("884A078B-0467-E711-80F5-3863BB3C0660") }; workorder.Attributes["msdyn_agreement"] = new EntityReference("msdyn_agreement", new Guid("884A078B-0467-E711-80F5-3863BB3C0660")); workorder.Attributes["msdyn_primaryincidenttype"] = new EntityReference("msdyn_primaryincidenttype", new Guid("884A078B-0467-E711-80F5-3863BB3C0660")); workorder.Attributes["msdyn_customerasset"] = new EntityReference("msdyn_customerasset", new Guid("884A078c-0467-E711-80E5-3863BB3C0660")); workorder.Attributes["ownerid"] = new EntityReference("team", new Guid("884A078c-0467-E711-80E5-3863BB3C0661")); workorder.Attributes["smp_comment"] = "2018-01-08"; return(workorder); } if (entity == "msdyn_incidenttype") { Entity workorder = new Entity { LogicalName = "msdyn_incidenttype", Id = new Guid("884A078B-0467-E711-80F5-3863BB3C0660") }; workorder.Attributes["smp_inspectiontypeid"] = new EntityReference("smp_inspectiontypeid", new Guid("884A078B-0467-E711-80F5-3863BB3C0660")); workorder.Attributes["smp_building"] = new EntityReference(" smp_building", new Guid("884A078B-0467-E711-80E5-3863BB3C0660")); workorder.Attributes["smp_comment"] = "2018-01-08"; return(workorder); } if (entity == "smp_inspectionn") { Entity inspection = new Entity { LogicalName = "smp_inspection", Id = new Guid("884A078B-0466-E711-80F5-3863BB3C0560") }; inspection.Attributes["smp_questiontext"] = "unittest1"; return(inspection); } return(null); }; var tracingService = new StubITracingService(); Entity workorder1 = new Entity { LogicalName = "msdyn_workorder", Id = new Guid("884A078B-0467-E711-80F5-3863BB3C0660") }; workorder1.Attributes["msdyn_agreement"] = new EntityReference("msdyn_agreement", new Guid("884A078B-0467-E711-80F5-3863BB3C0660")); workorder1.Attributes["msdyn_primaryincidenttype"] = new EntityReference("msdyn_primaryincidenttype", new Guid("884A078B-0467-E711-80F5-3863BB3C0660")); workorder1.Attributes["msdyn_customerasset"] = new EntityReference("msdyn_customerasset", new Guid("884A078c-0467-E711-80E5-3863BB3C0660")); workorder1.Attributes["ownerid"] = new EntityReference("team", new Guid("884A078c-0467-E711-80E5-3863BB3C0661")); workorder1.Attributes["smp_comment"] = "2018-01-08"; createInspections.CreateInspectionsforWorkOrders(organizationService, workorder1, tracingService); } }
public void CreateDynNotes() { var workflowUserId = Guid.NewGuid(); var workflowCorrelationId = Guid.NewGuid(); var workflowInitiatingUserId = Guid.NewGuid(); var serviceProvider = new StubIServiceProvider(); var pluginContext = new StubIPluginExecutionContext(); this.Service = new StubIOrganizationService(); this.IWorKFlowContext = new StubIWorkflowContext(); this.Factory = new StubIOrganizationServiceFactory(); this.TracingService = new StubITracingService(); this.IWorKFlowContext.UserIdGet = () => { return(workflowUserId); }; this.Factory.CreateOrganizationServiceNullableOfGuid = id => { return(Service); }; PostCreateSRCreateDynNotes updateDeviceRequestEmployeeDetails = new PostCreateSRCreateDynNotes(); var invoker = new WorkflowInvoker(updateDeviceRequestEmployeeDetails); invoker.Extensions.Add <ITracingService>(() => this.TracingService); invoker.Extensions.Add <IWorkflowContext>(() => this.IWorKFlowContext); invoker.Extensions.Add <IOrganizationServiceFactory>(() => this.Factory); pluginContext.PrimaryEntityNameGet = () => "incident"; pluginContext.PrimaryEntityIdGet = () => new Guid("884A078B-0467-E711-80F5-3863BB3C0660"); ParameterCollection paramCollection = new ParameterCollection(); ParameterCollection paramCollectionPostImage = new ParameterCollection(); Entity incident = new Entity("incident"); incident.Id = new Guid("884A078B-0467-E711-80F5-3863BB3C0660"); paramCollection.Add("Target", incident); pluginContext.InputParametersGet = () => paramCollection; EntityImageCollection postImage = new EntityImageCollection { (new KeyValuePair <string, Entity>("PostImage", incident)) }; Helper.Helper.PluginVariables(serviceProvider, pluginContext, this.Service, 40, "Create", postImage); this.Service.RetrieveMultipleQueryBase = (query) => { EntityCollection collection = new EntityCollection(); string entityName = string.Empty; if (query.GetType().Name.Equals("QueryExpression")) { entityName = ((QueryExpression)query).EntityName; } else { entityName = ((QueryByAttribute)query).EntityName; } if (entityName == "smp_problemtypedescription") { Entity configuration = new Entity("smp_configuration"); configuration.Id = new Guid("884A078B-0466-E712-80F5-3863BB3C0560"); configuration["smp_problemtypedescriptionid"] = new Guid("884A078B-0466-E712-80F5-3863BB3C0560"); configuration["smp_problemtypedescriptionname"] = "Sample Name"; collection.Entities.Add(configuration); } return(collection); }; this.Service.RetrieveStringGuidColumnSet = delegate(string entity, Guid guid, ColumnSet secondaryUserColumnSet) { if (entity == "incident") { Entity incidents = new Entity(entity); incidents["caseorigincode"] = new OptionSetValue(1); incidents["smp_createdfrom"] = new OptionSetValue(1); incidents["smp_problembuilding"] = new EntityReference(string.Empty, Guid.NewGuid()); incidents["smp_problemclassid"] = new EntityReference(string.Empty, Guid.NewGuid()); incidents["smp_problemtypeid"] = new EntityReference(string.Empty, Guid.NewGuid()); incidents.Attributes["statecode"] = new OptionSetValue(1); incidents.Id = new Guid("884A078B-0467-E711-80F5-3863BB3C0660"); return(incidents); } return(null); }; IDictionary <string, object> inputs = new Dictionary <string, object>(); EntityReference newIncident = new EntityReference(incident.LogicalName, incident.Id); inputs["ServiceRequest"] = newIncident; var output = invoker.Invoke(inputs); }