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
- FixedBufferAttribute.cs
- TextElement.cs
- TextSegment.cs
- Timeline.cs
- TypeBuilderInstantiation.cs
- FactorySettingsElement.cs
- BindUriHelper.cs
- TypeContext.cs
- X509ThumbprintKeyIdentifierClause.cs
- Triangle.cs
- DataSourceControlBuilder.cs
- Label.cs
- Roles.cs
- SerialPort.cs
- UserMapPath.cs
- DateTimePickerDesigner.cs
- HtmlTableRowCollection.cs
- ValuePatternIdentifiers.cs
- WebDescriptionAttribute.cs
- _LocalDataStoreMgr.cs
- RtfToXamlReader.cs
- AssemblyInfo.cs
- CustomError.cs
- NumberFormatter.cs
- SynchronizationValidator.cs
- PixelShader.cs
- ArgumentOutOfRangeException.cs
- Form.cs
- CustomAttribute.cs
- WebPartAddingEventArgs.cs
- FrameworkReadOnlyPropertyMetadata.cs
- HyperLinkField.cs
- CacheVirtualItemsEvent.cs
- ToggleProviderWrapper.cs
- TableSectionStyle.cs
- mactripleDES.cs
- ConnectionStringsExpressionBuilder.cs
- LowerCaseStringConverter.cs
- FunctionParameter.cs
- BamlLocalizer.cs
- SevenBitStream.cs
- ConfigDefinitionUpdates.cs
- FullTextLine.cs
- HttpResponseInternalWrapper.cs
- Rotation3DAnimation.cs
- ButtonColumn.cs
- UserControlParser.cs
- indexingfiltermarshaler.cs
- ObjectDataSourceMethodEventArgs.cs
- ClientTargetSection.cs
- SynchronizedDispatch.cs
- DesignerValidatorAdapter.cs
- MsmqIntegrationSecurityElement.cs
- UriTemplateVariablePathSegment.cs
- RouteValueExpressionBuilder.cs
- mda.cs
- PaintValueEventArgs.cs
- String.cs
- RegistrySecurity.cs
- Subtree.cs
- TreeViewItemAutomationPeer.cs
- SerializationEventsCache.cs
- DbException.cs
- relpropertyhelper.cs
- TextEditorSpelling.cs
- PasswordRecovery.cs
- StorageAssociationSetMapping.cs
- WindowsIdentity.cs
- DomainUpDown.cs
- _FtpControlStream.cs
- ViewKeyConstraint.cs
- Exceptions.cs
- DefaultSection.cs
- TemplateBindingExtension.cs
- CqlGenerator.cs
- HScrollProperties.cs
- CornerRadiusConverter.cs
- DefaultAuthorizationContext.cs
- CreateInstanceBinder.cs
- DesignerDataTable.cs
- AppSecurityManager.cs
- CompositionTarget.cs
- RIPEMD160Managed.cs
- TrackingDataItem.cs
- ClientConfigurationSystem.cs
- WaitHandleCannotBeOpenedException.cs
- XmlReaderSettings.cs
- DiagnosticsConfigurationHandler.cs
- WindowsGrip.cs
- AssemblyBuilder.cs
- SHA384Cng.cs
- WindowsStatusBar.cs
- ImageClickEventArgs.cs
- CardSpaceException.cs
- UserControlBuildProvider.cs
- TypedAsyncResult.cs
- ApplicationDirectoryMembershipCondition.cs
- StringCollection.cs
- SerialPinChanges.cs
- BitmapImage.cs