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
- QueueProcessor.cs
- BasicExpressionVisitor.cs
- TimersDescriptionAttribute.cs
- HWStack.cs
- TrackBarRenderer.cs
- CommonDialog.cs
- MetadataItemEmitter.cs
- AttributeCollection.cs
- SlotInfo.cs
- JapaneseCalendar.cs
- DateTimePicker.cs
- ListViewAutomationPeer.cs
- MimeFormImporter.cs
- MouseEvent.cs
- WorkflowOwnershipException.cs
- IMembershipProvider.cs
- RelationshipConverter.cs
- SQLInt32.cs
- DesignOnlyAttribute.cs
- ReflectEventDescriptor.cs
- CommandDevice.cs
- altserialization.cs
- BackgroundFormatInfo.cs
- AlternateViewCollection.cs
- DataBinder.cs
- UInt16.cs
- Compilation.cs
- CommonRemoteMemoryBlock.cs
- MiniAssembly.cs
- AsyncOperationLifetimeManager.cs
- FillErrorEventArgs.cs
- GAC.cs
- CompareValidator.cs
- WebContext.cs
- TransactionalPackage.cs
- AdornerDecorator.cs
- SegmentTree.cs
- RijndaelManagedTransform.cs
- CornerRadiusConverter.cs
- SymmetricKeyWrap.cs
- ZipIOFileItemStream.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- CodeNamespaceImport.cs
- Bezier.cs
- EnumConverter.cs
- PointLight.cs
- ValidationErrorCollection.cs
- DbConnectionClosed.cs
- TableSectionStyle.cs
- HostingEnvironmentException.cs
- PolicyManager.cs
- Random.cs
- SystemColors.cs
- ChangeProcessor.cs
- CroppedBitmap.cs
- FactoryMaker.cs
- CookieProtection.cs
- Substitution.cs
- InputReferenceExpression.cs
- TableRow.cs
- MoveSizeWinEventHandler.cs
- Renderer.cs
- AssociationEndMember.cs
- GlobalItem.cs
- InkCanvasSelection.cs
- Propagator.Evaluator.cs
- OutputScopeManager.cs
- TrackBarRenderer.cs
- EntityFunctions.cs
- CompiledQueryCacheEntry.cs
- ElementMarkupObject.cs
- CertificateReferenceElement.cs
- FileDialog.cs
- TrackBar.cs
- SecurityException.cs
- EncodingFallbackAwareXmlTextWriter.cs
- FileInfo.cs
- HostTimeoutsElement.cs
- HttpContextServiceHost.cs
- safemediahandle.cs
- BaseTreeIterator.cs
- login.cs
- GridViewRow.cs
- SendActivityEventArgs.cs
- ChtmlTextWriter.cs
- ActivityScheduledRecord.cs
- Point3DIndependentAnimationStorage.cs
- CompensatableSequenceActivity.cs
- RelationshipDetailsRow.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- ToolCreatedEventArgs.cs
- TimelineClockCollection.cs
- BrushConverter.cs
- NeutralResourcesLanguageAttribute.cs
- UrlMappingsModule.cs
- QueryInterceptorAttribute.cs
- ColumnHeaderConverter.cs
- XmlSignatureManifest.cs
- XmlAttributeOverrides.cs
- SerializerWriterEventHandlers.cs