Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Epm / EpmSyndicationContentDeSerializer.cs / 1305376 / EpmSyndicationContentDeSerializer.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Deserializer for the EPM content on the server // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Common { #region Namespaces using System.Data.Services.Providers; using System.ServiceModel.Syndication; using System.Diagnostics; using System.Xml; #endregion ///Syndication content reader for EPM content internal sealed class EpmSyndicationContentDeSerializer : EpmContentDeSerializerBase { ///Constructor ///to read content from /// State of the deserializer internal EpmSyndicationContentDeSerializer(SyndicationItem item, EpmContentDeSerializer.EpmContentDeserializerState state) : base(item, state) { } /// Publicly accessible deserialization entry point /// Type of resource to deserialize /// Token corresponding to object ofinternal void DeSerialize(ResourceType resourceType, object element) { this.DeSerialize(resourceType.EpmTargetTree.SyndicationRoot, resourceType, element); } /// Used for deserializing each of syndication specific content nodes /// Node in the target path being processed /// ResourceType /// object being deserialized private void DeSerialize(EpmTargetPathSegment currentRoot, ResourceType resourceType, object element) { foreach (EpmTargetPathSegment newRoot in currentRoot.SubSegments) { if (newRoot.HasContent) { if (!EpmContentDeSerializerBase.Match(newRoot, this.PropertiesApplied)) { switch (newRoot.EpmInfo.Attribute.TargetSyndicationItem) { case SyndicationItemProperty.AuthorEmail: if (this.Item.Authors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Authors[0].Email, this); } break; case SyndicationItemProperty.AuthorName: if (this.Item.Authors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Authors[0].Name, this); } break; case SyndicationItemProperty.AuthorUri: if (this.Item.Authors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Authors[0].Uri, this); } break; case SyndicationItemProperty.ContributorEmail: if (this.Item.Contributors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Contributors[0].Email, this); } break; case SyndicationItemProperty.ContributorName: if (this.Item.Contributors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Contributors[0].Name, this); } break; case SyndicationItemProperty.ContributorUri: if (this.Item.Contributors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Contributors[0].Uri, this); } break; case SyndicationItemProperty.Updated: // If this.Item.LastUpdatedTime == DateTimeOffset.MinValue we assume that the date has not been provided // by the user. This is the same assumption Syndication Api does (see Atom10FeedFormatter.WriteItemContents()). // If the date was not provided by the user we should not touch it - otherwise the response will not be // compatible with response sent for the same request and the same resource type but having KeepInContent set to true if (this.Item.LastUpdatedTime > DateTimeOffset.MinValue) { resourceType.SetEpmValue(newRoot, element, XmlConvert.ToString(this.Item.LastUpdatedTime), this); } break; case SyndicationItemProperty.Published: if (this.Item.PublishDate > DateTimeOffset.MinValue) { resourceType.SetEpmValue(newRoot, element, XmlConvert.ToString(this.Item.PublishDate), this); } break; case SyndicationItemProperty.Rights: if (this.Item.Copyright != null) { resourceType.SetEpmValue(newRoot, element, this.Item.Copyright.Text, this); } break; case SyndicationItemProperty.Summary: if (this.Item.Summary != null) { resourceType.SetEpmValue(newRoot, element, this.Item.Summary.Text, this); } break; case SyndicationItemProperty.Title: if (this.Item.Title != null) { resourceType.SetEpmValue(newRoot, element, this.Item.Title.Text, this); } break; default: Debug.Fail("Unhandled SyndicationItemProperty enum value - should never get here."); break; } } } else { this.DeSerialize(newRoot, resourceType, element); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Deserializer for the EPM content on the server // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Common { #region Namespaces using System.Data.Services.Providers; using System.ServiceModel.Syndication; using System.Diagnostics; using System.Xml; #endregion ///Syndication content reader for EPM content internal sealed class EpmSyndicationContentDeSerializer : EpmContentDeSerializerBase { ///Constructor ///to read content from /// State of the deserializer internal EpmSyndicationContentDeSerializer(SyndicationItem item, EpmContentDeSerializer.EpmContentDeserializerState state) : base(item, state) { } /// Publicly accessible deserialization entry point /// Type of resource to deserialize /// Token corresponding to object ofinternal void DeSerialize(ResourceType resourceType, object element) { this.DeSerialize(resourceType.EpmTargetTree.SyndicationRoot, resourceType, element); } /// Used for deserializing each of syndication specific content nodes /// Node in the target path being processed /// ResourceType /// object being deserialized private void DeSerialize(EpmTargetPathSegment currentRoot, ResourceType resourceType, object element) { foreach (EpmTargetPathSegment newRoot in currentRoot.SubSegments) { if (newRoot.HasContent) { if (!EpmContentDeSerializerBase.Match(newRoot, this.PropertiesApplied)) { switch (newRoot.EpmInfo.Attribute.TargetSyndicationItem) { case SyndicationItemProperty.AuthorEmail: if (this.Item.Authors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Authors[0].Email, this); } break; case SyndicationItemProperty.AuthorName: if (this.Item.Authors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Authors[0].Name, this); } break; case SyndicationItemProperty.AuthorUri: if (this.Item.Authors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Authors[0].Uri, this); } break; case SyndicationItemProperty.ContributorEmail: if (this.Item.Contributors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Contributors[0].Email, this); } break; case SyndicationItemProperty.ContributorName: if (this.Item.Contributors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Contributors[0].Name, this); } break; case SyndicationItemProperty.ContributorUri: if (this.Item.Contributors.Count > 0) { resourceType.SetEpmValue(newRoot, element, this.Item.Contributors[0].Uri, this); } break; case SyndicationItemProperty.Updated: // If this.Item.LastUpdatedTime == DateTimeOffset.MinValue we assume that the date has not been provided // by the user. This is the same assumption Syndication Api does (see Atom10FeedFormatter.WriteItemContents()). // If the date was not provided by the user we should not touch it - otherwise the response will not be // compatible with response sent for the same request and the same resource type but having KeepInContent set to true if (this.Item.LastUpdatedTime > DateTimeOffset.MinValue) { resourceType.SetEpmValue(newRoot, element, XmlConvert.ToString(this.Item.LastUpdatedTime), this); } break; case SyndicationItemProperty.Published: if (this.Item.PublishDate > DateTimeOffset.MinValue) { resourceType.SetEpmValue(newRoot, element, XmlConvert.ToString(this.Item.PublishDate), this); } break; case SyndicationItemProperty.Rights: if (this.Item.Copyright != null) { resourceType.SetEpmValue(newRoot, element, this.Item.Copyright.Text, this); } break; case SyndicationItemProperty.Summary: if (this.Item.Summary != null) { resourceType.SetEpmValue(newRoot, element, this.Item.Summary.Text, this); } break; case SyndicationItemProperty.Title: if (this.Item.Title != null) { resourceType.SetEpmValue(newRoot, element, this.Item.Title.Text, this); } break; default: Debug.Fail("Unhandled SyndicationItemProperty enum value - should never get here."); break; } } } else { this.DeSerialize(newRoot, resourceType, element); } } } } } // 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
- FixedSOMLineRanges.cs
- WebAdminConfigurationHelper.cs
- ValidationErrorCollection.cs
- SignedInfo.cs
- FormCollection.cs
- CallbackHandler.cs
- TextContainer.cs
- SqlGenericUtil.cs
- FreezableOperations.cs
- FigureParagraph.cs
- TextLineResult.cs
- ScrollChangedEventArgs.cs
- Cursor.cs
- GiveFeedbackEvent.cs
- ContentControl.cs
- MenuItemAutomationPeer.cs
- FixUp.cs
- XmlSchemaValidationException.cs
- TextEditorContextMenu.cs
- StatusBarPanelClickEvent.cs
- DataServiceRequestException.cs
- ToolboxDataAttribute.cs
- CodeTryCatchFinallyStatement.cs
- FixedFindEngine.cs
- LocatorPart.cs
- ViewKeyConstraint.cs
- UncommonField.cs
- XsdValidatingReader.cs
- EncodingStreamWrapper.cs
- BindingElement.cs
- FolderBrowserDialog.cs
- Point.cs
- URLAttribute.cs
- SponsorHelper.cs
- XPathBinder.cs
- SqlPersonalizationProvider.cs
- UxThemeWrapper.cs
- BaseTemplateCodeDomTreeGenerator.cs
- M3DUtil.cs
- DragEventArgs.cs
- DodSequenceMerge.cs
- MetadataImporterQuotas.cs
- PropertyMapper.cs
- TrackingStringDictionary.cs
- Asn1Utilities.cs
- UserPersonalizationStateInfo.cs
- OleDbRowUpdatedEvent.cs
- PaperSource.cs
- Maps.cs
- XmlCustomFormatter.cs
- DataError.cs
- ZipIORawDataFileBlock.cs
- ProvideValueServiceProvider.cs
- MeasureItemEvent.cs
- InputProcessorProfilesLoader.cs
- EdmToObjectNamespaceMap.cs
- SpellerError.cs
- StreamWriter.cs
- DbProviderSpecificTypePropertyAttribute.cs
- SmiContext.cs
- PersonalizablePropertyEntry.cs
- ComplexObject.cs
- sortedlist.cs
- PageBreakRecord.cs
- Scripts.cs
- ColorConvertedBitmapExtension.cs
- ArrayConverter.cs
- ReadOnlyDataSource.cs
- Serializer.cs
- EventSinkHelperWriter.cs
- SystemNetHelpers.cs
- BitmapEffectDrawingContextState.cs
- Opcode.cs
- ImageDrawing.cs
- ClockGroup.cs
- SerializerProvider.cs
- SoapEnvelopeProcessingElement.cs
- XmlWhitespace.cs
- LocatorGroup.cs
- XmlDsigSep2000.cs
- QilParameter.cs
- MetadataPropertyAttribute.cs
- _OverlappedAsyncResult.cs
- Input.cs
- IFormattable.cs
- ValueQuery.cs
- ResourcePermissionBaseEntry.cs
- DivideByZeroException.cs
- TypefaceCollection.cs
- CroppedBitmap.cs
- DataFieldEditor.cs
- QilInvokeLateBound.cs
- HealthMonitoringSectionHelper.cs
- WindowsFormsLinkLabel.cs
- TabletDeviceInfo.cs
- HtmlUtf8RawTextWriter.cs
- RefreshPropertiesAttribute.cs
- LocalizableResourceBuilder.cs
- ProfileServiceManager.cs
- WebServiceEnumData.cs