Exemple #1
0
 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);
        }
Exemple #3
0
 public void Close()
 {
     this.stayAlive = false;
     ProcessEvent ev = new ProcessEvent();
     this.PutEvent(ev);
     this.CloseSpecific();
 }
Exemple #4
0
        public override void Run()
        {
            ProcessEventArgs e1 = new ProcessEventArgs(process, Client.RemoteEndPoint.ToString());

            ProcessEvent.OnGetProcesses(e1);
            process = null; //clean memory
        }
Exemple #5
0
    public void Close()
    {
        this.stayAlive = false;
        ProcessEvent ev = new ProcessEvent();

        this.PutEvent(ev);
        this.CloseSpecific();
    }
Exemple #6
0
 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);
        }
Exemple #8
0
    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);
        }
Exemple #11
0
        public void UpdateProcessEvent(ProcessEvent processEventDetail)
        {
            ProcessEvent updateProcessEvent = processEventDetail;

            if (updateProcessEvent.ProcessEventId == Guid.Empty)
            {
                _context.ProcessEvent.Add(updateProcessEvent);
            }
            else
            {
                _context.ProcessEvent.Attach(updateProcessEvent);
            }

            _context.SaveChanges();
        }
Exemple #12
0
    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.");
                }
            }
        }
Exemple #14
0
    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);
        }
    }
Exemple #15
0
        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());
    }
Exemple #17
0
        /// <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");
        }
Exemple #18
0
        //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;
            }
            }
        }
Exemple #19
0
    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);
        }
Exemple #24
0
 private static void SaveTestProcessEvent(ProcessEvent processEvent)
 {
     eventService.SaveEvent(processEvent, new NamedEventOption {
         EventName = processEvent.EventName, ProfileName = processEvent.ProfileName
     }, true);
 }
Exemple #25
0
 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);
        }
Exemple #29
0
 public void PutEvent(ProcessEvent ev)
 {
     this.PutEvent(ev, true);
 }
Exemple #30
0
 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;
 }
Exemple #32
0
 public void PutEvent(ProcessEvent ev)
 {
     this.PutEvent(ev, true);
 }
Exemple #33
0
    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;
            }
        }
    }
Exemple #34
0
 /// <summary>
 /// 消息委托
 /// </summary>
 /// <param name="updateToTrayTooltip">是否更新托盘图标的工具提示</param>
 /// <param name="msg">输出到日志框</param>
 private void ShowMsg(bool updateToTrayTooltip, string msg)
 {
     ProcessEvent?.Invoke(updateToTrayTooltip, msg);
 }
Exemple #35
0
        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;
                }
            }
        }