Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / DeleteCardRequest.cs / 1 / DeleteCardRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Summary // Processes a delete card request. // // // Specify valid parent requests. // class DeleteCardRequest : UIAgentRequest { Uri m_cardId; // Specifies the card identifier. public DeleteCardRequest( IntPtr rpcHandle, Stream inArgs, Stream outArgs, ClientUIRequest parent ) : base( rpcHandle, inArgs, outArgs, parent ) { } protected override void OnInitializeAsSystem() { base.OnInitializeAsSystem(); } // // Summary // Marshals input arguments for the request. The arguments are read from a stream in binary. // protected override void OnMarshalInArgs() { BinaryReader reader = new InfoCardBinaryReader( InArgs, Encoding.Unicode ); m_cardId = Utility.DeserializeUri( reader ); } // // Summary // Processes the request. // // The InfoCard, the claim collection associated with the card and the ledger entries // associated with the card are deleted from the store. // protected override void OnProcess() { StoreConnection connection = StoreConnection.GetConnection(); try { connection.BeginTransaction(); try { string name = null; // // Delete the infocard - we need the full row to get the name. // DataRow row = connection.GetSingleRow( QueryDetails.FullRow, new QueryParameter( SecondaryIndexDefinition.GlobalIdIndex, GlobalId.DeriveFrom( m_cardId.ToString() ) ) ); if( null != row ) { byte[ ] rawForm = row.GetDataField(); try { using ( MemoryStream stream = new MemoryStream( rawForm ) ) { InfoCard ic = new InfoCard( stream ); name = ic.Name; } } finally { connection.Delete( row ); Array.Clear( rawForm, 0, rawForm.Length ); } } IDT.TraceDebug( "Deleted infocard with id: #{0}", m_cardId ); // // Delete any other rows whose parent id is m_cardId // ListparamList = new List (); QueryParameter query = new QueryParameter( SecondaryIndexDefinition.ParentIdIndex, GlobalId.DeriveFrom( m_cardId.ToString() ) ); paramList.Add( query ); ICollection list = ( ICollection )connection.Query( QueryDetails.Identifiers, paramList.ToArray() ); if( null != list && list.Count > 0 ) { foreach( DataRow rowWithParentIdMatch in list ) { connection.Delete( rowWithParentIdMatch ); } } connection.CommitTransaction(); AuditLog.AuditCardDeletion(); } catch { connection.RollbackTransaction(); throw; } } finally { connection.Close(); } IDT.TraceDebug( "Deleted ledger entries with parent id: #{0}", m_cardId ); } // // Summary // Marshals output arguments for the request. The arguments are written to a stream in binary. // protected override void OnMarshalOutArgs() { // // This request has no output arguments. // } } } // 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
- DataControlCommands.cs
- ActivityMarkupSerializationProvider.cs
- HtmlTextArea.cs
- HttpCacheVary.cs
- DataGridViewColumnCollectionDialog.cs
- LineServicesRun.cs
- BitmapSourceSafeMILHandle.cs
- LinqMaximalSubtreeNominator.cs
- SettingsPropertyWrongTypeException.cs
- RoutingService.cs
- DataGridViewCellCollection.cs
- MediaTimeline.cs
- AgileSafeNativeMemoryHandle.cs
- KoreanCalendar.cs
- PathGeometry.cs
- RowToFieldTransformer.cs
- SQLString.cs
- Emitter.cs
- MgmtConfigurationRecord.cs
- BitmapSizeOptions.cs
- PointLightBase.cs
- QilSortKey.cs
- TextEffectResolver.cs
- DataMember.cs
- ViewEvent.cs
- Encoder.cs
- MarginsConverter.cs
- DynamicRendererThreadManager.cs
- StringStorage.cs
- MethodSignatureGenerator.cs
- DataServiceKeyAttribute.cs
- ToolStripDropDownClosingEventArgs.cs
- FigureParaClient.cs
- WindowsEditBox.cs
- FocusTracker.cs
- Util.cs
- ContainerControl.cs
- UnsafeNativeMethodsMilCoreApi.cs
- DoubleLinkListEnumerator.cs
- PropertyItemInternal.cs
- AttributeEmitter.cs
- WebPartConnectionsConnectVerb.cs
- autovalidator.cs
- TableColumn.cs
- Rss20FeedFormatter.cs
- ParentUndoUnit.cs
- WmlLiteralTextAdapter.cs
- CompiledAction.cs
- SoapAttributeOverrides.cs
- AdapterDictionary.cs
- Decorator.cs
- OSFeature.cs
- SocketManager.cs
- HttpConfigurationSystem.cs
- ModuleConfigurationInfo.cs
- RangeContentEnumerator.cs
- GridEntryCollection.cs
- CodeValidator.cs
- AtomicFile.cs
- ColorConverter.cs
- TemplateControlCodeDomTreeGenerator.cs
- MetadataArtifactLoaderCompositeFile.cs
- ListViewHitTestInfo.cs
- EventMappingSettingsCollection.cs
- DesignerTransactionCloseEvent.cs
- ThemeDictionaryExtension.cs
- ViewStateModeByIdAttribute.cs
- GetImportFileNameRequest.cs
- CellConstantDomain.cs
- AsnEncodedData.cs
- HttpCacheVary.cs
- DeviceFilterEditorDialog.cs
- SerializationEventsCache.cs
- EntityTypeBase.cs
- DispatchOperationRuntime.cs
- BrushMappingModeValidation.cs
- ModuleElement.cs
- XmlSchemaAny.cs
- InternalUserCancelledException.cs
- Identity.cs
- DynamicValidator.cs
- CollectionConverter.cs
- LockedActivityGlyph.cs
- DbDataSourceEnumerator.cs
- ContainerCodeDomSerializer.cs
- StackSpiller.Temps.cs
- RotateTransform.cs
- LocalizabilityAttribute.cs
- DataPagerFieldItem.cs
- ByteConverter.cs
- EntityStoreSchemaGenerator.cs
- XmlReaderSettings.cs
- IisTraceWebEventProvider.cs
- clipboard.cs
- DataGridSortCommandEventArgs.cs
- UnmanagedMemoryStreamWrapper.cs
- GlyphsSerializer.cs
- EndPoint.cs
- RtfToken.cs
- ThreadExceptionDialog.cs