Ejemplo n.º 1
0
 void Container12()
 {
     //ReceiveActivity.ReceiveActivity(String)
     //<snippet12>
     ReceiveActivity receiveActivity1 = new ReceiveActivity("receiveActivity1");
     //</snippet12>
 }
Ejemplo n.º 2
0
        //</snippet7>

        void Container11()
        {
            //ReceiveActivity.ReceiveActivity()
            //<snippet11>
            ReceiveActivity receiveActivity1 = new ReceiveActivity();
            //</snippet11>
        }
Ejemplo n.º 3
0
        void Container4()
        {
            //ReceiveActivity.ServiceOperationInfo
            //<snippet4>
            ReceiveActivity          receiveQuoteFromShipper1  = new ReceiveActivity();
            CodeActivity             shipper1ShippingQuote     = new CodeActivity();
            ContextToken             contextToken1             = new ContextToken();
            ActivityBind             activityBind1             = new ActivityBind();
            WorkflowParameterBinding workflowParameterBinding1 = new WorkflowParameterBinding();
            TypedOperationInfo       typedOperationInfo1       = new TypedOperationInfo();

            receiveQuoteFromShipper1.Activities.Add(shipper1ShippingQuote);
            contextToken1.Name = "Shipper1Context";
            contextToken1.OwnerActivityName       = "GetShippingQuotes";
            receiveQuoteFromShipper1.ContextToken = contextToken1;
            receiveQuoteFromShipper1.Name         = "receiveQuoteFromShipper1";
            activityBind1.Name = "SupplierWorkflow";
            activityBind1.Path = "quoteShipper1";
            workflowParameterBinding1.ParameterName = "quote";
            workflowParameterBinding1.SetBinding(WorkflowParameterBinding.ValueProperty, ((ActivityBind)(activityBind1)));
            receiveQuoteFromShipper1.ParameterBindings.Add(workflowParameterBinding1);
            typedOperationInfo1.ContractType = typeof(IShippingQuote);
            typedOperationInfo1.Name         = "ShippingQuote";
            receiveQuoteFromShipper1.ServiceOperationInfo = typedOperationInfo1;
            //</snippet4>
        }
Ejemplo n.º 4
0
 void Container13()
 {
     //ReceiveActivity.GetContext(Activity, ContextToken)
     //<snippet13>
     ReceiveActivity receiveActivity1 = new ReceiveActivity();
     Dictionary <XmlQualifiedName, String> context = (Dictionary <XmlQualifiedName, String>)ReceiveActivity.GetContext(receiveActivity1, receiveActivity1.ContextToken);
     //</snippet13>
 }
Ejemplo n.º 5
0
 void Container5()
 {
     //ReceiveActivity.GetWorkflowServiceAttributes
     Activity rootActivity = new Activity();
     //<snippet5>
     WorkflowServiceAttributes serviceAttributes = (WorkflowServiceAttributes)ReceiveActivity.GetWorkflowServiceAttributes(rootActivity);
     //</snippet5>
 }
Ejemplo n.º 6
0
 void Container16()
 {
     //ReceiveActivity.GetRootContext
     //<snippet16>
     ReceiveActivity receiveActivity1 = new ReceiveActivity();
     Dictionary <XmlQualifiedName, String> context =
         (Dictionary <XmlQualifiedName, String>)ReceiveActivity.GetRootContext(receiveActivity1);
     //</snippet16>
 }
Ejemplo n.º 7
0
        protected override void PreFilterProperties(IDictionary properties)
        {
            base.PreFilterProperties(properties);
            ReceiveActivity receiveActivity = this.Activity as ReceiveActivity;

            if (receiveActivity != null)
            {
                receiveActivity.GetParameterPropertyDescriptors(properties);
            }
        }
Ejemplo n.º 8
0
        void Container2()
        {
            //ReceiveActivity.FaultMessage
            //<snippet2>
            ReceiveActivity receiveQuote;

            receiveQuote = new ReceiveActivity();

            FaultException message = receiveQuote.FaultMessage;
            //</snippet2>
        }
Ejemplo n.º 9
0
        //14 was a discontinued method

        void Container15()
        {
            //ReceiveActivity.GetContext(Activity, String, String)
            //<snippet15>
            ReceiveActivity receiveActivity1 = new ReceiveActivity();
            Dictionary <XmlQualifiedName, String> context =
                (Dictionary <XmlQualifiedName, String>)ReceiveActivity.GetContext(
                    receiveActivity1,
                    "ContextToken1",
                    "ReceiveActivity1");
            //</snippet15>
        }
Ejemplo n.º 10
0
        void Container6()
        {
            //ReceiveActivity.SetWorkflowServiceAttributes
            ReceiveActivity receiveActivity1 = new ReceiveActivity();
            //<snippet6>
            WorkflowServiceAttributes attributes = new WorkflowServiceAttributes();

            attributes.ConfigurationName = "ServiceConfig";
            attributes.IncludeExceptionDetailInFaults = true;
            attributes.AddressFilterMode = AddressFilterMode.Exact;

            ReceiveActivity.SetWorkflowServiceAttributes(receiveActivity1, attributes);
            //</snippet6>
        }
Ejemplo n.º 11
0
        protected override void OnActivityChanged(ActivityChangedEventArgs e)
        {
            base.OnActivityChanged(e);
            if (e.Member != null && e.Member.Name == ReceiveActivity.ServiceOperationInfoProperty.Name)
            {
                ReceiveActivity receiveActivity = e.Activity as ReceiveActivity;
                if (receiveActivity != null)
                {
                    receiveActivity.ParameterBindings.Clear();
                }

                TypeDescriptor.Refresh(e.Activity);
                PerformLayout();
            }
        }
        public static Type GetContractType(OperationInfo operationInfo, ReceiveActivity contextActivity)
        {
            if (operationInfo == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("operationInfo");
            }

            if (contextActivity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("contextActivity");
            }

            if (string.IsNullOrEmpty(operationInfo.ContractName))
            {
                return null;
            }

            Activity rootActivity = contextActivity.RootActivity;
            Dictionary<string, ContractType> contractTypes =
                rootActivity.GetValue(DynamicContractTypeBuilder.DynamicContractTypesProperty) as Dictionary<string, ContractType>;

            if (contractTypes == null)
            {
                Activity definition = rootActivity.GetValue(Activity.WorkflowDefinitionProperty) as Activity;
                if (definition != null)
                {
                    contractTypes = definition.GetValue(DynamicContractTypeBuilder.DynamicContractTypesProperty) as Dictionary<string, ContractType>;
                }

                if (contractTypes != null)
                {
                    rootActivity.SetValue(DynamicContractTypeBuilder.DynamicContractTypesProperty, contractTypes);
                }
            }

            if (contractTypes == null)
            {
                contractTypes = BuildContractTypes(rootActivity);
                rootActivity.SetValue(DynamicContractTypeBuilder.DynamicContractTypesProperty, contractTypes);
            }

            if (contractTypes.ContainsKey(operationInfo.ContractName))
            {
                return contractTypes[operationInfo.ContractName];
            }

            return null;
        }
        public static Type GetContractType(OperationInfo operationInfo, ReceiveActivity contextActivity)
        {
            if (operationInfo == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("operationInfo");
            }

            if (contextActivity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("contextActivity");
            }

            if (string.IsNullOrEmpty(operationInfo.ContractName))
            {
                return(null);
            }

            Activity rootActivity = contextActivity.RootActivity;
            Dictionary <string, ContractType> contractTypes =
                rootActivity.GetValue(DynamicContractTypeBuilder.DynamicContractTypesProperty) as Dictionary <string, ContractType>;

            if (contractTypes == null)
            {
                Activity definition = rootActivity.GetValue(Activity.WorkflowDefinitionProperty) as Activity;
                if (definition != null)
                {
                    contractTypes = definition.GetValue(DynamicContractTypeBuilder.DynamicContractTypesProperty) as Dictionary <string, ContractType>;
                }

                if (contractTypes != null)
                {
                    rootActivity.SetValue(DynamicContractTypeBuilder.DynamicContractTypesProperty, contractTypes);
                }
            }

            if (contractTypes == null)
            {
                contractTypes = BuildContractTypes(rootActivity);
                rootActivity.SetValue(DynamicContractTypeBuilder.DynamicContractTypesProperty, contractTypes);
            }

            if (contractTypes.ContainsKey(operationInfo.ContractName))
            {
                return(contractTypes[operationInfo.ContractName]);
            }

            return(null);
        }
Ejemplo n.º 14
0
        void container4()
        {
            //OperationInfo.Parameters
            //<snippet4>
            ReceiveActivity receive = new ReceiveActivity();
            OperationInfo   info    = new OperationInfo();

            info.Name = "Echo";
            OperationParameterInfo parameterInfo = new OperationParameterInfo();

            parameterInfo.Attributes    = ((System.Reflection.ParameterAttributes)((System.Reflection.ParameterAttributes.Out | System.Reflection.ParameterAttributes.Retval)));
            parameterInfo.Name          = "(ReturnValue)";
            parameterInfo.ParameterType = typeof(string);
            parameterInfo.Position      = -1;
            info.Parameters.Add(parameterInfo);
            receive.ServiceOperationInfo = info;
            //</snippet4>
        }
Ejemplo n.º 15
0
        internal static void Register(ReceiveActivity activity, Guid workflowId)
        {
            if (activity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("activity");
            }

            ContextToken contextToken = activity.ContextToken;

            if (contextToken == null)
            {
                RegisterRootReceiveContext(activity, workflowId);
            }
            else if (contextToken.IsRootContext)
            {
                RegisterRootReceiveContext(activity, workflowId);
            }
            else
            {
                RegisterReceiveContext(activity, workflowId, contextToken.Name, contextToken.OwnerActivityName);
            }
        }
        static Dictionary <string, ContractType> BuildContractTypes(Activity contextActivity)
        {
            if (contextActivity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("contextActivity");
            }

            Dictionary <string, ContractType> types = new Dictionary <string, ContractType>();

            Walker walker = new Walker(true);

            walker.FoundActivity += delegate(Walker w, WalkerEventArgs args)
            {
                ReceiveActivity currentActivity = args.CurrentActivity as ReceiveActivity;
                if (currentActivity == null)
                {
                    return;
                }
                OperationInfo operationInfo = currentActivity.ServiceOperationInfo as OperationInfo;
                if (operationInfo == null)
                {
                    return;
                }

                if (string.IsNullOrEmpty(operationInfo.ContractName) ||
                    string.IsNullOrEmpty(operationInfo.Name))
                {
                    return;
                }

                if (!types.ContainsKey(operationInfo.ContractName))
                {
                    types.Add(operationInfo.ContractName,
                              new ContractType(operationInfo.ContractName));
                }

                bool       hasReturnValue      = false;
                bool       duplicatedPositions = false;
                int        maxPosition         = -1;
                List <int> parameterIndexs     = new List <int>();

                foreach (OperationParameterInfo operationParameterInfo in operationInfo.Parameters)
                {
                    if (operationParameterInfo.Position == -1)
                    {
                        hasReturnValue = true;
                    }
                    else
                    {
                        maxPosition = (maxPosition < operationParameterInfo.Position) ? operationParameterInfo.Position : maxPosition;
                    }

                    if (parameterIndexs.Contains(operationParameterInfo.Position))
                    {
                        duplicatedPositions = true;
                        break;
                    }
                    else
                    {
                        parameterIndexs.Add(operationParameterInfo.Position);
                    }
                }

                if (duplicatedPositions ||
                    maxPosition > (operationInfo.Parameters.Count - (hasReturnValue ? 2 : 1)))
                {
                    return;
                }

                ContractType       contract   = types[operationInfo.ContractName];
                ContractMethodInfo methodInfo = new ContractMethodInfo(contract, operationInfo);
            };

            walker.Walk(contextActivity);

            return(types);
        }
 static bool MatchByOperation(ReceiveActivity source, ReceiveActivity target)
 {
     return MatchByOperation(source.ServiceOperationInfo, target.ServiceOperationInfo);
 }
Ejemplo n.º 18
0
 static bool MatchByOperation(ReceiveActivity source, ReceiveActivity target)
 {
     return(MatchByOperation(source.ServiceOperationInfo, target.ServiceOperationInfo));
 }
Ejemplo n.º 19
0
 //ReceiveActivity.Context
 //<snippet17>
 // Create EndpointAddress from Uri and ReceiveActivity
 static public EndpointAddress CreateEndpointAddress(string uri, ReceiveActivity receiveActivity)
 {
     return(CreateEndpointAddress(uri, receiveActivity.Context));
 }
Ejemplo n.º 20
0
        public override ValidationErrorCollection Validate(
            ValidationManager manager,
            object obj)
        {
            ValidationErrorCollection validationErrors = base.Validate(manager, obj);

            ReceiveActivity receiveActivity = obj as ReceiveActivity;

            if (receiveActivity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("obj",
                                                                             SR2.GetString(SR2.Error_ArgumentTypeInvalid, "obj", typeof(ReceiveActivity)));
            }

            ITypeProvider typeProvider = manager.GetService(typeof(ITypeProvider)) as ITypeProvider;

            if (typeProvider == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(
                                                                              SR2.GetString(SR2.General_MissingService, typeof(ITypeProvider).Name)));
            }

            if (receiveActivity.ServiceOperationInfo == null)
            {
                validationErrors.Add(
                    new ValidationError(
                        SR2.GetString(SR2.Error_Validation_OperationInfoNotSpecified, receiveActivity.Name),
                        WorkflowServicesErrorNumbers.Error_OperationInfoNotSpecified,
                        false,
                        "ServiceOperationInfo"));
            }
            else
            {
                // validate operation info
                //
                ValidationErrorCollection operationInfoValidationErrors =
                    ValidationHelper.ValidateOperationInfo(
                        receiveActivity,
                        receiveActivity.ServiceOperationInfo,
                        manager);

                validationErrors.AddRange(operationInfoValidationErrors);

                // do not validate parameter binding if the operation info is not valid
                // we might generate noise and false positives.
                //
                if (operationInfoValidationErrors.Count == 0)
                {
                    validationErrors.AddRange(
                        ValidationHelper.ValidateParameterBindings(receiveActivity, receiveActivity.ServiceOperationInfo,
                                                                   receiveActivity.ParameterBindings, manager));
                }

                // validate the context token
                //
                validationErrors.AddRange(
                    ValidationHelper.ValidateContextToken(receiveActivity, receiveActivity.ContextToken, manager));
            }

            // Check if the validation for all service operations being implemented
            // has been done previously.
            // If it has been done once then ServiceOperationsImplementedValidationMarker
            // will be on the context stack.
            //
            if (validationErrors.Count == 0 &&
                manager.Context[typeof(ServiceOperationsImplementedValidationMarker)] == null)
            {
                Activity rootActivity = receiveActivity;
                while (rootActivity.Parent != null)
                {
                    rootActivity = rootActivity.Parent;
                }

                validationErrors.AddRange(
                    ValidationHelper.ValidateAllServiceOperationsImplemented(
                        manager,
                        rootActivity));
            }

            return(validationErrors);
        }
Ejemplo n.º 21
0
        static void RegisterReceiveContext(ReceiveActivity activity,
                                           Guid workflowId,
                                           string contextName,
                                           string ownerActivityName)
        {
            if (activity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("activity");
            }
            if (string.IsNullOrEmpty(contextName))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("contextName",
                                                                             SR2.GetString(SR2.Error_ArgumentValueNullOrEmptyString));
            }

            Activity contextActivity = activity.ContextActivity;
            Activity owner           = null;

            if (contextActivity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
                          new InvalidOperationException(SR2.GetString(SR2.Error_ContextOwnerActivityMissing)));
            }

            if (string.IsNullOrEmpty(ownerActivityName))
            {
                owner = contextActivity.RootActivity;
            }
            else
            {
                while (contextActivity != null)
                {
                    owner = contextActivity.GetActivityByName(ownerActivityName, true);
                    if (owner != null)
                    {
                        break;
                    }

                    contextActivity = contextActivity.Parent;
                    if (contextActivity != null)
                    {
                        contextActivity = contextActivity.ContextActivity;
                    }
                }
            }

            if (owner == null)
            {
                owner = Helpers.ParseActivityForBind(activity, ownerActivityName);
            }

            if (owner == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
                          new InvalidOperationException(SR2.GetString(SR2.Error_ContextOwnerActivityMissing)));
            }

            ReceiveContextCollection collection =
                owner.GetValue(ReceiveContextCollection.ReceiveContextCollectionProperty) as ReceiveContextCollection;

            if (collection == null)
            {
                collection = new ReceiveContextCollection();
                owner.SetValue(ReceiveContextCollection.ReceiveContextCollectionProperty, collection);
            }

            if (!collection.Contains(contextName))
            {
                collection.Add(new ReceiveContext(contextName, workflowId, false));
            }
        }
Ejemplo n.º 22
0
 // Create EndpointAddress from Uri and ReceiveActivity
 static public EndpointAddress CreateEndpointAddress(string uri, ReceiveActivity receiveActivity)
 {
     return CreateEndpointAddress(uri, receiveActivity.Context);
 }
Ejemplo n.º 23
0
        public static bool TryPickOperation(IServiceProvider serviceProvider, Activity activity, OperationInfoBase currentOperation, out OperationInfoBase selectedOperation)
        {
            selectedOperation = null;
            bool isReceiveActivity = activity is ReceiveActivity;

            try
            {
                using (OperationPickerDialog operationPicker = new OperationPickerDialog(serviceProvider, isReceiveActivity))
                {
                    Walker activityTreeWalker  = new Walker();
                    Type   allowedActivityType = null;

                    if (isReceiveActivity)
                    {
                        allowedActivityType = typeof(ReceiveActivity);
                    }
                    else
                    {
                        allowedActivityType = typeof(SendActivity);
                    }

                    activityTreeWalker.FoundActivity += delegate(Walker walker, WalkerEventArgs eventArgs)
                    {
                        Activity foundActivity = eventArgs.CurrentActivity;
                        if (!(allowedActivityType.IsAssignableFrom(foundActivity.GetType())))
                        {
                            return;
                        }

                        if (!foundActivity.Enabled)
                        {
                            return;
                        }

                        if (foundActivity is ReceiveActivity)
                        {
                            ReceiveActivity reciveActivity = foundActivity as ReceiveActivity;
                            if (reciveActivity.ServiceOperationInfo != null)
                            {
                                operationPicker.AddServiceOperation(reciveActivity.ServiceOperationInfo, reciveActivity);
                            }
                        }
                        if (foundActivity is SendActivity)
                        {
                            SendActivity sendActivity = foundActivity as SendActivity;
                            if (sendActivity.ServiceOperationInfo != null)
                            {
                                operationPicker.AddServiceOperation(sendActivity.ServiceOperationInfo, sendActivity);
                            }
                        }
                    };
                    activityTreeWalker.Walk(activity.RootActivity);
                    OperationInfoBase currentServiceOperationInfo = currentOperation as OperationInfoBase;
                    if (currentServiceOperationInfo != null)
                    {
                        operationPicker.SelectedOperation = currentServiceOperationInfo;
                    }
                    DialogResult dialogResult = operationPicker.ShowDialog();
                    if ((operationPicker.SelectedOperation != null) && (dialogResult == DialogResult.OK) && !operationPicker.SelectedOperation.Equals(currentServiceOperationInfo))
                    {
                        selectedOperation = operationPicker.SelectedOperation.Clone();
                        return(true);
                    }
                }
            }
            catch (Exception e)
            {
                DesignerHelpers.ShowMessage(serviceProvider, e.Message, DR.GetString(DR.WorkflowDesignerTitle), MessageBoxButtons.OK,
                                            MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                throw;
            }

            return(false);
        }
Ejemplo n.º 24
0
        internal static void Register(ReceiveActivity activity, Guid workflowId)
        {
            if (activity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("activity");
            }

            ContextToken contextToken = activity.ContextToken;

            if (contextToken == null)
            {
                RegisterRootReceiveContext(activity, workflowId);
            }
            else if (contextToken.IsRootContext)
            {
                RegisterRootReceiveContext(activity, workflowId);
            }
            else
            {
                RegisterReceiveContext(activity, workflowId, contextToken.Name, contextToken.OwnerActivityName);
            }
        }
Ejemplo n.º 25
0
        static void RegisterReceiveContext(ReceiveActivity activity,
            Guid workflowId,
            string contextName,
            string ownerActivityName)
        {
            if (activity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("activity");
            }
            if (string.IsNullOrEmpty(contextName))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("contextName",
                    SR2.GetString(SR2.Error_ArgumentValueNullOrEmptyString));
            }

            Activity contextActivity = activity.ContextActivity;
            Activity owner = null;

            if (contextActivity == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
                    new InvalidOperationException(SR2.GetString(SR2.Error_ContextOwnerActivityMissing)));
            }

            if (string.IsNullOrEmpty(ownerActivityName))
            {
                owner = contextActivity.RootActivity;
            }
            else
            {
                while (contextActivity != null)
                {
                    owner = contextActivity.GetActivityByName(ownerActivityName, true);
                    if (owner != null)
                    {
                        break;
                    }

                    contextActivity = contextActivity.Parent;
                    if (contextActivity != null)
                    {
                        contextActivity = contextActivity.ContextActivity;
                    }
                }
            }

            if (owner == null)
            {
                owner = Helpers.ParseActivityForBind(activity, ownerActivityName);
            }

            if (owner == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
                    new InvalidOperationException(SR2.GetString(SR2.Error_ContextOwnerActivityMissing)));
            }

            ReceiveContextCollection collection =
                owner.GetValue(ReceiveContextCollection.ReceiveContextCollectionProperty) as ReceiveContextCollection;
            if (collection == null)
            {
                collection = new ReceiveContextCollection();
                owner.SetValue(ReceiveContextCollection.ReceiveContextCollectionProperty, collection);
            }

            if (!collection.Contains(contextName))
            {
                collection.Add(new ReceiveContext(contextName, workflowId, false));
            }
        }
Ejemplo n.º 26
0
        private void InitializeComponent()
        {
            ReceiveActivity receiveActivity1 = new ReceiveActivity();

            receiveActivity1.OperationValidation += new EventHandler <OperationValidationEventArgs>(receiveActivity1_OperationValidation);
        }