AppAction.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 / SMSvcHost / System / ServiceModel / Activation / AppAction.cs / 1 / AppAction.cs

                            //------------------------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------

namespace System.ServiceModel.Activation 
{
    using System; 
    using System.Collections.Generic; 

    enum AppActionType 
    {
        // An App is deleted
        Deleted,
 
        // Binding, or AppPool, or RequestsBlocked is changed
        SettingsChanged 
    } 

    class AppAction 
    {
        AppActionType actionType;
        string path;
        string appPoolId; 
        Nullable requestsBlocked;
        string[] bindings; 
 
        AppAction(AppActionType actionType)
        { 
            this.actionType = actionType;
        }

        public static AppAction CreateDeletedAction() 
        {
            return new AppAction(AppActionType.Deleted); 
        } 

        public static AppAction CreateBindingsChangedAction(string[] bindings) 
        {
            AppAction action = new AppAction(AppActionType.SettingsChanged);
            action.bindings = bindings;
            return action; 
        }
 
        public static AppAction CreateAppPoolChangedAction(string appPoolId) 
        {
            AppAction action = new AppAction(AppActionType.SettingsChanged); 
            action.appPoolId = appPoolId;
            return action;
        }
 
        public AppActionType ActionType
        { 
            get 
            {
                return this.actionType; 
            }
        }

        public string Path 
        {
            get 
            { 
                return this.path;
            } 
        }

        public string AppPoolId
        { 
            get
            { 
                return this.appPoolId; 
            }
        } 

        public string[] Bindings
        {
            get 
            {
                return this.bindings; 
            } 
        }
 
        public Nullable RequestsBlocked
        {
            get
            { 
                return this.requestsBlocked;
            } 
        } 

        public void MergeFromCreatedAction(string path, int siteId, string appPoolId, bool requestsBlocked, string[] bindings) 
        {
            DiagnosticUtility.DebugAssert(this.ActionType == AppActionType.Deleted, "We should get ApplicationCreated notification only when the App is to be deleted.");

            // Delete + Created = SettingsChanged 
            this.actionType = AppActionType.SettingsChanged;
            SetSettings(path, appPoolId, requestsBlocked, bindings); 
 
            // SiteId is ignored because the siteId can't be changed for the same appKey.
        } 

        public void MergeFromDeletedAction()
        {
            DiagnosticUtility.DebugAssert(this.ActionType == AppActionType.SettingsChanged, 
                "We should not get two consecutive ApplicationDeleted notifications.");
 
            this.actionType = AppActionType.Deleted; 
        }
 
        public void MergeFromBindingChangedAction(string[] bindings)
        {
            DiagnosticUtility.DebugAssert(this.ActionType == AppActionType.SettingsChanged,
                "We should not get two consecutive ApplicationDeleted notifications."); 

            this.bindings = bindings; 
        } 

        public void MergeFromAppPoolChangedAction(string appPoolId) 
        {
            DiagnosticUtility.DebugAssert(this.ActionType == AppActionType.SettingsChanged,
                "We should not get two consecutive ApplicationDeleted notifications.");
 
            this.appPoolId = appPoolId;
        } 
 
        public void MergeFromRequestsBlockedAction(bool requestsBlocked)
        { 
            DiagnosticUtility.DebugAssert(this.ActionType == AppActionType.SettingsChanged,
                "We should not get two consecutive ApplicationDeleted notifications.");

            this.requestsBlocked = requestsBlocked; 
        }
 
        void SetSettings(string path, string appPoolId, bool requestsBlocked, string[] bindings) 
        {
            this.path = path; 
            this.appPoolId = appPoolId;
            this.requestsBlocked = requestsBlocked;
            this.bindings = bindings;
        } 
    }
} 

// 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