GetLedgerRequest.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / GetLedgerRequest.cs / 1 / GetLedgerRequest.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;

    // 
    // This class handles a UI request to retrieve all the ledger enteries for a card
    // 
    class GetLedgerRequest :UIAgentRequest 
    {
        Uri m_cardId; 
        LedgerEntryCollection m_ledger;

        //
        // Summary 
        //    Creates a GetLedgerRequest object.
        // 
        public GetLedgerRequest( IntPtr rpcHandle, Stream inArgs, Stream outArgs, ClientUIRequest parent ) 
            : base( rpcHandle, inArgs, outArgs, parent )
        { 
            IDT.Assert ( IntPtr.Zero != rpcHandle, "Null rpc handle" );
            IDT.Assert ( null != inArgs, "Null inArgs" );
            IDT.Assert ( null != outArgs, "Null out args" );
            IDT.TraceDebug ( "Processing a edger retrival request" ); 
        }
 
        protected override void OnInitializeAsSystem() 
        {
            base.OnInitializeAsSystem(); 
        }

        //
        // Summary 
        //   Read the card ID from in input stream.
        // 
        // Remarks 
        //    Expected sequence of data
        //      string - Id of the infocard 
        //
        protected override void OnMarshalInArgs()
        {
            IDT.Assert ( null != InArgs, "null request argument" ); 
            BinaryReader reader = new InfoCardBinaryReader( InArgs, Encoding.Unicode );
            m_cardId = Utility.DeserializeUri( reader ); 
        } 

        // 
        // Collect the ledger entries from the store.
        //
        protected override void OnProcess()
        { 
            IDT.Assert( null != m_cardId, "No CardId passed to GetLedgerRequest" );
 
            StoreConnection connection = StoreConnection.GetConnection(); 
            try
            { 

                //
                // Retrieve ledger entries from the database
                // 
                m_ledger = new LedgerEntryCollection( m_cardId );
                m_ledger.Get( connection ); 
            } 
            finally
            { 
                connection.Close();
            }

        } 

        // 
        // Summary 
        //   Write the ledger entries to the out stream.
        // 
        // Remarks
        //    Sequence of serialization
        //      ledgercollection
        // 
        protected override void OnMarshalOutArgs()
        { 
            IDT.Assert ( null != m_ledger, "No ledger collection exists to be serialized" ); 
            m_ledger.Serialize( OutArgs );
        } 

    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK