コード例 #1
0
ファイル: Status.cs プロジェクト: SiteView/ECC8.13
 internal void Close()
 {
     try
     {
         if (this._requestStatus != null)
         {
             ILease lifetimeService = (ILease) ((MarshalByRefObject) this._requestStatus).GetLifetimeService();
             if (lifetimeService != null)
             {
                 lifetimeService.Unregister(_requestStatusSponsor);
             }
         }
     }
     catch (InvalidOperationException exception)
     {
         TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Verbose, 12, exception.Message);
     }
     catch (RemotingException exception2)
     {
         TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Verbose, 12, exception2.Message);
     }
     finally
     {
         this._requestStatus = null;
     }
 }
コード例 #2
0
 internal void OnPropertyUpdateRequested(byte[] value, IRequestStatus status)
 {
     if (this.PropertyChangeRequested != null)
     {
         this.PropertyChangeRequested(this, new WritableSharedDataChangeRequestEventArgs(value, status, this));
     }
 }
コード例 #3
0
ファイル: Status.cs プロジェクト: SiteView/ECC8.13
 internal Status(IRequestStatus requestStatus)
 {
     this._statusText = string.Empty;
     this._title = string.Empty;
     if (requestStatus == null)
     {
         throw new InvalidOperationException(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.InternalStatusRequestStatusAlreadySet));
     }
     this._requestStatus = requestStatus;
     this.RegisterSponsor();
 }
コード例 #4
0
 internal void LoadCustomData(IRequestStatus requestStatus, byte[] dataBlob)
 {
     if (requestStatus == null)
     {
         throw new ArgumentNullException("requestStatus", Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.ScopeNodeRequestInterfaceNull));
     }
     if (dataBlob != null)
     {
         this.OnLoadCustomData(new AsyncStatus(requestStatus), dataBlob);
     }
 }
コード例 #5
0
        public override bool Equals(object obj)
        {
            IRequestStatus rs = obj as IRequestStatus;

            if (rs != null)
            {
                return(object.Equals(StatusCode, rs.StatusCode));
            }

            return(base.Equals(obj));
        }
コード例 #6
0
        public override object Deserialize(TextReader tr)
        {
            string value = tr.ReadToEnd();

            IRequestStatus rs = CreateAndAssociate() as IRequestStatus;

            if (rs != null)
            {
                // Decode the value as needed
                value = Decode(rs, value);

                // Push the object onto the serialization stack
                SerializationContext.Push(rs);

                try
                {
                    ISerializerFactory factory = GetService <ISerializerFactory>();
                    if (factory != null)
                    {
                        Match match = Regex.Match(value, @"(.*?[^\\]);(.*?[^\\]);(.+)");
                        if (!match.Success)
                        {
                            match = Regex.Match(value, @"(.*?[^\\]);(.+)");
                        }

                        if (match.Success)
                        {
                            IStringSerializer serializer = factory.Build(typeof(IStatusCode), SerializationContext) as IStringSerializer;
                            if (serializer != null)
                            {
                                StringReader reader = new StringReader(Unescape(match.Groups[1].Value));
                                rs.StatusCode = serializer.Deserialize(reader) as IStatusCode;
                                reader.Dispose();

                                rs.Description = Unescape(match.Groups[2].Value);
                                if (match.Groups.Count == 4)
                                {
                                    rs.ExtraData = Unescape(match.Groups[3].Value);
                                }

                                return(rs);
                            }
                        }
                    }
                }
                finally
                {
                    // Pop the object off the serialization stack
                    SerializationContext.Pop();
                }
            }
            return(null);
        }
コード例 #7
0
 internal void ProcessRequestMessage(PropertyPageMessageRequestInfo requestInfo, IRequestStatus requestStatus)
 {
     PropertySheet propertySheet = this.GetPropertySheet(requestInfo.SheetId);
     SyncStatus status = new SyncStatus(requestStatus);
     try
     {
         requestStatus.ProcessResponse(propertySheet.ProcessRequestMessage(requestInfo));
     }
     finally
     {
         status.Close();
     }
 }
コード例 #8
0
ファイル: RequestStatus.cs プロジェクト: MaitreDede/dday-ical
 public override void CopyFrom(ICopyable obj)
 {
     base.CopyFrom(obj);
     if (obj is IRequestStatus)
     {
         IRequestStatus rs = (IRequestStatus)obj;
         if (rs.StatusCode != null)
         {
             StatusCode = rs.StatusCode.Copy <IStatusCode>();
         }
         Description  = rs.Description;
         rs.ExtraData = rs.ExtraData;
     }
 }
コード例 #9
0
ファイル: Status.cs プロジェクト: SiteView/ECC8.13
 internal void Initialize(IRequestStatus requestStatus)
 {
     if (requestStatus == null)
     {
         throw new ArgumentNullException("requestStatus");
     }
     if (this._requestStatus != null)
     {
         throw new InvalidOperationException(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.InternalStatusRequestStatusAlreadySet));
     }
     this._requestStatus = requestStatus;
     this._requestStatus.Title = this._title;
     this._requestStatus.ReportProgress(this._workProcessed, this._totalWork, this._statusText);
     this.RegisterSponsor();
 }
コード例 #10
0
ファイル: ScopeNode.cs プロジェクト: SiteView/ECC8.13
 internal void Activate(IRequestStatus requestStatus)
 {
     if (this._actionsActivated != null)
     {
         SyncStatus status = new SyncStatus(requestStatus);
         try
         {
             this._actionsActivated(this, _eventArgs);
         }
         finally
         {
             status.Close();
         }
     }
 }
コード例 #11
0
        /// <summary>
        ///     Copies values from the target object to the
        ///     current object.
        /// </summary>
        /// <param name="obj"></param>
        public override sealed void CopyFrom(ICopyable obj)
        {
            base.CopyFrom(obj);
            var requestStatus = obj as IRequestStatus;

            if (requestStatus != null)
            {
                IRequestStatus rs = requestStatus;
                if (rs.StatusCode != null)
                {
                    StatusCode = rs.StatusCode.Copy <IStatusCode>( );
                }
                Description  = rs.Description;
                rs.ExtraData = rs.ExtraData;
            }
        }
コード例 #12
0
        public override string SerializeToString(object obj)
        {
            try
            {
                IRequestStatus rs = obj as IRequestStatus;
                if (rs != null)
                {
                    // Push the object onto the serialization stack
                    SerializationContext.Push(rs);

                    try
                    {
                        ISerializerFactory factory = GetService <ISerializerFactory>();
                        if (factory != null)
                        {
                            IStringSerializer serializer = factory.Build(typeof(IStatusCode), SerializationContext) as IStringSerializer;
                            if (serializer != null)
                            {
                                string value = Escape(serializer.SerializeToString(rs.StatusCode));
                                value += ";" + Escape(rs.Description);
                                if (!string.IsNullOrEmpty(rs.ExtraData))
                                {
                                    value += ";" + Escape(rs.ExtraData);
                                }

                                return(Encode(rs, value));
                            }
                        }
                    }
                    finally
                    {
                        // Pop the object off the serialization stack
                        SerializationContext.Pop();
                    }
                }

                return(null);
            }
            catch
            {
                return(null);
            }
        }
コード例 #13
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 private void ComparePropertySheetSelectionObjects(int currentSelectionId, int selectionIdToCompare, IRequestStatus requestStatus)
 {
     CompareSelectionObjectsResponse response = new CompareSelectionObjectsResponse();
     response.Result = false;
     if (requestStatus == null)
     {
         throw new ArgumentNullException("requestStatus");
     }
     SyncStatus status = new SyncStatus(requestStatus);
     try
     {
         if (((this.SelectionData.SelectionCardinality != SelectionCardinality.None) && (currentSelectionId == this.SelectionData.Id)) && (this.SelectionData.SelectionObject != null))
         {
             response.Result = SnapInBase.SnapInInstance.SheetManager.ComparePropertySheetSelectionObjects(this.SelectionData.SelectionObject, selectionIdToCompare);
         }
         requestStatus.ProcessResponse(response);
     }
     finally
     {
         status.Close();
     }
 }
コード例 #14
0
        private void SubscriptionStatusChanged(IRequestStatus status)
        {
            if (status.Error > 0)
            {
                dataReqError = true;
            }

            if (status.Error == RequestErrorType.NoSuchView)
            {
                no_such_view = true;
            }
            //switch (status.Error)
            //{

            //    case RequestErrorType.NoSuchRic:
            //        // The specified RIC is not valid.
            //        break;
            //    case RequestErrorType.NoSuchView:
            //        // The specified RIC is not valid for this view or the view does not exist.
            //        break;

            //    default:
            //    case RequestErrorType.None:
            //        // RequestErrorType.None indicates no RequestErrorType occurs.
            //        break;

            //}

            //switch (status.State)
            //{
            //    case RequestState.Blending:
            //        // Request is switching from historical data to realtime continuation.
            //        break;

            //    case RequestState.Live:
            //        // Request is alive and may send updates.
            //        break;
            //}
        }
コード例 #15
0
ファイル: ScopeNode.cs プロジェクト: SiteView/ECC8.13
 internal bool ExpandFromLoad(IRequestStatus requestStatus)
 {
     SyncStatus status = new SyncStatus(requestStatus);
     return this.OnExpandFromLoad(status);
 }
コード例 #16
0
ファイル: ScopeNode.cs プロジェクト: SiteView/ECC8.13
 internal void Expand(IRequestStatus requestStatus)
 {
     AsyncStatus status = new AsyncStatus(requestStatus);
     this.OnExpand(status);
 }
コード例 #17
0
ファイル: ScopeNode.cs プロジェクト: SiteView/ECC8.13
 internal void DoVerb(NodeRequestInfo info, IRequestStatus requestStatus)
 {
     if (info is DeleteNodeRequestInfo)
     {
         this.OnDelete(new SyncStatus(requestStatus));
     }
     else if (info is RefreshNodeRequestInfo)
     {
         this.OnRefresh(new AsyncStatus(requestStatus));
     }
     else if (info is PrintNodeRequestInfo)
     {
         this.OnPrint(new SyncStatus(requestStatus));
     }
     else if (info is RenameNodeRequestInfo)
     {
         this.OnRename(((RenameNodeRequestInfo) info).NewDisplayName, new SyncStatus(requestStatus));
     }
     else if (info is PasteNodeRequestInfo)
     {
         PasteNodeRequestInfo info2 = (PasteNodeRequestInfo) info;
         Microsoft.ManagementConsole.SharedData sharedData = new Microsoft.ManagementConsole.SharedData(info2.DataObjectId);
         base.SnapIn.AddSharedData(sharedData);
         sharedData.SetSnapInPlatform(base.SnapIn.SnapInClient.SnapInPlatform);
         PasteResponse response = new PasteResponse();
         try
         {
             response.AcceptPaste = this.OnPaste(sharedData, (Microsoft.ManagementConsole.DragAndDropVerb) info2.PasteType, new SyncStatus(requestStatus));
             requestStatus.ProcessResponse(response);
         }
         finally
         {
             base.SnapIn.RemoveSharedData(sharedData);
         }
     }
     else if (info is CutOrMoveNodeRequestInfo)
     {
         this.OnCut(new AsyncStatus(requestStatus));
     }
 }
コード例 #18
0
ファイル: ScopeNode.cs プロジェクト: SiteView/ECC8.13
 internal void DoAction(int actionId, IRequestStatus requestStatus)
 {
     ActionsPaneItem itemById = this.ActionsPaneItems.GetItemById(actionId);
     if (itemById == null)
     {
         itemById = this.ActionsPaneHelpItems.GetItemById(actionId);
     }
     Action action = itemById as Action;
     if (action != null)
     {
         AsyncStatus status = new AsyncStatus(requestStatus);
         action.RaiseTriggeredEvent(this, status);
         this.OnAction(action, status);
     }
     else
     {
         SyncAction action2 = itemById as SyncAction;
         if (action2 != null)
         {
             SyncStatus status2 = new SyncStatus(requestStatus);
             action2.RaiseTriggeredEvent(this, status2);
             this.OnSyncAction(action2, status2);
         }
         else
         {
             TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Error, 12, "action with Id {0} no longer exists on node with Id {1}", new object[] { actionId, base.Id });
         }
     }
 }
コード例 #19
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 internal void HandleSaveViewDataRequest(IRequestStatus requestStatus, bool clearModified)
 {
     byte[] data = null;
     if (this.IsModified)
     {
         data = this.OnSaveCustomData(new SyncStatus(requestStatus));
         if (data == null)
         {
             TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Information, 12, "Snap-in view failed to return a non-null byte[] of serialized data.");
             throw new InvalidOperationException(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.ExceptionCommonPersistenceNotSerializable));
         }
     }
     SaveViewDataResponse response = new SaveViewDataResponse();
     response.SetDataBlob(data);
     requestStatus.ProcessResponse(response);
     if (clearModified)
     {
         this.IsModified = false;
     }
 }
コード例 #20
0
ファイル: ScopeNode.cs プロジェクト: SiteView/ECC8.13
 internal void RequestSharedDataUpdate(UpdateDataChangeNodeRequestInfo requestInfo, IRequestStatus requestStatus)
 {
     WritableSharedDataItem item = this.SharedData.GetItem(requestInfo.RequestedValue.ClipboardFormatId);
     if (item != null)
     {
         item.OnPropertyUpdateRequested(requestInfo.RequestedValue.GetValue(), requestStatus);
     }
 }
コード例 #21
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 private void HandleInitializationRequest(IRequestStatus requestStatus)
 {
     this._initialized = true;
     if (this._descriptionBarText != string.Empty)
     {
         this.SynchronizeDescriptionBarText();
     }
     if ((this._actionsPaneItems != null) && (this._actionsPaneItems.Count > 0))
     {
         this.SynchronizeGlobalActions();
     }
     if ((this._modeActionsPaneItems != null) && (this._modeActionsPaneItems.Count > 0))
     {
         this.SynchronizeModeActions();
     }
     if (this._selectionData != null)
     {
         this._selectionData.PerformInitialSynchronization();
     }
     if (this._isModified)
     {
         this.SynchronizeModifiedState();
     }
     this.InternalInitialize();
     this.OnInitialize(new AsyncStatus(requestStatus));
 }
コード例 #22
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 private void HandleKeepAliveRequest(int selectionId, bool keepAlive, KeepAlivePurpose purpose, IRequestStatus requestStatus)
 {
     AuxiliarySelectionDataCollection clipboardSelectionDatas = null;
     SyncStatus status = new SyncStatus(requestStatus);
     try
     {
         if (purpose == KeepAlivePurpose.Clipboard)
         {
             clipboardSelectionDatas = this.ClipboardSelectionDatas;
         }
         else if (purpose == KeepAlivePurpose.RunningTask)
         {
             clipboardSelectionDatas = this._snapIn.RunningTaskSelectionDatas;
         }
         if (clipboardSelectionDatas != null)
         {
             if (keepAlive)
             {
                 if (this.SelectionData.Id == selectionId)
                 {
                     clipboardSelectionDatas[selectionId] = new AuxiliarySelectionData(this.SelectionData);
                 }
                 else
                 {
                     TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "Request Keep Alive {0} in view {1} selection id {2} ignored since selection has changed.", new object[] { keepAlive, this._viewInstanceId, selectionId });
                 }
             }
             else
             {
                 clipboardSelectionDatas.Remove(selectionId);
             }
         }
     }
     finally
     {
         status.Close();
     }
 }
コード例 #23
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 private void DoAction(int actionId, bool selectionDependent, int selectionId, IRequestStatus requestStatus)
 {
     ActionsPaneItem itemById = null;
     bool flag = false;
     if (selectionDependent)
     {
         itemById = this.SelectionData.ActionsPaneItems.GetItemById(actionId);
         if (itemById == null)
         {
             itemById = this.SelectionData.ActionsPaneHelpItems.GetItemById(actionId);
         }
     }
     else
     {
         itemById = this.ActionsPaneItems.GetItemById(actionId);
         if (itemById == null)
         {
             itemById = this.ModeActionsPaneItems.GetItemById(actionId);
             flag = true;
         }
     }
     ActionBase base2 = itemById as ActionBase;
     if (base2 == null)
     {
         TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "The request action with id {0} does not exist for view {1}.", new object[] { actionId.ToString(CultureInfo.CurrentUICulture), this._viewInstanceId });
     }
     else if (selectionDependent && ((this.SelectionData.SelectionCardinality == SelectionCardinality.None) || (selectionId != this.SelectionData.Id)))
     {
         TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "Action {0} in view {1} selection id {2} ignored since selection has changed.", new object[] { actionId, this._viewInstanceId, selectionId });
     }
     else
     {
         SyncAction action = base2 as SyncAction;
         if (action != null)
         {
             SyncStatus status = new SyncStatus(requestStatus);
             action.RaiseTriggeredEvent(this, status);
             if (selectionDependent)
             {
                 this.OnSyncSelectionAction(action, status);
             }
             else if (flag)
             {
                 this.OnSyncModeAction(action, status);
             }
             else
             {
                 this.OnSyncAction(action, status);
             }
         }
         else
         {
             Action action2 = (Action) base2;
             AsyncStatus status2 = new AsyncStatus(requestStatus);
             action2.RaiseTriggeredEvent(this, status2);
             if (selectionDependent)
             {
                 this.OnSelectionAction(action2, status2);
             }
             else if (flag)
             {
                 this.OnModeAction(action2, status2);
             }
             else
             {
                 this.OnAction(action2, status2);
             }
         }
     }
 }
コード例 #24
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 internal void RequestSharedDataUpdate(ClipboardData requestedValue, int selectionId, IRequestStatus requestStatus)
 {
     object selectionObject = null;
     WritableSharedData sharedData = null;
     if ((this.SelectionData.SelectionCardinality == SelectionCardinality.None) || (selectionId != this.SelectionData.Id))
     {
         AuxiliarySelectionData data2 = this.ClipboardSelectionDatas[selectionId];
         if (data2 == null)
         {
             data2 = this.SnapIn.SheetManager.ActiveViewPropertySheetSelectionDatas[selectionId];
         }
         if (data2 == null)
         {
             TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "Request for updating data format {0} in view {1} selection id {2} could not be handled.", new object[] { requestedValue.ClipboardFormatId, this._viewInstanceId, selectionId });
             return;
         }
         sharedData = data2.SharedData;
         selectionObject = data2.SelectionObject;
     }
     else
     {
         sharedData = this.SelectionData.SharedData;
         selectionObject = this.SelectionData.SelectionObject;
     }
     WritableSharedDataItem item = sharedData.GetItem(requestedValue.ClipboardFormatId);
     if (item == null)
     {
         TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "The requested data format {0} is no longer available on the current selection in view {1}.", new object[] { requestedValue.ClipboardFormatId, this._viewInstanceId });
     }
     else
     {
         this.OnSharedDataChangeRequested(selectionObject, item, requestedValue.GetValue(), new AsyncStatus(requestStatus));
     }
 }
コード例 #25
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 private void HandleShutdownRequest(IRequestStatus requestStatus)
 {
     this.OnShutdown(new SyncStatus(requestStatus));
     this.InternalShutdown();
     this._shutdown = true;
     this._scopeNode.CurrentSelectionDatas.Remove(this);
 }
コード例 #26
0
ファイル: ScopeNode.cs プロジェクト: SiteView/ECC8.13
 internal void GetPropertyPages(int sheetId, IRequestStatus requestStatus)
 {
     if (requestStatus == null)
     {
         throw new ArgumentNullException("requestStatus", Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.ScopeNodeRequestInterfaceNull));
     }
     PropertyPageCollection propertyPageCollection = new PropertyPageCollection();
     SyncStatus status = new SyncStatus(requestStatus);
     try
     {
         this.OnAddPropertyPages(propertyPageCollection);
         PropertyPagesResponse response = new PropertyPagesResponse();
         response.SetPropertyPages(propertyPageCollection.ToPropertyPageInfoArray());
         requestStatus.ProcessResponse(response);
     }
     finally
     {
         status.Close();
     }
     SnapInBase.SnapInInstance.SheetManager.CreatePropertySheet(sheetId, propertyPageCollection, null);
 }
コード例 #27
0
ファイル: ScopeNode.cs プロジェクト: SiteView/ECC8.13
 internal void GetSharedData(ReadSharedDataNodeRequestInfo requestInfo, IRequestStatus requestStatus)
 {
     WritableSharedDataItem item = this.SharedData.GetItem(requestInfo.RequestedClipboardFormatId);
     if (item != null)
     {
         SyncStatus status = new SyncStatus(requestStatus);
         byte[] buffer = this.OnGetSharedData(item, status);
         ClipboardData data = new ClipboardData();
         data.ClipboardFormatId = item.ClipboardFormatId;
         data.SetValue(buffer);
         ReadSharedDataResponse response = new ReadSharedDataResponse();
         response.RequestedClipboardData = data;
         requestStatus.ProcessResponse(response);
     }
 }
コード例 #28
0
ファイル: AsyncStatus.cs プロジェクト: SiteView/ECC8.13
 internal AsyncStatus(IRequestStatus requestStatus) : base(requestStatus)
 {
 }
コード例 #29
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 internal void GetSharedData(string clipboardFormatId, int selectionId, IRequestStatus requestStatus)
 {
     WritableSharedData sharedData = null;
     object selectionObject = null;
     if ((this.SelectionData.SelectionCardinality == SelectionCardinality.None) || (selectionId != this.SelectionData.Id))
     {
         AuxiliarySelectionData data2 = this.ClipboardSelectionDatas[selectionId];
         if (data2 == null)
         {
             data2 = this.SnapIn.SheetManager.ActiveViewPropertySheetSelectionDatas[selectionId];
         }
         if (data2 == null)
         {
             TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "Request for getting data format {0} in view {1} selection id {2} could not be handled.", new object[] { clipboardFormatId, this._viewInstanceId, selectionId });
             return;
         }
         sharedData = data2.SharedData;
         selectionObject = data2.SelectionObject;
     }
     else
     {
         sharedData = this.SelectionData.SharedData;
         selectionObject = this.SelectionData.SelectionObject;
     }
     WritableSharedDataItem item = sharedData.GetItem(clipboardFormatId);
     if (item == null)
     {
         TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "The requested data format {0} is no longer available on the current selection in view {1}.", new object[] { clipboardFormatId, this._viewInstanceId });
     }
     else
     {
         SyncStatus status = new SyncStatus(requestStatus);
         byte[] buffer = this.OnGetSharedData(selectionObject, item, status);
         ClipboardData data3 = new ClipboardData();
         data3.ClipboardFormatId = item.ClipboardFormatId;
         data3.SetValue(buffer);
         ReadSharedDataResponse response = new ReadSharedDataResponse();
         response.RequestedClipboardData = data3;
         requestStatus.ProcessResponse(response);
     }
 }
コード例 #30
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 internal void GetPropertyPages(int sheetId, long selectionId, IRequestStatus requestStatus)
 {
     if (requestStatus == null)
     {
         throw new ArgumentNullException("requestStatus");
     }
     PropertyPageCollection propertyPageCollection = new PropertyPageCollection();
     SyncStatus status = new SyncStatus(requestStatus);
     try
     {
         if ((this.SelectionData.SelectionCardinality == SelectionCardinality.None) || (selectionId != this.SelectionData.Id))
         {
             TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "Request for pages for sheet {0} in view {1} selection id {2} ignored since selection has changed.", new object[] { sheetId, this._viewInstanceId, selectionId });
             requestStatus.ProcessResponse(new PropertyPagesResponse());
             return;
         }
         this.OnAddPropertyPages(propertyPageCollection);
         PropertyPagesResponse response = new PropertyPagesResponse();
         response.SetPropertyPages(propertyPageCollection.ToPropertyPageInfoArray());
         requestStatus.ProcessResponse(response);
     }
     finally
     {
         status.Close();
     }
     SnapInBase.SnapInInstance.SheetManager.CreatePropertySheet(sheetId, propertyPageCollection, new AuxiliarySelectionData(this.SelectionData));
 }
コード例 #31
0
 internal WritableSharedDataChangeRequestEventArgs(byte[] newValue, IRequestStatus requestStatus, WritableSharedDataItem publishedDataItem)
 {
     this._newValue = newValue;
     this._requestStatus = requestStatus;
     this._publishedDataItem = publishedDataItem;
 }
コード例 #32
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 internal void HandleLoadViewDataRequest(IRequestStatus requestStatus, byte[] dataBlob)
 {
     if (dataBlob != null)
     {
         this.OnLoadCustomData(new AsyncStatus(requestStatus), dataBlob);
     }
 }
コード例 #33
0
ファイル: MmcListView.cs プロジェクト: SiteView/ECC8.13
 private void HandleSelectionChange(int[] scopeNodeIds, int[] resultNodeIds, IRequestStatus requestStatus)
 {
     this._selectedNodes.Clear();
     foreach (ScopeNode node in base.ScopeNode.Children)
     {
         if (Array.IndexOf<int>(scopeNodeIds, node.Id) != -1)
         {
             this._selectedNodes.Add(node);
         }
     }
     foreach (int num in resultNodeIds)
     {
         ResultNode item = this._resultNodes.GetNode(num);
         if (item == null)
         {
             TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Verbose, 12, "A selected ResultNode with id {0} in list view {1} appears to have been removed.", new object[] { num, base.ViewInstanceId });
         }
         else
         {
             this._selectedNodes.Add(item);
         }
     }
     this._states |= ListViewStates.SnapInProcessingSelectionChange;
     SyncStatus status = new SyncStatus(requestStatus);
     this.OnSelectionChanged(status);
     this._states &= ~ListViewStates.SnapInProcessingSelectionChange;
 }
コード例 #34
0
ファイル: View.cs プロジェクト: SiteView/ECC8.13
 private void DoVerb(RequestInfo requestInfo, IRequestStatus requestStatus)
 {
     if (requestInfo is CutOrMoveViewSelectionRequestInfo)
     {
         CutOrMoveViewSelectionRequestInfo info = (CutOrMoveViewSelectionRequestInfo) requestInfo;
         AuxiliarySelectionData data = this.ClipboardSelectionDatas[info.SelectionId];
         if (data != null)
         {
             this.OnCut(data.SelectionObject, new AsyncStatus(requestStatus));
         }
         else
         {
             TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "Request CutOrMove in view {0} ignore since selection id {1} could not be found.", new object[] { this._viewInstanceId, info.SelectionId });
         }
     }
     else
     {
         int selectionId = ((ViewSelectionRequestInfo) requestInfo).SelectionId;
         if ((this.SelectionData.SelectionCardinality == SelectionCardinality.None) || (selectionId != this.SelectionData.Id))
         {
             TraceSources.ExecutiveSource.TraceEvent(TraceEventType.Warning, 12, "Request {0} in view {1} selection id {2} ignored since selection has changed.", new object[] { requestInfo.GetType().FullName, this._viewInstanceId, selectionId });
         }
         else if (requestInfo is DeleteViewSelectionRequestInfo)
         {
             this.OnDelete(new SyncStatus(requestStatus));
         }
         else if (requestInfo is RefreshViewSelectionRequestInfo)
         {
             this.OnRefresh(new AsyncStatus(requestStatus));
         }
         else if (requestInfo is PrintViewSelectionRequestInfo)
         {
             this.OnPrint(new SyncStatus(requestStatus));
         }
         else if (requestInfo is RenameViewSelectionRequestInfo)
         {
             this.OnRename(((RenameViewSelectionRequestInfo) requestInfo).NewDisplayName, new SyncStatus(requestStatus));
         }
         else if (requestInfo is PasteViewSelectionRequestInfo)
         {
             PasteViewSelectionRequestInfo info2 = (PasteViewSelectionRequestInfo) requestInfo;
             SharedData sharedData = new SharedData(info2.DataObjectId);
             this.ScopeNode.SnapIn.AddSharedData(sharedData);
             sharedData.SetSnapInPlatform(this.ScopeNode.SnapIn.SnapInClient.SnapInPlatform);
             PasteResponse response = new PasteResponse();
             try
             {
                 response.AcceptPaste = this.OnPaste(sharedData, (Microsoft.ManagementConsole.DragAndDropVerb) info2.PasteType, new SyncStatus(requestStatus));
                 requestStatus.ProcessResponse(response);
             }
             finally
             {
                 this.ScopeNode.SnapIn.RemoveSharedData(sharedData);
             }
         }
     }
 }
コード例 #35
0
ファイル: NodeSyncManager.cs プロジェクト: SiteView/ECC8.13
 internal void ProcessRequest(NodeRequestInfo info, IRequestStatus requestStatus)
 {
     if (!this._initialized)
     {
         throw new Exception(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.NodeSyncManagerNotInitialized));
     }
     ScopeNode node = this.GetNode(info.ScopeNodeId);
     if (node != null)
     {
         if (info is ExpandScopeNodeRequestInfo)
         {
             node.Expand(requestStatus);
         }
         else if (info is ActionNodeRequestInfo)
         {
             node.DoAction(((ActionNodeRequestInfo) info).ActionId, requestStatus);
         }
         else if (info is ReadSharedDataNodeRequestInfo)
         {
             node.GetSharedData((ReadSharedDataNodeRequestInfo) info, requestStatus);
         }
         else if (info is UpdateDataChangeNodeRequestInfo)
         {
             node.RequestSharedDataUpdate((UpdateDataChangeNodeRequestInfo) info, requestStatus);
         }
         else if (info is PagesForNodeRequestInfo)
         {
             node.GetPropertyPages(((PagesForNodeRequestInfo) info).SheetId, requestStatus);
         }
         else if ((((info is DeleteNodeRequestInfo) || (info is RefreshNodeRequestInfo)) || ((info is PrintNodeRequestInfo) || (info is RenameNodeRequestInfo))) || ((info is PasteNodeRequestInfo) || (info is CutOrMoveNodeRequestInfo)))
         {
             node.DoVerb(info, requestStatus);
         }
         else if (info is ExpandFromLoadScopeNodeRequestInfo)
         {
             ExpandFromLoadScopeNodeRequestResponse response = new ExpandFromLoadScopeNodeRequestResponse();
             response.Handled = node.ExpandFromLoad(requestStatus);
             requestStatus.ProcessResponse(response);
         }
         else if (info is ActivateNodeRequestInfo)
         {
             node.Activate(requestStatus);
         }
     }
 }
コード例 #36
0
ファイル: MmcListView.cs プロジェクト: SiteView/ECC8.13
 private void HandleSortRequest(int columnIndex, bool descending, IRequestStatus requestStatus)
 {
     SyncStatus status = new SyncStatus(requestStatus);
     try
     {
         int[] ids = this.DoSort(columnIndex, descending);
         SortListViewResponse response = new SortListViewResponse();
         response.SetIds(ids);
         requestStatus.ProcessResponse(response);
     }
     finally
     {
         status.Close();
     }
     this.OnSortCompleted(columnIndex, descending);
 }