Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / System.Runtime.DurableInstancing / System / Runtime / DurableInstancing / InstancePersistence.cs / 1305376 / InstancePersistence.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Runtime.DurableInstancing { using System; using System.Collections.Generic; using System.Runtime; using System.Xml.Linq; static class InstancePersistence { static readonly XNamespace activitiesCommandNamespace = XNamespace.Get("urn:schemas-microsoft-com:System.Activities.Persistence/command"); static readonly XNamespace activitiesEventNamespace = XNamespace.Get("urn:schemas-microsoft-com:System.Activities.Persistence/event"); internal static XNamespace ActivitiesCommandNamespace { get { return InstancePersistence.activitiesCommandNamespace; } } internal static XNamespace ActivitiesEventNamespace { get { return InstancePersistence.activitiesEventNamespace; } } public static void ValidatePropertyBag(this IDictionarybag) { bag.ValidatePropertyBag(false); } public static void ValidatePropertyBag(this IDictionary bag, bool allowDelete) { if (bag != null) { foreach (KeyValuePair property in bag) { property.ValidateProperty(allowDelete); } } } public static void ValidateProperty(this KeyValuePair property) { property.ValidateProperty(false); } public static void ValidateProperty(this KeyValuePair property, bool allowDelete) { if (property.Key == null) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.MetadataCannotContainNullKey)); } if (property.Value == null) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.MetadataCannotContainNullValue(property.Key))); } if (!allowDelete && property.Value.IsDeletedValue) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.InitialMetadataCannotBeDeleted(property.Key))); } } public static bool IsOptional(this InstanceValue value) { return (value.Options & InstanceValueOptions.Optional) != 0; } public static bool IsWriteOnly(this InstanceValue value) { return (value.Options & InstanceValueOptions.WriteOnly) != 0; } public static ReadOnlyDictionary ReadOnlyCopy(this IDictionary bag, bool allowWriteOnly) { if (bag != null && bag.Count > 0) { Dictionary copy = new Dictionary (bag.Count); foreach (KeyValuePair value in bag) { value.ValidateProperty(); if (!value.Value.IsWriteOnly()) { copy.Add(value.Key, value.Value); } else if (!allowWriteOnly) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.LoadedWriteOnlyValue)); } } return new ReadOnlyDictionary (copy, false); } else { return null; } } public static ReadOnlyDictionary ReadOnlyMergeInto(this IDictionary bag, IDictionary existing, bool allowWriteOnly) { Fx.Assert(existing == null || existing is ReadOnlyDictionary , "Should only be merging into other read-only dictionaries."); if (bag != null && bag.Count > 0) { Dictionary copy = existing == null ? new Dictionary (bag.Count) : new Dictionary (existing); foreach (KeyValuePair value in bag) { value.ValidateProperty(true); if (value.Value.IsDeletedValue) { copy.Remove(value.Key); } else if (!value.Value.IsWriteOnly()) { copy[value.Key] = value.Value; } else if (!allowWriteOnly) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.LoadedWriteOnlyValue)); } else { copy.Remove(value.Key); } } return new ReadOnlyDictionary (copy, false); } else { return (ReadOnlyDictionary ) existing; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Runtime.DurableInstancing { using System; using System.Collections.Generic; using System.Runtime; using System.Xml.Linq; static class InstancePersistence { static readonly XNamespace activitiesCommandNamespace = XNamespace.Get("urn:schemas-microsoft-com:System.Activities.Persistence/command"); static readonly XNamespace activitiesEventNamespace = XNamespace.Get("urn:schemas-microsoft-com:System.Activities.Persistence/event"); internal static XNamespace ActivitiesCommandNamespace { get { return InstancePersistence.activitiesCommandNamespace; } } internal static XNamespace ActivitiesEventNamespace { get { return InstancePersistence.activitiesEventNamespace; } } public static void ValidatePropertyBag(this IDictionary bag) { bag.ValidatePropertyBag(false); } public static void ValidatePropertyBag(this IDictionary bag, bool allowDelete) { if (bag != null) { foreach (KeyValuePair property in bag) { property.ValidateProperty(allowDelete); } } } public static void ValidateProperty(this KeyValuePair property) { property.ValidateProperty(false); } public static void ValidateProperty(this KeyValuePair property, bool allowDelete) { if (property.Key == null) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.MetadataCannotContainNullKey)); } if (property.Value == null) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.MetadataCannotContainNullValue(property.Key))); } if (!allowDelete && property.Value.IsDeletedValue) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.InitialMetadataCannotBeDeleted(property.Key))); } } public static bool IsOptional(this InstanceValue value) { return (value.Options & InstanceValueOptions.Optional) != 0; } public static bool IsWriteOnly(this InstanceValue value) { return (value.Options & InstanceValueOptions.WriteOnly) != 0; } public static ReadOnlyDictionary ReadOnlyCopy(this IDictionary bag, bool allowWriteOnly) { if (bag != null && bag.Count > 0) { Dictionary copy = new Dictionary (bag.Count); foreach (KeyValuePair value in bag) { value.ValidateProperty(); if (!value.Value.IsWriteOnly()) { copy.Add(value.Key, value.Value); } else if (!allowWriteOnly) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.LoadedWriteOnlyValue)); } } return new ReadOnlyDictionary (copy, false); } else { return null; } } public static ReadOnlyDictionary ReadOnlyMergeInto(this IDictionary bag, IDictionary existing, bool allowWriteOnly) { Fx.Assert(existing == null || existing is ReadOnlyDictionary , "Should only be merging into other read-only dictionaries."); if (bag != null && bag.Count > 0) { Dictionary copy = existing == null ? new Dictionary (bag.Count) : new Dictionary (existing); foreach (KeyValuePair value in bag) { value.ValidateProperty(true); if (value.Value.IsDeletedValue) { copy.Remove(value.Key); } else if (!value.Value.IsWriteOnly()) { copy[value.Key] = value.Value; } else if (!allowWriteOnly) { throw Fx.Exception.AsError(new InvalidOperationException(SRCore.LoadedWriteOnlyValue)); } else { copy.Remove(value.Key); } } return new ReadOnlyDictionary (copy, false); } else { return (ReadOnlyDictionary ) existing; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RowUpdatedEventArgs.cs
- AssemblyNameProxy.cs
- OutArgument.cs
- RuntimeConfig.cs
- ReadOnlyDictionary.cs
- ErrorStyle.cs
- HtmlControlAdapter.cs
- UserMapPath.cs
- ApplicationManager.cs
- ErrorReporting.cs
- PersonalizationStateQuery.cs
- TypeBuilder.cs
- DefaultDiscoveryServiceExtension.cs
- DocumentScope.cs
- Unit.cs
- ComponentResourceManager.cs
- PersonalizationStateInfoCollection.cs
- FontWeightConverter.cs
- ExternalDataExchangeClient.cs
- BitmapInitialize.cs
- ClientUrlResolverWrapper.cs
- UpDownBase.cs
- SHA384.cs
- BufferedGraphicsManager.cs
- Win32PrintDialog.cs
- BrowserDefinition.cs
- MenuCommand.cs
- MultiSelector.cs
- MultiPageTextView.cs
- FormsAuthentication.cs
- ZipIOLocalFileHeader.cs
- BuildProviderUtils.cs
- MenuItemBinding.cs
- CustomTypeDescriptor.cs
- CategoriesDocumentFormatter.cs
- BitmapFrame.cs
- SettingsContext.cs
- AuthenticationConfig.cs
- IArgumentProvider.cs
- MailSettingsSection.cs
- ViewgenContext.cs
- StylusButtonCollection.cs
- QilName.cs
- SafeEventLogReadHandle.cs
- Effect.cs
- SaveFileDialog.cs
- DiagnosticsConfigurationHandler.cs
- SoapFault.cs
- XpsFixedDocumentSequenceReaderWriter.cs
- ListViewAutomationPeer.cs
- TransactionManager.cs
- UnsignedPublishLicense.cs
- ErasingStroke.cs
- JournalNavigationScope.cs
- Speller.cs
- DependencyPropertyKind.cs
- complextypematerializer.cs
- WithParamAction.cs
- OleDbDataReader.cs
- RepeaterItem.cs
- keycontainerpermission.cs
- ListControl.cs
- PreviewPageInfo.cs
- WebPartConnectionsEventArgs.cs
- SafeLibraryHandle.cs
- PassportAuthentication.cs
- ServicePointManagerElement.cs
- BaseCodeDomTreeGenerator.cs
- WhitespaceRuleLookup.cs
- SystemUnicastIPAddressInformation.cs
- CharKeyFrameCollection.cs
- GlobalEventManager.cs
- Attributes.cs
- DesignTableCollection.cs
- PenContext.cs
- HtmlElementEventArgs.cs
- InkCollectionBehavior.cs
- login.cs
- BitmapVisualManager.cs
- X509SecurityTokenAuthenticator.cs
- BamlLocalizer.cs
- SqlServices.cs
- BitmapMetadataBlob.cs
- TextSelectionHelper.cs
- OdbcReferenceCollection.cs
- UrlMapping.cs
- SimpleParser.cs
- DataIdProcessor.cs
- QuestionEventArgs.cs
- AppSecurityManager.cs
- TreePrinter.cs
- StrongTypingException.cs
- ErrorReporting.cs
- PropertyRef.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- SafeWaitHandle.cs
- DictionaryGlobals.cs
- ChannelBinding.cs
- ChangeBlockUndoRecord.cs
- FlowDocumentScrollViewer.cs