void EnsureDefinitionReady() { if (this.extensions != null) { this.extensions.Initialize(); if (this.extensions.HasTrackingParticipant) { this.HasTrackingParticipant = true; if (this.trackingProvider == null) { this.trackingProvider = new TrackingProvider(this.WorkflowDefinition); } else { // TrackingProvider could be non-null if an earlier initialization attempt failed. // This happens when WorkflowApplication calls Abort after a load failure. In this // case we want to preserve any pending tracking records (e.g. DU failure). this.trackingProvider.ClearParticipants(); } foreach (TrackingParticipant trackingParticipant in GetExtensions <TrackingParticipant>()) { this.trackingProvider.AddParticipant(trackingParticipant); } } } else { // need to ensure the workflow has been validated since the host isn't using extensions (and so didn't register anything) ValidateWorkflow(null); } }
public void GetExport_LazyOrExportFactoryContractType_ReturnsExpected(Type type, Type[] expectedContractTypes) { var tracker = new TrackingProvider(); using (CompositionHost host = CompositionHost.CreateCompositionHost(tracker)) { Assert.False(host.TryGetExport(type, out object export)); Assert.Equal(expectedContractTypes, tracker.Contracts.Select(c => c.ContractType)); } }
public void GetExport_ExportFactoryContractWithMetadataConstraints_ReturnsExpected(Type contractType, string[] sharingBoundaryNames, Type[] expectedTypes) { var tracker = new TrackingProvider(); using (CompositionHost host = CompositionHost.CreateCompositionHost(tracker)) { var contract = new CompositionContract(contractType, "contractName", new Dictionary <string, object> { { "SharingBoundaryNames", sharingBoundaryNames } }); Assert.False(host.TryGetExport(contract, out object export)); Assert.Equal(expectedTypes, tracker.Contracts.Select(c => c.ContractType)); } }
public void GetExport_ImoportManyWithMetadataConstraints_ReturnsExpected(Type contractType, Type[] expectedTypes) { var tracker = new TrackingProvider(); using (CompositionHost host = CompositionHost.CreateCompositionHost(tracker)) { var contract = new CompositionContract(contractType, "contractName", new Dictionary <string, object> { { "IsImportMany", true } }); Assert.True(host.TryGetExport(contract, out object export)); Assert.Empty(Assert.IsAssignableFrom <Array>(export)); Assert.Equal(expectedTypes, tracker.Contracts.Select(c => c.ContractType)); } }
protected void PackagesGridView_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) { OrderPackage p = (OrderPackage)e.Row.DataItem; if (p != null) { string serviceCodeName = "Other"; int trackerCode = 0; int.TryParse(p.ShippingProviderId, out trackerCode); TrackingProvider trackProvider = TrackingProvider.None; switch (trackerCode) { case 1: serviceCodeName = "UPS"; trackProvider = TrackingProvider.UPS; break; case 2: serviceCodeName = "FedEx"; trackProvider = TrackingProvider.FedEx; break; case 3: serviceCodeName = "US Postal Service"; trackProvider = TrackingProvider.USPostal; break; } //IShippingService provider = MerchantTribe.Commerce.Shipping.AvailableServices.FindById(p.ShippingProviderId); //List<IServiceCode> codes = provider.ListAllServiceCodes(); //foreach (IServiceCode item in codes) { // if (item.Code == p.ShippingProviderServiceCode) { // serviceCodeName = item.DisplayName; // } //} Label ShippedByField = (Label)e.Row.FindControl("ShippedByField"); if (ShippedByField != null) { //if (provider != null) { // if (serviceCodeName != string.Empty) { ShippedByField.Text = serviceCodeName; // } // else { // ShippedByField.Text = provider.Name; // } //} } HyperLink TrackingLink = (HyperLink)e.Row.FindControl("TrackingLink"); if (TrackingLink != null) { TrackingLink.Text = p.TrackingNumber; //if (provider != null) { // if (o != null && o.Bvin != string.Empty) { // //if (provider.SupportsTracking()) { // // TrackingLink.Text = "Track Package"; // // TrackingLink.NavigateUrl = provider.GetTrackingUrl(p.TrackingNumber); // //} // } //} } TextBox TrackingTextBox = (TextBox)e.Row.FindControl("TrackingNumberTextBox"); if (TrackingTextBox != null) { TrackingTextBox.Text = p.TrackingNumber; } Label items = (Label)e.Row.FindControl("items"); if (items != null) { items.Text = string.Empty; foreach (OrderPackageItem pi in p.Items) { if (pi.Quantity > 0) { items.Text += pi.Quantity.ToString("#") + " - "; if (o != null) { foreach (LineItem li in o.Items) { if (li.Id == pi.LineItemId) { items.Text += li.ProductSku + ": " + li.ProductName + "<br />"; } } } } } } } }