internal WorkflowDetailsCache(UserDefinedSettings settings, Workflow.Workflow workflow) { Workflow = workflow; Operator = new UpdateOperator(settings); Workflow.PostSwitchProject += async(_, mergeRequests) => { Trace.TraceInformation("[WorkflowDetailsCache] Processing project switch"); List <Project> enabledProjects = Workflow.GetProjectsToUpdate(); Debug.Assert(enabledProjects.Any((x) => x.Id == Workflow.State.Project.Id)); cacheMergeRequests(Workflow.State.HostName, Workflow.State.Project, mergeRequests); await cacheVersionsAsync(Workflow.State.HostName, InternalDetails.GetMergeRequests(getProjectKey(Workflow.State))); }; Workflow.PostSwitchMergeRequest += async(_) => { Trace.TraceInformation("[WorkflowDetailsCache] Processing merge request switch"); List <Project> enabledProjects = Workflow.GetProjectsToUpdate(); Debug.Assert(enabledProjects.Any((x) => x.Id == Workflow.State.MergeRequest.Project_Id)); await cacheVersionsAsync(Workflow.State.HostName, Workflow.State.MergeRequest); }; }
public static Recording FromWorkflow(Workflow.Workflow Flow) { Recording Rec = FromXml(Flow.Info["RecordingXml"]); Rec.WorkflowId = Flow.Id; return(Rec); }
public TimeTrackingManager(UserDefinedSettings settings, Workflow.Workflow workflow) { Settings = settings; TimeTrackingOperator = new TimeTrackingOperator(Settings); workflow.PreLoadSystemNotes += () => PreLoadTotalTime?.Invoke(); workflow.FailedLoadSystemNotes += () => FailedLoadTotalTime?.Invoke(); workflow.PostLoadSystemNotes += (state, notes) => processSystemNotes(state.MergeRequestDescriptor, state.CurrentUser, notes); }
public Workflow.Workflow ToWorkflow() { List <int> LogIds = new List <int>(); //LoginAssociations.LogIds Workflow.Workflow Flow = new Workflow.Workflow(LoginAssociations.LogIds, "Proxy", this.LoginRequestAsso.DestinationLog.Request.UserAgent, Workflow.WorkflowSource.User, Workflow.WorkflowType.Login); Flow.SetInfo("RecordingXml", ToXml()); Flow.SetName(this.Name); return(Flow); }
public UpdateManager(Workflow.Workflow workflow, ISynchronizeInvoke synchronizeInvoke, UserDefinedSettings settings) { Settings = settings; Workflow = workflow; WorkflowDetailsChecker = new WorkflowDetailsChecker(); ProjectWatcher = new ProjectWatcher(); Cache = new WorkflowDetailsCache(settings, workflow); Timer.Elapsed += onTimer; Timer.SynchronizingObject = synchronizeInvoke; Timer.Start(); }
public Window OpenWindow(String windowType, Dictionary <String, Object> parameters) { Window window = GetWindow(windowType, parameters); if (window == null) { switch (windowType) { case "Workspace.Authentication": window = new Workspace.Authentication(); break; case "Workspace.GlobalSearch": window = new Workspace.GlobalSearch(); break; case "Workspace.SessionInformation": window = new Workspace.SessionInformation(); break; //case "Enterprise.EnterpriseManagement": window = new Enterprise.EnterpriseManagement (); break; //case "Configuration.ConfigurationManagement": window = new Configuration.ConfigurationManagement (); break; //case "Configuration.AuthorizedService": window = new Configuration.Windows.AuthorizedService (); break; //case "Configuration.Correspondence": window = new Configuration.Windows.Correspondence (); break; //case "Configuration.Workflow": window = new Configuration.Windows.Workflow (); break; //case "Configuration.WorkTeam": window = new Configuration.Windows.WorkTeam (); break; //case "Configuration.WorkOutcome": window = new Configuration.Windows.WorkOutcome (); break; //case "Forms.FormDesigner.FormDesigner": window = new Forms.FormDesigner.FormDesigner (); break; case "Workflow.Workflow": window = new Workflow.Workflow(); break; case "Work.WorkQueueItemDetail": window = new Work.WorkQueueItemDetail(); break; case "Member.MemberProfile": window = new Member.MemberProfile(); break; default: window = null; break; } if (window != null) { window.OnClose += new EventHandler <EventArgs> (Window_OnClose); window.OnMinimize += new EventHandler <EventArgs> (Window_OnMinimize); window.OnMaximize += new EventHandler <EventArgs> (Window_OnMaximize); window.OnGlobalProgressBarShow += new EventHandler <EventArgs> (Window_OnGlobalProgressBarShow); window.OnGlobalProgressBarHide += new EventHandler <EventArgs> (Window_OnGlobalProgressBarHide); window.Parameters = parameters; windows.Add(window); } } if ((OnWindowActivated != null) && (window != null)) { OnWindowActivated(window, new EventArgs()); } return(window); }
public ExpressionResolver(Workflow.Workflow workflow) { Workflow = workflow; }
void DoAnalysisOfRecording() { try { Analysis.LogAnalyzer LogAna = new Analysis.LogAnalyzer(); //Dictionary<string, Analysis.LogAssociations> LoginAssosDict = LogAna.Analyze(RecordingStartLogId, LoginRecordingDoneLogId, "Proxy"); //Check if the last log has been written to the db //We wait for max of 10 seconds if it is still not written then we proceed further so that an exception is thrown when processing int WaitTime = 0; while (WaitTime < 10000) { try { Session.FromProxyLog(RecordingCompleteLogId); break; } catch { } Thread.Sleep(1000); WaitTime = WaitTime + 1000; } Dictionary<string, Analysis.LogAssociations> LoginAssosDict = LogAna.Analyze(RecordingStartLogId, RecordingCompleteLogId, "Proxy"); List<string> Creds = new List<string>() { Username, Password }; string CorrectUa = ""; Analysis.LogAssociations LoginAssos = null; foreach (string Ua in LoginAssosDict.Keys) { if (LoginAssosDict[Ua].GetAssociationsWithParameterValues(Creds).Count > 0) { CorrectUa = Ua; LoginAssos = LoginAssosDict[Ua]; break; } } if (LoginAssos == null) { HandleAnalysisResult(false); return; } /* Dictionary<string, Analysis.LogAssociations> CsrfAssosDict = LogAna.Analyze(LoginRecordingDoneLogId, CsrfParameterRecordingDoneLogId, "Proxy"); Analysis.LogAssociations CsrfAssos = null; if (CsrfAssosDict.ContainsKey(CorrectUa)) { CsrfAssos = CsrfAssosDict[CorrectUa]; } if (CsrfParameterName.Length > 0 && CsrfAssos == null) { HandleAnalysisResult(false); return; } */ CurrentRecording = new Recording(LoginAssos, Username, Password, CsrfParameterName); if (!CurrentRecording.IsLoginRecordingReplayable()) { HandleAnalysisResult(false); return; } CurrentRecording.DoLogin(); if (CsrfParameterName.Length > 0) { string CT = CurrentRecording.GetCsrfToken(); if (CT.Length == 0) { HandleAnalysisResult(false); return; } } } catch (ThreadAbortException) { }//Ingore them catch (Exception Exp) { IronException.Report("Error analyzing recording", Exp); HandleAnalysisResult(false); return; } Workflow.Workflow Flow = CurrentRecording.ToWorkflow(); HandleAnalysisResult(true); }