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; } }
internal void OnPropertyUpdateRequested(byte[] value, IRequestStatus status) { if (this.PropertyChangeRequested != null) { this.PropertyChangeRequested(this, new WritableSharedDataChangeRequestEventArgs(value, status, this)); } }
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(); }
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); } }
public override bool Equals(object obj) { IRequestStatus rs = obj as IRequestStatus; if (rs != null) { return(object.Equals(StatusCode, rs.StatusCode)); } return(base.Equals(obj)); }
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); }
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(); } }
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; } }
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(); }
internal void Activate(IRequestStatus requestStatus) { if (this._actionsActivated != null) { SyncStatus status = new SyncStatus(requestStatus); try { this._actionsActivated(this, _eventArgs); } finally { status.Close(); } } }
/// <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; } }
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); } }
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(); } }
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; //} }
internal bool ExpandFromLoad(IRequestStatus requestStatus) { SyncStatus status = new SyncStatus(requestStatus); return this.OnExpandFromLoad(status); }
internal void Expand(IRequestStatus requestStatus) { AsyncStatus status = new AsyncStatus(requestStatus); this.OnExpand(status); }
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)); } }
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 }); } } }
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; } }
internal void RequestSharedDataUpdate(UpdateDataChangeNodeRequestInfo requestInfo, IRequestStatus requestStatus) { WritableSharedDataItem item = this.SharedData.GetItem(requestInfo.RequestedValue.ClipboardFormatId); if (item != null) { item.OnPropertyUpdateRequested(requestInfo.RequestedValue.GetValue(), requestStatus); } }
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)); }
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(); } }
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); } } } }
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)); } }
private void HandleShutdownRequest(IRequestStatus requestStatus) { this.OnShutdown(new SyncStatus(requestStatus)); this.InternalShutdown(); this._shutdown = true; this._scopeNode.CurrentSelectionDatas.Remove(this); }
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); }
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); } }
internal AsyncStatus(IRequestStatus requestStatus) : base(requestStatus) { }
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); } }
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)); }
internal WritableSharedDataChangeRequestEventArgs(byte[] newValue, IRequestStatus requestStatus, WritableSharedDataItem publishedDataItem) { this._newValue = newValue; this._requestStatus = requestStatus; this._publishedDataItem = publishedDataItem; }
internal void HandleLoadViewDataRequest(IRequestStatus requestStatus, byte[] dataBlob) { if (dataBlob != null) { this.OnLoadCustomData(new AsyncStatus(requestStatus), dataBlob); } }
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; }
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); } } } }
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); } } }
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); }