void CompleteAutomatedSync(WorkspaceUpdateResult Result, string SelectedFileName, AutomationRequest Request) { if (Result == WorkspaceUpdateResult.Success) { Request.SetOutput(new AutomationRequestOutput(AutomationRequestResult.Ok, Encoding.UTF8.GetBytes(SelectedFileName))); } else if (Result == WorkspaceUpdateResult.Canceled) { Request.SetOutput(new AutomationRequestOutput(AutomationRequestResult.Canceled)); } else { Request.SetOutput(new AutomationRequestOutput(AutomationRequestResult.Error)); } }
private void StartAutomatedSyncAfterStartup(WorkspaceControl Workspace, bool bCancel, AutomationRequest Request) { if (bCancel) { Request.SetOutput(new AutomationRequestOutput(AutomationRequestResult.Canceled)); } else { Workspace.SyncLatestChange(Result => CompleteAutomatedSync(Result, Workspace.SelectedFileName, Request)); } }
void PostAutomationRequest(AutomationRequest Request) { try { if (!CanFocus) { Request.SetOutput(new AutomationRequestOutput(AutomationRequestResult.Busy)); } else if (Request.Input.Type == AutomationRequestType.SyncProject) { AutomationRequestOutput Output = StartAutomatedSync(Request, true); if (Output != null) { Request.SetOutput(Output); } } else if (Request.Input.Type == AutomationRequestType.FindProject) { AutomationRequestOutput Output = FindProject(Request); Request.SetOutput(Output); } else if (Request.Input.Type == AutomationRequestType.OpenProject) { AutomationRequestOutput Output = StartAutomatedSync(Request, false); if (Output != null) { Request.SetOutput(Output); } } else { Request.SetOutput(new AutomationRequestOutput(AutomationRequestResult.Invalid)); } } catch (Exception Ex) { Log.WriteLine("Exception running automation request: {0}", Ex); Request.SetOutput(new AutomationRequestOutput(AutomationRequestResult.Invalid)); } }