async Task OnMessage(ProcessEventArgs arg) { if (ProcessEvent != null) { await ProcessEvent.Invoke(arg).ConfigureAwait(false); } }
public void UpdateProcessEvent() { ProcessEvent addedProcessEvent = new ProcessEvent() { EventId = Guid.NewGuid(), ProcessDate = DateTime.Now, ProcessStatus = 0, ProcessMessage = "There was an error processing the event" }; _service.UpdateProcessEvent(addedProcessEvent); Assert.NotEqual(Guid.Empty, addedProcessEvent.ProcessEventId); addedProcessEvent.ProcessMessage = ""; addedProcessEvent.ProcessStatus = 1; _service.UpdateProcessEvent(addedProcessEvent); Assert.NotEqual(Guid.Empty, addedProcessEvent.ProcessEventId); ProcessEvent foundProcessEvent = JsonConvert.DeserializeObject <List <ProcessEvent> >(JsonConvert.SerializeObject(_service.GetProcessEventDetail(addedProcessEvent.ProcessEventId))).FirstOrDefault(); Assert.NotNull(foundProcessEvent); Assert.Equal(addedProcessEvent.ProcessEventId, foundProcessEvent.ProcessEventId); Assert.Equal(addedProcessEvent.EventId, foundProcessEvent.EventId); Assert.Equal(addedProcessEvent.ProcessStatus, foundProcessEvent.ProcessStatus); Assert.Equal(addedProcessEvent.ProcessMessage, foundProcessEvent.ProcessMessage); }
public void Close() { this.stayAlive = false; ProcessEvent ev = new ProcessEvent(); this.PutEvent(ev); this.CloseSpecific(); }
public override void Run() { ProcessEventArgs e1 = new ProcessEventArgs(process, Client.RemoteEndPoint.ToString()); ProcessEvent.OnGetProcesses(e1); process = null; //clean memory }
public QuestManager() { NPCCacheList = new List <NPCData>(); _positionStorage = new PositionEntity(); _processEvent = new ProcessEvent(); //setUP(); Debug.Log("End building QuestManager"); }
/// <summary> /// <para>The event indicates that the debugger has begun debugging a new process. Either one that it has launched, or one that it has attached to.</para> /// </summary> /// <param name="name"><para>The logical name of the process. This is usually the full path to process's executable file. Example: /home/example/myproj/program.js.</para></param> /// <param name="systemProcessId"><para>The system process id of the debugged process. This property will be missing for non-system processes.</para></param> /// <param name="isLocalProcess"><para>If true, the process is running on the same computer as the debug adapter.</para></param> /// <param name="startMethod"> /// <para>Describes how the debug engine started debugging this process.</para> /// <para>'launch': Process was launched under the debugger.</para> /// <para>'attach': Debugger attached to an existing process.</para> /// <para>'attachForSuspendedLaunch': A project launcher component has launched a new process in a suspended state and then asked the debugger to attach.</para> /// </param> /// <param name="pointerSize"> /// <para>The size of a pointer or address for this process, in bits. This value may be used by clients when formatting addresses for display.</para> /// </param> public static void SendProcessEvent(this ProtocolServer server, string name, long?systemProcessId = null, bool?isLocalProcess = null, StartMethod?startMethod = null, long?pointerSize = null) { ProcessEvent processEvent = new ProcessEvent(new ProcessEvent.ProcessEventBody(name, systemProcessId, isLocalProcess, startMethod, pointerSize)); server.SendMessage(processEvent); }
public ModelInterface GetMessage() { ProcessEvent ev = this.PeekEvent(); NetworkPacket np = ev as NetworkPacket; if (np != null) { string msg = np.GetMessage(); ModelInterface model = ConvertStringToModel.ToModel(msg); return(model); } return(null); }
async Task OnMessage(ProcessEventArgs arg) { if (!arg.HasEvent) { return; } await _lockContext.Pending(arg).ConfigureAwait(false); if (ProcessEvent != null) { await ProcessEvent.Invoke(arg).ConfigureAwait(false); } }
public void AddProcessEvent() { ProcessEvent addedProcessEvent = new ProcessEvent() { EventId = Guid.NewGuid(), ProcessDate = DateTime.Now, ProcessStatus = 0, ProcessMessage = "There was an error processing the event" }; _service.UpdateProcessEvent(addedProcessEvent); Assert.NotEqual(Guid.Empty, addedProcessEvent.ProcessEventId); }
public void UpdateProcessEvent(ProcessEvent processEventDetail) { ProcessEvent updateProcessEvent = processEventDetail; if (updateProcessEvent.ProcessEventId == Guid.Empty) { _context.ProcessEvent.Add(updateProcessEvent); } else { _context.ProcessEvent.Attach(updateProcessEvent); } _context.SaveChanges(); }
private ProcessEvent WaitEventDequeEvent() { lock (this) { if (this.debug) { MaloWDebug.Log("ERROR: Proc: " + this.ID + " Mutex for WaitEventDequeEvent Failed, multiple procs modifying data."); } this.debug = true; ProcessEvent ev = this.eventQueue.Dequeue(); this.debug = false; return(ev); } }
public static void OnFocusChangedHandler(object src, AutomationFocusChangedEventArgs args) { AutomationElement element = src as AutomationElement; if (element != null) { // To disable user unhandled expection when debugging // https://stackoverflow.com/questions/16970642/visual-studio-not-breaking-on-user-unhandled-exceptions try { string name = element.Current.Name; int processId = element.Current.ProcessId; using (Process process = Process.GetProcessById(processId)) { if ((process.ProcessName == "cmd" || process.ProcessName == "conhost") && name.Contains("Command Prompt")) { ProcessEvent?.Invoke(null, new ProcessEventArgs { ProcessEvent = ProcessEvents.CMD_WINDOW_FOCUS }); Debug.WriteLine("Command Prompt is in focus."); } else if (process.ProcessName == "explorer" && (name == "Open:" || name == "Cancel" || name == "Browse..." || name == "OK")) { ProcessEvent?.Invoke(null, new ProcessEventArgs { ProcessEvent = ProcessEvents.RUN_WINDOW_FOCUS }); Debug.WriteLine("Run Window is in focus."); //Console.WriteLine("Name: {0}, ProcessName: {1} is in focus", name, process.ProcessName); } else { ProcessEvent?.Invoke(null, new ProcessEventArgs { ProcessEvent = ProcessEvents.OTHER_FOCUS }); } } } catch (System.Windows.Automation.ElementNotAvailableException) { Debug.Write("The target element corresponds to UI that is no longer available."); } } }
public ProcessEvent PeekEvent() { lock (this) { if (this.debug) { MaloWDebug.Log("ERROR: Proc: " + this.ID + " Mutex for PeekEvent Failed, multiple procs modifying data."); } this.debug = true; ProcessEvent ev = null; if (this.eventQueue.Count != 0) { ev = this.eventQueue.Dequeue(); } this.debug = false; return(ev); } }
private void Kernel_ProcessStart(Microsoft.Diagnostics.Tracing.Parsers.Kernel.ProcessTraceData obj) { if (Filters.Contains(obj.ImageFileName)) { ProcessData ev = new ProcessData() { Name = obj.ImageFileName, CommandLine = obj.CommandLine, Start = obj.TimeStamp, ProcessID = obj.ProcessID, UniqueKey = obj.UniqueProcessKey, }; ProcessDataMap.Add(obj.ProcessID, ev); ProcessEvent?.Invoke(ev); Task.Run(() => CollectArtifacts(ev)); } }
/// <summary> /// Sends a command line to the debug console. /// Command is parsed into arguments, sent to any processing delegates, /// and then any results are sent to the output delegates to display/log/etc. /// </summary> /// <param name="commandLine"></param> static public void send(string commandLine) { // Split commandLine into arguments. string[] arguments = commandLine.Split(' '); // List is built from any Processors that return a 1+ length array. List <string> Results = new List <string>(); // Runs each delegate in turn, sending the arguments and adding any // response to the Results. foreach (ProcessDelegate del in ProcessEvent.GetInvocationList()) { foreach (string line in del(arguments)) { Results.Add(line); } } // Send the Results to each of the output delegates. OutputEvent(Results.ToArray()); }
/// <summary> /// ストーリーボードが動作する SitrineWindow オブジェクトを指定して新しい Storyboard クラスのインスタンスを初期化します。 /// </summary> /// <param name="Window">動作対象の SitrineWindow オブジェクト。</param> public Storyboard(SitrineWindow window) { if (window == null) { throw new ArgumentNullException("window"); } this.Actions = new LinkedList <Action>(); this.Listener = new List <Func <bool> >(); this.AutoEnd = true; this.Window = window; this.waitTime = 0; this.process = new ProcessEvent(this, this.Window); this.texture = new TextureEvent(this, this.Window); this.keyboard = new KeyboardEvent(this, this.Window); this.music = new MusicEvent(this, this.Window); this.screen = new ScreenEvent(this, this.Window); Trace.WriteLine("Storyboard", "Init"); }
//private static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) //{ // Log.Error(e.ExceptionObject); // if (e.IsTerminating) // Log.FatalFormat("Server process terminated due to fatal error [PID:{0}]", Process.GetCurrentProcess().Id); //} private static void OnProcessEvent(ProcessEvent e) { Log.InfoFormat("Process event '{0}' intercepted", e); switch (e) { case ProcessEvent.CtrlBreak: case ProcessEvent.CtrlClose: case ProcessEvent.CtrlLogoff: case ProcessEvent.CtrlShutdown: case ProcessEvent.CtrlC: { if (Server != null) { Server.Stop(); } break; } } }
public void PutEvent(ProcessEvent ev, bool important) { lock (this) { bool go = true; if (!important) { if (this.eventQueue.Count > 20) { go = false; } } if (go) { if (this.debug) { MaloWDebug.Log("ERROR: Proc: " + this.ID + " Mutex for PutEvent Failed, multiple procs modifying data."); } this.debug = true; int queueSize = this.eventQueue.Count; this.eventQueue.Enqueue(ev); if (queueSize > this.warningThresholdEventQueue) { MaloWDebug.Log("Warning, EventQueue of process " + this.ID + " has " + this.eventQueue.Count + " unread events."); this.warningThresholdEventQueue *= 2; } if (this.state == WAITING) { this.Resume(); } this.debug = false; } } }
public static void EventArrived(object sender, EventArrivedEventArgs e) { string instanceName = ((ManagementBaseObject)e.NewEvent["TargetInstance"])["Name"].ToString().ToLower(); switch (instanceName) { case "cmd.exe": ProcessEvent?.Invoke(null, new ProcessEventArgs { ProcessEvent = ProcessEvents.CMD_PROCESS }); Debug.WriteLine("Command prompt has been started ..."); break; //case "eventvwr.msc": // Debug.WriteLine("Event viewer has been started ..."); // break; case "mmc.exe": ProcessEvent?.Invoke(null, new ProcessEventArgs { ProcessEvent = ProcessEvents.MANAGEMENT_CONSOLE_PROCESS }); Debug.WriteLine("Management console has been started ..."); break; case "netstat.exe": ProcessEvent?.Invoke(null, new ProcessEventArgs { ProcessEvent = ProcessEvents.NETSTAT_PROCESS }); Debug.WriteLine("Netstat has been started ..."); break; // case "services.exe": // Debug.WriteLine("Services has been started ..."); // break; default: break; } //Debug.WriteLine("Process started", instanceName); }
public RoleProviderAttribute(ProcessLevel level, ProcessEvent eventType) { this.name = level.ToString(); this.level = level; this.eventType = eventType; }
public RoleProviderAttribute(string name, ProcessEvent eventType) { this.name = name; this.eventType = eventType; this.level = ProcessLevel.UMP_UNDEFINED; }
static int Main(string[] args) { Console.Title = "SysManager"; //using (var sw = new StreamWriter(@"E:\EventLogInCS\PropertyInfo.txt")) //{ // sw.Write(FillPropertyInfo(new NetworkEvent())); //} //Environment.Exit(0); GetRuleConfig(); ProcessEvent proEvent = new ProcessEvent(); RegistryEvent regEvent = new RegistryEvent(); NetworkEvent netEvent = new NetworkEvent(); FileEvent fileEvent = new FileEvent(); Console.WriteLine("Please Choose One Operation To Manage Your System:"); int opi; while (true) { Console.WriteLine("For Process Enter 1"); Console.WriteLine("For Reistry Enter 2"); Console.WriteLine("For Network Enter 3"); Console.WriteLine("For File Enter 4"); Console.Write("Enter Your Choice:"); var op = Console.ReadLine(); if (int.TryParse(op, out opi)) { if (opi < 5 && opi > 0) { gec.Operation = opi; PipLineManager.operation = opi; break; } } Console.WriteLine(">>>>>>>>>> Please Enter A Right One! <<<<<<<<<<<"); } Console.Clear(); Thread th = new Thread(FireForm); th.SetApartmentState(ApartmentState.STA); th.Start(); var pipe = PipLineManager.FileAccessCount; var processUseNetWork = PipLineManager.ProcessUseNetwork; var processDic = PipLineManager.ProcessDictionary; var NetUsage = PipLineManager.NetworkUsage; var netu = PipLineManager.netU; var regDic = PipLineManager.RegistryUsage; var fileEvents = PipLineManager.FileEvents; uint pid = 0; Action saveLogAction = null; saveLogAction = async() => { var conqueEvents = gec.ConqueEvent; if (conqueEvents.Count > 0) { string da; while (conqueEvents.TryDequeue(out da)) { var desxml = JsonConvert.DeserializeXmlNode(da); #region Process if (opi == 1) { int procid = desxml.DocumentElement.HasAttribute("ProcessID") ? int.Parse(desxml.DocumentElement.GetAttribute("ProcessID")) : -1; proEvent.ProcessId = procid; int pprocid; if (int.TryParse(desxml.DocumentElement.GetAttribute(ProcessEventProperty.ParentProcessID), out pprocid)) { var imagename = desxml.DocumentElement.HasAttribute("ImageName") ? desxml.DocumentElement.GetAttribute("ImageName") : ""; proEvent.ProcessImage = imagename; await Task.Run(() => { GetProcessInfo(proEvent, proEvent.ProcessId, pprocid, EventName.Process, imagename, proEvent.ProcessId.ToString()); }); } else { await Task.Run(() => { GetProcessInfo(proEvent, procid, null, EventName.Process, null); }); } proEvent.ThreadId = desxml.DocumentElement.HasAttribute("TID") ? int.Parse(desxml.DocumentElement.GetAttribute("TID")) : -1; proEvent.StartAddress = desxml.DocumentElement.HasAttribute("StartAddress") ? desxml.DocumentElement.GetAttribute("StartAddress") : ""; proEvent.Win32StartAddress = desxml.DocumentElement.HasAttribute("Win32StartAddress") ? desxml.DocumentElement.GetAttribute("Win32StartAddress") : ""; proEvent.CycleTime = desxml.DocumentElement.HasAttribute("CycleTime") ? long.Parse(desxml.DocumentElement.GetAttribute("CycleTime")) : -1; proEvent.FormattedMessage = desxml.DocumentElement.HasAttribute("FormattedMessage") ? desxml.DocumentElement.GetAttribute("FormattedMessage") : ""; proEvent.CreateTime = desxml.DocumentElement.HasAttribute("CreateTime") ? desxml.DocumentElement.GetAttribute("CreateTime") : ""; proEvent.TaskName = desxml.DocumentElement.HasAttribute("TaskName") ? desxml.DocumentElement.GetAttribute("TaskName") : ""; proEvent.SessionId = desxml.DocumentElement.HasAttribute("SessionId") ? int.Parse(desxml.DocumentElement.GetAttribute("SessionId")) : -1; proEvent.ProviderName = desxml.DocumentElement.HasAttribute("ProviderName") ? desxml.DocumentElement.GetAttribute("ProviderName") : ""; proEvent.EventName = desxml.DocumentElement.HasAttribute("EventName") ? desxml.DocumentElement.GetAttribute("EventName") : ""; if (proEvent.EventName == "ProcessStop/Stop") { proEvent.ExitTime = desxml.DocumentElement.HasAttribute("Time") ? desxml.DocumentElement.GetAttribute("Time") : ""; proEvent.ExitCode = desxml.DocumentElement.HasAttribute("ExitCode") ? int.Parse(desxml.DocumentElement.GetAttribute("ExitCode")) : -1; //string mgs; //processDic.TryRemove(proEvent.ProcessName, out mgs); } else { processDic.AddOrUpdate(proEvent.ProcessName ?? "--", proEvent.ProcessHistory, (key, value) => proEvent.ProcessHistory); } } #endregion #region Registry else if (opi == 2) { regEvent.ProcessId = desxml.DocumentElement.HasAttribute("PID") ? int.Parse(desxml.DocumentElement.GetAttribute("PID")) : -1; await Task.Run(() => { GetProcessInfo(regEvent, regEvent.ProcessId, null, EventName.Registry, null); }); regEvent.BaseName = desxml.DocumentElement.HasAttribute("BaseName") ? desxml.DocumentElement.GetAttribute("BaseName") : ""; regEvent.BaseObject = desxml.DocumentElement.HasAttribute("BaseObject") ? desxml.DocumentElement.GetAttribute("BaseObject") : ""; regEvent.CapturedData = desxml.DocumentElement.HasAttribute("CapturedData") ? desxml.DocumentElement.GetAttribute("CapturedData") : ""; regEvent.CapturedDataSize = desxml.DocumentElement.HasAttribute("CapturedDataSize") ? int.Parse(desxml.DocumentElement.GetAttribute("CapturedDataSize")) : -1; regEvent.DataSize = desxml.DocumentElement.HasAttribute("DataSize") ? int.Parse(desxml.DocumentElement.GetAttribute("DataSize")) : -1; regEvent.EventName = desxml.DocumentElement.HasAttribute("EventName") ? desxml.DocumentElement.GetAttribute("EventName") : ""; regEvent.ProviderName = desxml.DocumentElement.HasAttribute("ProviderName") ? desxml.DocumentElement.GetAttribute("ProviderName") : ""; regEvent.Disposition = desxml.DocumentElement.HasAttribute("Disposition") ? int.Parse(desxml.DocumentElement.GetAttribute("Disposition")) : -1; regEvent.KeyName = desxml.DocumentElement.HasAttribute("KeyName") ? desxml.DocumentElement.GetAttribute("KeyName") : ""; regEvent.KeyObject = desxml.DocumentElement.HasAttribute("KeyObject") ? desxml.DocumentElement.GetAttribute("KeyObject") : ""; regEvent.PreviousData = desxml.DocumentElement.HasAttribute("PreviousData") ? desxml.DocumentElement.GetAttribute("PreviousData") : ""; regEvent.PreviousDataCapturedSize = desxml.DocumentElement.HasAttribute("PreviousDataCapturedSize") ? int.Parse(desxml.DocumentElement.GetAttribute("PreviousDataCapturedSize")) : -1; regEvent.PreviousDataSize = desxml.DocumentElement.HasAttribute("PreviousDataSize") ? int.Parse(desxml.DocumentElement.GetAttribute("PreviousDataSize")) : -1; regEvent.PreviousDataType = desxml.DocumentElement.HasAttribute("PreviousDataType") ? int.Parse(desxml.DocumentElement.GetAttribute("PreviousDataType")) : -1; regEvent.RelativeName = desxml.DocumentElement.HasAttribute("RelativeName") ? desxml.DocumentElement.GetAttribute("RelativeName") : ""; regEvent.ThreadId = desxml.DocumentElement.HasAttribute("TID") ? int.Parse(desxml.DocumentElement.GetAttribute("TID")) : -1; regEvent.Type = desxml.DocumentElement.HasAttribute("Type") ? int.Parse(desxml.DocumentElement.GetAttribute("Type")) : -1; regEvent.ValueName = desxml.DocumentElement.HasAttribute("ValueName") ? desxml.DocumentElement.GetAttribute("ValueName") : ""; //sw.WriteLine(regEvent.ProviderName + regEvent.EventName + regEvent.ProcessHistory); RegistryUtility(regDic, regEvent); } #endregion #region Network else if (opi == 3) { netEvent.ProcessId = desxml.DocumentElement.HasAttribute("PID") ? int.Parse(desxml.DocumentElement.GetAttribute("PID")) : -1; netEvent.ProcessId = desxml.DocumentElement.HasAttribute("PIDD") ? int.Parse(desxml.DocumentElement.GetAttribute("PIDD")) : -1; await Task.Run(() => { GetProcessInfo(netEvent, netEvent.ProcessId, null, EventName.Network); }); netEvent.ProviderName = desxml.DocumentElement.HasAttribute("ProviderName") ? desxml.DocumentElement.GetAttribute("ProviderName") : ""; netEvent.EventName = desxml.DocumentElement.HasAttribute("EventName") ? desxml.DocumentElement.GetAttribute("EventName") : ""; netEvent.DestinationAddress = desxml.DocumentElement.HasAttribute("daddr") ? Utility.LongToIpAddress(desxml.DocumentElement.GetAttribute("daddr")) : "-1"; netEvent.SourceAddress = desxml.DocumentElement.HasAttribute("saddr") ? Utility.LongToIpAddress(desxml.DocumentElement.GetAttribute("saddr")) : "-1"; netEvent.Dport = desxml.DocumentElement.HasAttribute("dport") ? int.Parse(desxml.DocumentElement.GetAttribute("dpoort")) : -1; netEvent.Sport = desxml.DocumentElement.HasAttribute("sport") ? int.Parse(desxml.DocumentElement.GetAttribute("sport")) : -1; netEvent.ConnId = desxml.DocumentElement.HasAttribute("connid") ? int.Parse(desxml.DocumentElement.GetAttribute("connid")) : -1; netEvent.SeqNum = desxml.DocumentElement.HasAttribute("seqnum") ? int.Parse(desxml.DocumentElement.GetAttribute("seqnum")) : -1; netEvent.ThreadId = desxml.DocumentElement.HasAttribute("TID") ? int.Parse(desxml.DocumentElement.GetAttribute("TID")) : -1; netEvent.Size = desxml.DocumentElement.HasAttribute("size") ? int.Parse(desxml.DocumentElement.GetAttribute("size")) : 0; //Task.Run(() => { NetworkUtility(netu, netEvent, processUseNetWork, netEvent.ProcessHistoryD, netEvent.SourceAddress, netEvent.DestinationAddress); }); NetUsage.Enqueue(netEvent); } #endregion #region File else { fileEvent.ProcessId = desxml.DocumentElement.HasAttribute("PID") ? int.Parse(desxml.DocumentElement.GetAttribute("PID")) : -1; await Task.Run(() => { GetProcessInfo(fileEvent, fileEvent.ProcessId, null, EventName.File); }); fileEvent.ThreadId = desxml.DocumentElement.HasAttribute("TID") ? int.Parse(desxml.DocumentElement.GetAttribute("TID")) : -1; fileEvent.FileName = desxml.DocumentElement.HasAttribute("FileName") ? desxml.DocumentElement.GetAttribute("FileName") : ""; fileEvent.FilePath = desxml.DocumentElement.HasAttribute("FilePath") ? desxml.DocumentElement.GetAttribute("FilePath") : ""; fileEvent.ProviderName = desxml.DocumentElement.HasAttribute("ProviderName") ? desxml.DocumentElement.GetAttribute("ProviderName") : ""; fileEvent.EventName = desxml.DocumentElement.HasAttribute("EventName") ? desxml.DocumentElement.GetAttribute("EventName") : ""; fileEvent.Irp = desxml.DocumentElement.HasAttribute("Irp") ? desxml.DocumentElement.GetAttribute("Irp") : ""; fileEvent.FileObject = desxml.DocumentElement.HasAttribute("FileObject") ? desxml.DocumentElement.GetAttribute("FileObject") : ""; //fileEvent.IssuingThreadId = desxml.DocumentElement.HasAttribute("IssuingThreadId") // ? int.Parse(desxml.DocumentElement.GetAttribute("IssuingThreadId")) // : -1; //fileEvent.CreateOptions = desxml.DocumentElement.HasAttribute("CreateOptions") // ? int.Parse(desxml.DocumentElement.GetAttribute("CreateOptions")) // : -1; //fileEvent.CreateAttributes = desxml.DocumentElement.HasAttribute("CreateAttributes") // ? int.Parse(desxml.DocumentElement.GetAttribute("CreateAttributes")) // : -1; fileEvent.ShareAccess = desxml.DocumentElement.HasAttribute("ShareAccess") ? desxml.DocumentElement.GetAttribute("ShareAccess") : ""; fileEvent.FileKey = desxml.DocumentElement.HasAttribute("FileKey") ? desxml.DocumentElement.GetAttribute("FileKey") : ""; //long iit = Convert.ToInt64(fileEvent.FileKey, 16)*-1; // var filena = Utility.GetFileNameFromHandle(new IntPtr(Convert.ToInt64(fileEvent.FileKey, 16))); fileEvent.IOSize = desxml.DocumentElement.HasAttribute("IOSize") ? int.Parse(desxml.DocumentElement.GetAttribute("IOSize")) : -1; //fileEvent.IOFlags = desxml.DocumentElement.HasAttribute("IOFlags") // ? int.Parse(desxml.DocumentElement.GetAttribute("IOFlags")) // : -1; //fileEvent.ExtraFlags = desxml.DocumentElement.HasAttribute("ExtraFlags") // ? int.Parse(desxml.DocumentElement.GetAttribute("ExtraFlags")) // : -1; //fileEvent.ByteOffset = desxml.DocumentElement.HasAttribute("ByteOffset") // ? long.Parse(desxml.DocumentElement.GetAttribute("ByteOffset")) // : -1; //fileEvent.ExtraInformation = desxml.DocumentElement.HasAttribute("ExtraInformation") // ? int.Parse(desxml.DocumentElement.GetAttribute("ExtraInformation")) // : -1; //fileEvent.Status = desxml.DocumentElement.HasAttribute("Status") // ? int.Parse(desxml.DocumentElement.GetAttribute("Status")) // : -1; //fileEvent.InfoClass = desxml.DocumentElement.HasAttribute("InfoClass") // ? int.Parse(desxml.DocumentElement.GetAttribute("InfoClass")) // : -1; Task.Run(() => { FileUtility(fileEvents, pipe, fileEvent); }); } #endregion } } try { Thread.Sleep(500); Parallel.Invoke(saveLogAction); } catch (Exception) { Thread.Sleep(500); saveLogAction.Invoke(); } }; Task t = new Task(() => { gec.FetchEvents(); }); t.Start(); saveLogAction.Invoke(); Console.Read(); return(0); }
private static void SaveTestProcessEvent(ProcessEvent processEvent) { eventService.SaveEvent(processEvent, new NamedEventOption { EventName = processEvent.EventName, ProfileName = processEvent.ProfileName }, true); }
internal bool TryGet(Type messageType, out ProcessEvent processFunc) { return(processorMap.TryGetValue(messageType, out processFunc)); }
public void ChangeItem(ProcessEvent processEvent, bool enabled, string command, bool waitToComplete, bool openInConsole) { //BeginChange(); this.processEvent = processEvent; this.enabled.Value = enabled; this.command.Value = command; this.waitToComplete.Value = waitToComplete; this.openInConsole.Value = openInConsole; NewEvent(); //EndChange(); DataChanged(); }
private void NewScript() { processEvent = ProcessEvent.NoAction; try { processEvent = (ProcessEvent)Enum.Parse(typeof(ProcessEvent), scriptName.Value, true); } catch { } }
/// <summary> /// Asignamos los datos a las evaluaciones y las guardamos en la base de datos /// Serializamos los alumnos con sus atributos /// </summary> /// <param name="alumno"></param> /// <param name="proxAlumno"></param> void Evaluar(Alumno alumno, Alumno proxAlumno) { _swatch.Start(); Evaluacion evaluacion; Random random = new Random(); Array values = Enum.GetValues(typeof(EObservaciones)); EObservaciones randomEObserv = (EObservaciones)values.GetValue(random.Next(values.Length)); int idAlumno = alumno.IdAlumno; int idAulas = random.Next(1, _aulas.Count); int idDocentes = random.Next(1, _docentes.Count); int notaUno = random.Next(1, 10); int notaDos = random.Next(1, 10); float nf = ((notaUno + notaDos) / 2); evaluacion = new Evaluacion(idAlumno, idDocentes, idAulas, notaUno, notaDos, nf, randomEObserv.ToString()); c.GuardarEvaluaciones(evaluacion); alumno.NotaUno = notaUno; alumno.NotaDos = notaDos; alumno.NotaFinal = nf; if (evaluacion.NotaFinal >= 6) { alumno.GuardarAlumnosAprobados(alumno); } else { alumno.GuardarAlumnosDesaprobados(alumno); } this._evaluaciones.Add(evaluacion); string docente = "Docente no establecido."; foreach (Docente item in _docentes) { if (item.Id == idDocentes) { // Actualiza docente. docente = item.ToString(); } } string aula = string.Empty; foreach (Aula item in _aulas) { if (item.IdAula == idAulas) { // Actualiza aula. aula = item.ToString(); } } alumnosEvaluados.Add(alumno); Thread.Sleep(TIEMPOEVALUACION); _swatch.Stop(); ProcessEventArgs parametrosEvento = new ProcessEventArgs() { AlumnoEvaluado = alumno.ToString(), Aula = aula, Docente = docente, ProximoAlumno = proxAlumno, TiempoTranscurrido = $"Tiempo transcurrido:{_swatch.Elapsed.ToString()}" }; ProcessEvent?.Invoke(this, parametrosEvento); }
public void PutEvent(ProcessEvent ev) { this.PutEvent(ev, true); }
public DGTLWebSocketClient(string pWebSocketURL, ProcessEvent pOnEvent) { WebSocketURL = pWebSocketURL; OnEvent = pOnEvent; }
public RoleProviderAttribute(string name, ProcessEvent eventType) { this.name = name; this.eventType = eventType; this.level = ProcessLevel.Undefined; }
public void PutEvent(ProcessEvent ev, bool important) { lock (this) { bool go = true; if (!important) { if (this.eventQueue.Count > 20) { go = false; } } if (go) { if (this.debug) MaloWDebug.Log("ERROR: Proc: " + this.ID + " Mutex for PutEvent Failed, multiple procs modifying data."); this.debug = true; int queueSize = this.eventQueue.Count; this.eventQueue.Enqueue(ev); if (queueSize > this.warningThresholdEventQueue) { MaloWDebug.Log("Warning, EventQueue of process " + this.ID + " has " + this.eventQueue.Count + " unread events."); this.warningThresholdEventQueue *= 2; } if (this.state == WAITING) { this.Resume(); } this.debug = false; } } }
/// <summary> /// 消息委托 /// </summary> /// <param name="updateToTrayTooltip">是否更新托盘图标的工具提示</param> /// <param name="msg">输出到日志框</param> private void ShowMsg(bool updateToTrayTooltip, string msg) { ProcessEvent?.Invoke(updateToTrayTooltip, msg); }
private async Task ProcessQueue(CancellationToken token) { _logger.LogInformation("Processing Message Queue ..."); using (var scope = _services.CreateScope()) { var eventService = scope.ServiceProvider.GetRequiredService <IEventService>(); try { eventService.AddQueueStatus(new QueueStatus() { StatusDate = DateTime.Now, StatusIndicator = 1, StatusMessage = "Queue Processing Started .." }); if (token.IsCancellationRequested) { eventService.AddQueueStatus(new QueueStatus() { StatusDate = DateTime.Now, StatusIndicator = 2, StatusMessage = "Cancellation Requested .." }); await Task.FromCanceled(token); } else { eventService.AddQueueStatus(new QueueStatus() { StatusDate = DateTime.Now, StatusIndicator = 1, StatusMessage = "Getting Events to Process .." }); //Get events to process var eventsToProcess = JsonConvert.SerializeObject(eventService.GetEventsByTopic(_configuration["MessageQueue:Topic"])); foreach (var messageEvent in JsonConvert.DeserializeObject <List <Event> >(eventsToProcess)) { //Create a ProcessEvent for each messageEvent ProcessEvent processEvent = new ProcessEvent() { EventId = messageEvent.EventId, ProcessDate = DateTime.Now, ProcessStatus = 0, ProcessMessage = "" }; //Save the process event eventService.UpdateProcessEvent(processEvent); string topic = messageEvent.EventTopic.Split('-', StringSplitOptions.RemoveEmptyEntries)[1]; //Build a NetMQMessage NetMQMessage message = NetMQHelper.CreateMessage(topic, messageEvent.EventSender, messageEvent.EventPayload); eventService.AddQueueStatus(new QueueStatus() { StatusDate = DateTime.Now, StatusIndicator = 1, StatusMessage = $"Sending Event for {messageEvent.EventId} .." }); //Publish the event NetMQHelper.SendMessage(_configuration["NetMQ:PublishConnection"], message); } eventService.AddQueueStatus(new QueueStatus() { StatusDate = DateTime.Now, StatusIndicator = 0, StatusMessage = "Queue Processing Completed .." }); //Wait for x milliseconds Thread.Sleep(int.Parse(_configuration["MessageQueue:SleepTime"])); //Process again await ProcessQueue(token); } } catch (Exception ex) { _logger.LogError(ex, "There was an error while the message queue was processing "); eventService.AddQueueStatus(new QueueStatus() { StatusDate = DateTime.Now, StatusIndicator = 0, StatusMessage = "Queue Processing Has Crashed .." }); throw; } } }