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
- ExpressionBuilderContext.cs
- panel.cs
- FormsAuthenticationUserCollection.cs
- ResourceWriter.cs
- PersianCalendar.cs
- WebCategoryAttribute.cs
- MenuItemBindingCollection.cs
- URLIdentityPermission.cs
- ProgressBarHighlightConverter.cs
- AuthorizationContext.cs
- WinFormsUtils.cs
- RowType.cs
- Parameter.cs
- ColorConvertedBitmap.cs
- ExtendedProperty.cs
- ComNativeDescriptor.cs
- QualificationDataItem.cs
- XsdDateTime.cs
- SortFieldComparer.cs
- InputLanguageCollection.cs
- ThumbButtonInfo.cs
- CharUnicodeInfo.cs
- ClaimSet.cs
- PreservationFileReader.cs
- ZeroOpNode.cs
- ColorAnimationBase.cs
- StreamUpdate.cs
- DebugHandleTracker.cs
- DecoderNLS.cs
- GreenMethods.cs
- MultipleViewPatternIdentifiers.cs
- ToolStripOverflowButton.cs
- ProfileSettings.cs
- TripleDESCryptoServiceProvider.cs
- Adorner.cs
- UnionExpr.cs
- ProfileInfo.cs
- FilterQuery.cs
- CommandManager.cs
- UrlRoutingHandler.cs
- GraphicsContext.cs
- SrgsText.cs
- HandlerFactoryCache.cs
- GlyphsSerializer.cs
- SessionStateSection.cs
- XhtmlConformanceSection.cs
- BamlWriter.cs
- DrawingContextDrawingContextWalker.cs
- AttachmentCollection.cs
- WinFormsSecurity.cs
- WindowsGrip.cs
- XMLSchema.cs
- ExceptionRoutedEventArgs.cs
- QilName.cs
- Size3D.cs
- ClickablePoint.cs
- MembershipAdapter.cs
- CommandHelper.cs
- Animatable.cs
- DelimitedListTraceListener.cs
- DesignerUtils.cs
- Size3DValueSerializer.cs
- SoundPlayerAction.cs
- ToolStripSeparatorRenderEventArgs.cs
- FlowDocumentPage.cs
- Brush.cs
- MessagePartDescription.cs
- RequestQueryProcessor.cs
- CheckedListBox.cs
- DBAsyncResult.cs
- ContentIterators.cs
- SqlGenericUtil.cs
- InternalCache.cs
- Operators.cs
- Border.cs
- WebPartEditVerb.cs
- PointHitTestParameters.cs
- httpapplicationstate.cs
- HttpListenerPrefixCollection.cs
- MemberInitExpression.cs
- TableSectionStyle.cs
- documentsequencetextview.cs
- GridItemPattern.cs
- SoapCodeExporter.cs
- GradientPanel.cs
- EditCommandColumn.cs
- GetWorkflowTree.cs
- FunctionUpdateCommand.cs
- WSSecurityJan2004.cs
- XmlElementAttribute.cs
- MailSettingsSection.cs
- MonthCalendar.cs
- ExpressionVisitor.cs
- SBCSCodePageEncoding.cs
- Geometry3D.cs
- ProjectionPath.cs
- SafeThemeHandle.cs
- AnimationException.cs
- ForeignConstraint.cs
- ListManagerBindingsCollection.cs