示例#1
0
            private WorkflowIdentity Parse()
            {
                if (!ExtractName())
                {
                    return(null);
                }
                if (!ExtractVersion())
                {
                    return(null);
                }
                if (!ExtractPackage())
                {
                    return(null);
                }

                Fx.Assert(!_name.Contains(";"), "Regex should not have matched semi-colon");
                Fx.Assert(!HasLeadingOrTrailingWhitespace(_name), "Whitespace should have been stripped");
                Fx.Assert(_package == null || !HasLeadingOrTrailingWhitespace(_package), "Whitespace should have been stripped");

                WorkflowIdentity result = new WorkflowIdentity();

                result._name    = _name;
                result._version = _version;
                result._package = _package;
                return(result);
            }
 internal WorkflowApplicationInstance(
     WorkflowApplication.PersistenceManagerBase persistenceManager,
     IDictionary <XName, InstanceValue> values,
     WorkflowIdentity definitionIdentity)
 {
     this.PersistenceManager = persistenceManager;
     this.Values             = values;
     this.DefinitionIdentity = definitionIdentity;
     _state = (int)State.Initialized;
 }
示例#3
0
        //[Fx.Tag.SecurityNote(Critical = "Critical because we are overriding a critical method in the base class.")]
        //[SecurityCritical]
        //public override void GetObjectData(SerializationInfo info, StreamingContext context)
        //{
        //    base.GetObjectData(info, context);
        //    info.AddValue("expectedVersion", this.ExpectedVersion);
        //    info.AddValue("actualVersion", this.ActualVersion);
        //}

        private static string GetMessage(WorkflowIdentity expectedVersion, WorkflowIdentity actualVersion)
        {
            if (actualVersion == null && expectedVersion != null)
            {
                return(SR.WorkflowIdentityNullStateId(expectedVersion));
            }
            else if (actualVersion != null && expectedVersion == null)
            {
                return(SR.WorkflowIdentityNullHostId(actualVersion));
            }
            else if (!object.Equals(expectedVersion, actualVersion))
            {
                return(SR.WorkflowIdentityStateIdHostIdMismatch(actualVersion, expectedVersion));
            }
            else
            {
                return(null);
            }
        }
示例#4
0
 public VersionMismatchException(string message, WorkflowIdentity expectedVersion, WorkflowIdentity actualVersion, Exception innerException)
     : base(message, innerException)
 {
     this.ExpectedVersion = expectedVersion;
     this.ActualVersion   = actualVersion;
 }
示例#5
0
 public VersionMismatchException(WorkflowIdentity expectedVersion, WorkflowIdentity actualVersion)
     : base(GetMessage(expectedVersion, actualVersion))
 {
     this.ExpectedVersion = expectedVersion;
     this.ActualVersion   = actualVersion;
 }