Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / ImportFileRequest.cs / 1 / ImportFileRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.Collections; using System.IO; using System.Collections.Generic; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Import a set of cards to the store: // Saves a list of cards into the store and implements the overwrite logic for roaming // class ImportFileRequest :UIAgentRequest { public ImportFileRequest( IntPtr rpcHandle, Stream inArgs, Stream outArgs, ClientUIRequest parent ) : base( rpcHandle, inArgs, outArgs, parent ) { } // // Summary // Read the cards to be imported // protected override void OnMarshalInArgs() { } // // Summary // Save the cards to the store. If a card already exists // in the store, then the last card to be updated wins. // protected override void OnProcess() { RoamingStoreFile roamingFile = ParentRequest.GetContext(); if( null != roamingFile && null != roamingFile.Cards ) { try { StoreConnection connection = StoreConnection.GetConnection(); try { connection.BeginTransaction(); try { foreach ( InfoCard card in roamingFile.Cards ) { // // check if the card needs to be overwritten // The default overwrite logic overwrites the card based on time of last update // List param = new List (); param.Add( new QueryParameter( SecondaryIndexDefinition.ObjectTypeIndex, ( Int32 )StorableObjectType.InfoCard ) ); param.Add( new QueryParameter( SecondaryIndexDefinition.GlobalIdIndex, GlobalId.DeriveFrom( card.Id.ToString() ) ) ); DataRow row = connection.GetSingleRow( QueryDetails.FullRow, param.ToArray() ); // // If a card exists, compare the LastUpdate time // if ( null != row ) { using ( MemoryStream ms = new MemoryStream( row.GetDataField() ) ) { InfoCard existingCard = new InfoCard( ms ); if ( existingCard.LastUpdate < card.LastUpdate ) { IDT.TraceDebug( "Overwrite the existing card with id {0}", card.Id.AbsoluteUri ); card.IsImported = true; card.InstalledOn = DateTime.Now; card.Save( connection ); } } } else { IDT.TraceDebug( "Add a new card with id {0} to the store", card.Id.AbsoluteUri ); card.IsImported = true; card.InstalledOn = DateTime.Now; card.Save( connection ); } } connection.CommitTransaction(); AuditLog.AuditStoreImport(); } catch( Exception e ) { connection.RollbackTransaction(); if( IDT.IsFatal( e ) ) { throw; } throw IDT.ThrowHelperError( new ImportStoreException( SR.GetString( SR.InvalidImportFile ), e ) ); } } finally { connection.Close(); } } finally { // // Clear the roaming store file on completion. // roamingFile.Clear(); } } } protected override void OnMarshalOutArgs() { } } } // 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
- WebColorConverter.cs
- FederatedMessageSecurityOverHttp.cs
- EntryWrittenEventArgs.cs
- FontSizeConverter.cs
- TabletDeviceInfo.cs
- FontDialog.cs
- ProviderUtil.cs
- ParameterCollection.cs
- DispatcherSynchronizationContext.cs
- EntityConnectionStringBuilder.cs
- RoutingExtension.cs
- DataGridState.cs
- AggregationMinMaxHelpers.cs
- TraceEventCache.cs
- CollectionViewGroupRoot.cs
- MatrixAnimationUsingPath.cs
- RelatedPropertyManager.cs
- TextOnlyOutput.cs
- SerTrace.cs
- PrintPreviewControl.cs
- MultiViewDesigner.cs
- XmlNode.cs
- MatrixCamera.cs
- ModelVisual3D.cs
- SweepDirectionValidation.cs
- ToolStripGripRenderEventArgs.cs
- ExceptionDetail.cs
- TextCharacters.cs
- EncryptedKeyHashIdentifierClause.cs
- TargetFrameworkUtil.cs
- UIAgentAsyncEndRequest.cs
- ManipulationVelocities.cs
- NativeRightsManagementAPIsStructures.cs
- SystemWebSectionGroup.cs
- SignatureDescription.cs
- DeleteMemberBinder.cs
- XmlFileEditor.cs
- UriWriter.cs
- SqlDependencyUtils.cs
- EmissiveMaterial.cs
- DelegatedStream.cs
- mongolianshape.cs
- XmlBindingWorker.cs
- GridViewCommandEventArgs.cs
- ProfilePropertySettingsCollection.cs
- HandlerBase.cs
- IgnoreSectionHandler.cs
- DiscoveryRequestHandler.cs
- HistoryEventArgs.cs
- XmlSchemaGroup.cs
- RowToParametersTransformer.cs
- WhitespaceRule.cs
- linebase.cs
- XmlEntityReference.cs
- GraphicsState.cs
- StringConverter.cs
- GeneralTransform3DCollection.cs
- MessageDesigner.cs
- UnmanagedBitmapWrapper.cs
- FileRecordSequenceCompletedAsyncResult.cs
- ImageInfo.cs
- EnumUnknown.cs
- TypeSystemProvider.cs
- ControlPropertyNameConverter.cs
- DataColumnMapping.cs
- Attributes.cs
- View.cs
- ApplicationException.cs
- MarkupExtensionReturnTypeAttribute.cs
- SqlTopReducer.cs
- _ShellExpression.cs
- TabItemWrapperAutomationPeer.cs
- FederatedMessageSecurityOverHttp.cs
- SystemDiagnosticsSection.cs
- HtmlElementCollection.cs
- RefreshPropertiesAttribute.cs
- ToolStripDropDownClosingEventArgs.cs
- InternalReceiveMessage.cs
- ICspAsymmetricAlgorithm.cs
- ServiceNameCollection.cs
- DataBoundLiteralControl.cs
- ImageDrawing.cs
- ExtensionWindowResizeGrip.cs
- AnimationException.cs
- TagPrefixInfo.cs
- SchemaManager.cs
- CodeDOMUtility.cs
- ServiceModelConfigurationSection.cs
- SqlHelper.cs
- InputGestureCollection.cs
- _BasicClient.cs
- GetCertificateRequest.cs
- DataColumnMapping.cs
- TextDecorationCollection.cs
- EntityProviderServices.cs
- BaseTemplateBuildProvider.cs
- ExeConfigurationFileMap.cs
- TextTreeRootNode.cs
- DataGridClipboardCellContent.cs
- TableStyle.cs