Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / InfoCardListRequest.cs / 1 / InfoCardListRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.Collections.Generic; using System.IO; class InfoCardListRequest : UIAgentRequest { InfoCardPolicy m_policy; IListm_allCards; public InfoCardListRequest( IntPtr rpcHandle, Stream inArgs, Stream outArgs, ClientUIRequest parent ) : base( rpcHandle, inArgs, outArgs, parent ) { } protected override void OnInitializeAsSystem() { base.OnInitializeAsSystem(); m_policy = GetPolicy(); } protected override void OnMarshalInArgs() { // // Nothing to marshall // } protected override void OnProcess() { // // Get the full list of all infocards. // IList rows = ( IList ) GetAllCards(); if ( null != rows && 0 != rows.Count ) { IList cards = new List ( rows.Count ); for ( int i = 0; i < rows.Count; i++ ) { byte[ ] rawForm = rows[ i ].GetDataField(); try { using ( MemoryStream stream = new MemoryStream( rawForm ) ) { cards.Add( new InfoCard( stream ) ); } } finally { Array.Clear( rawForm, 0, rawForm.Length ); } } m_allCards = cards; } } protected override void OnMarshalOutArgs() { Stream stream = OutArgs; BinaryWriter writer = new BinaryWriter( stream ); if ( null != m_allCards && 0 != m_allCards.Count ) { StoreConnection connection = StoreConnection.GetConnection(); try { // // write thte count of the array. // writer.Write( m_allCards.Count ); for ( int i = 0; i < m_allCards.Count; i++ ) { // // Flush the writer to ensure that all data // is committed to the base stream before // we pass the base stream into the card. // writer.Flush(); m_allCards[ i ].AgentSerialize( stream, ( ParentRequest is GetTokenRequest ), m_policy, connection, new System.Globalization.CultureInfo( ParentRequest.UserLanguage ) ); } writer.Flush(); } finally { if ( null != m_allCards ) { foreach ( InfoCard icard in m_allCards ) { icard.ClearSensitiveData(); } } connection.Close(); } } else { // // write the count of the array as 0. // writer.Write( 0 ); } } IList GetAllCards() { StoreConnection connection = StoreConnection.GetConnection(); try { return ( IList ) connection.Query( QueryDetails.FullRow, connection.LocalDataSource, new QueryParameter( SecondaryIndexDefinition.ObjectTypeIndex, (Int32) StorableObjectType.InfoCard ) ); } finally { connection.Close(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ScopedKnownTypes.cs
- PathFigureCollection.cs
- HttpEncoder.cs
- MailDefinition.cs
- GroupItem.cs
- CallbackValidatorAttribute.cs
- SplitterPanel.cs
- ContentElement.cs
- XamlClipboardData.cs
- SynchronousChannelMergeEnumerator.cs
- BypassElement.cs
- SqlProviderUtilities.cs
- GraphicsContext.cs
- WebResourceAttribute.cs
- RowBinding.cs
- CodeParameterDeclarationExpressionCollection.cs
- EventWaitHandleSecurity.cs
- ResXBuildProvider.cs
- ActivityTrace.cs
- Group.cs
- Cursors.cs
- _UncName.cs
- NotifyInputEventArgs.cs
- ExchangeUtilities.cs
- TransactionContextManager.cs
- ComponentChangedEvent.cs
- ReadOnlyDataSource.cs
- PenCursorManager.cs
- FormCollection.cs
- RowVisual.cs
- ListSourceHelper.cs
- OrderByQueryOptionExpression.cs
- Viewport2DVisual3D.cs
- FragmentNavigationEventArgs.cs
- SqlLiftIndependentRowExpressions.cs
- XmlSchemaValidationException.cs
- DataGridViewAdvancedBorderStyle.cs
- XDRSchema.cs
- entitydatasourceentitysetnameconverter.cs
- MenuItemCollection.cs
- DynamicValidatorEventArgs.cs
- SharedStatics.cs
- MenuCommand.cs
- X509ChainPolicy.cs
- XmlSchemaCollection.cs
- safelink.cs
- RegexParser.cs
- ChtmlPageAdapter.cs
- sqlcontext.cs
- Privilege.cs
- DBSchemaTable.cs
- EmbeddedObject.cs
- XmlArrayAttribute.cs
- AvTraceFormat.cs
- BaseHashHelper.cs
- CodeDOMUtility.cs
- TraversalRequest.cs
- IArgumentProvider.cs
- Clipboard.cs
- _TLSstream.cs
- HtmlString.cs
- XslException.cs
- ByteArrayHelperWithString.cs
- MLangCodePageEncoding.cs
- GradientSpreadMethodValidation.cs
- CollectionEditor.cs
- EntityTypeEmitter.cs
- FileNotFoundException.cs
- IPAddress.cs
- XmlNamespaceDeclarationsAttribute.cs
- CodeVariableDeclarationStatement.cs
- CaseInsensitiveOrdinalStringComparer.cs
- ApplicationDirectoryMembershipCondition.cs
- CodeVariableDeclarationStatement.cs
- HttpListener.cs
- DetailsViewUpdatedEventArgs.cs
- CodeBinaryOperatorExpression.cs
- ILGenerator.cs
- TransformerConfigurationWizardBase.cs
- HuffCodec.cs
- ProgressiveCrcCalculatingStream.cs
- TypeSource.cs
- OracleBoolean.cs
- DateTimeSerializationSection.cs
- TdsParser.cs
- AutoCompleteStringCollection.cs
- LineSegment.cs
- HitTestResult.cs
- AsyncWaitHandle.cs
- IsolatedStorageException.cs
- HttpRuntime.cs
- ServiceRouteHandler.cs
- TransformCollection.cs
- FragmentQuery.cs
- ManagedCodeMarkers.cs
- WriteableBitmap.cs
- RecognizerStateChangedEventArgs.cs
- TimeSpanConverter.cs
- XamlTypeWithExplicitNamespace.cs
- SspiNegotiationTokenProviderState.cs