Esempio n. 1
0
        public ActionResult DataCollection(bool regenerate)
        {
            int count   = 0;
            var summary = new ProcessSummary();
            var time    = Stopwatch.StartNew();

            // scan folders to load the database
            using (var context = new BuildDb())
            {
                // create the database if it doesn't exist
                if (!context.Context.Database.Exists())
                {
                    context.Context.Database.Create();
                }
                else
                {
                    if (regenerate == true)
                    {
                        context.PurgeOldRecords(defaultDirectory);
                    }
                }

                count = context.hashDirectory(defaultDirectory);

                // display the database summary
                summary.NewRecords      = count;
                summary.TotalRecords    = context.Context.Images.Count();
                summary.LastProcessTime = time.Elapsed;
            }

            // todo: switch this to Json and let page handle display
            return(PartialView("_Summary", summary));
        }
Esempio n. 2
0
        public void Ctor_WhenCalledWithCorrectNumbers_ThenSummarizesNumbers()
        {
            var summary = new ProcessSummary(10, 6);

            summary.TotalNumberOfFiles.ShouldBe(10);
            summary.NumberOfValidFiles.ShouldBe(6);
            summary.NumberOfInvalidFiles.ShouldBe(4);
        }
        public ProcessSummary CreateProcessSummary(DateTime startTime, DateTime endTime, JsonObject fileMeta, JsonArray fileRules, JsonArray participants, IList <CompensationInvestment> investments, Guid fileKey)
        {
            ProcessSummary sum = new ProcessSummary();

            sum.StartTime          = startTime;
            sum.EndTime            = endTime;
            sum.FileName           = fileMeta["fileName"];
            sum.FileKey            = fileKey.ToString();
            sum.RulesDecoded       = fileRules != null ? fileRules.Count : 0;
            sum.Participants       = participants != null ? participants.Count : 0;
            sum.InvestmentsCreated = investments != null ? investments.Count : 0;
            return(sum);
        }
Esempio n. 4
0
            public int Compare(object x, object y)
            {
                if ((x is ListViewItem) && (y is ListViewItem))
                {
                    ProcessSummary p1 = ((ListViewItem)x).Tag as ProcessSummary;
                    ProcessSummary p2 = ((ListViewItem)y).Tag as ProcessSummary;

                    if (!(p1 == null || p2 == null))
                    {
                        int result = 0;

                        switch (columnIndex)
                        {
                        case 0:
                            result = p1.ProcessId.CompareTo(p2.ProcessId);
                            break;

                        case 1:
                            result = p1.ProcessName.CompareTo(p2.ProcessName);
                            break;

                        case 2:
                            result = p1.MainModuleFileName.CompareTo(p2.MainModuleFileName);
                            break;

                        case 3:
                            result = p1.MainModuleBase.CompareTo(p2.MainModuleBase);
                            break;

                        case 4:
                            result = p1.MainModuleEntryPoint.CompareTo(p2.MainModuleEntryPoint);
                            break;

                        case 5:
                            result = p1.MainModuleImageSize.CompareTo(p2.MainModuleImageSize);
                            break;

                        case 6:
                            result = p1.IsWOW64.CompareTo(p2.IsWOW64);
                            break;
                        }

                        if (sortOrder == SortOrder.Descending)
                        {
                            result = -result;
                        }
                        return(result);
                    }
                }
                return(0);
            }
Esempio n. 5
0
        private void ListView_Selected(object sender, RoutedEventArgs e)
        {
            var            selected = sender as ListViewItem;
            ProcessSummary content  = selected.Content as ProcessSummary;

            foreach (Session s in vm.Slave.Items)
            {
                if (s.Process.Equals(content.Process))
                {
                    vm.Slave.Selected = s;
                    break;
                }
            }
        }
Esempio n. 6
0
        public bool GetProcessSummaryList(out ProcessSummary[] result)
        {
            result = new ProcessSummary[0];

            if (driverHandle != WinApi.INVALID_HANDLE_VALUE)
            {
                int requiredBufferSize = GetProcessListRequiredBufferSize();

                if (requiredBufferSize > 0)
                {
                    IntPtr bufferPointer = MarshalUtility.AllocZeroFilled(requiredBufferSize);
                    KERNEL_PROCESS_LIST_OPERATION operation = new KERNEL_PROCESS_LIST_OPERATION
                    {
                        bufferAddress = (ulong)bufferPointer.ToInt64(),
                        bufferSize    = requiredBufferSize
                    };
                    IntPtr operationPointer = MarshalUtility.CopyStructToMemory(operation);
                    int    operationSize    = Marshal.SizeOf <KERNEL_PROCESS_LIST_OPERATION>();

                    if (WinApi.DeviceIoControl(driverHandle, IO_GET_PROCESS_LIST, operationPointer, operationSize, operationPointer, operationSize, IntPtr.Zero, IntPtr.Zero))
                    {
                        operation = MarshalUtility.GetStructFromMemory <KERNEL_PROCESS_LIST_OPERATION>(operationPointer);

                        if (operation.processCount > 0)
                        {
                            byte[] managedBuffer = new byte[requiredBufferSize];
                            Marshal.Copy(bufferPointer, managedBuffer, 0, requiredBufferSize);
                            Marshal.FreeHGlobal(bufferPointer);

                            result = new ProcessSummary[operation.processCount];

                            using (BinaryReader reader = new BinaryReader(new MemoryStream(managedBuffer)))
                            {
                                for (int i = 0; i < result.Length; i++)
                                {
                                    result[i] = ProcessSummary.FromStream(reader);
                                }
                            }
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
        public ProcessSummary StartProcess(string fileContent)
        {
            DateTime startTime        = DateTime.UtcNow;
            var      objJsonContent   = (JsonObject)JsonObject.Parse(fileContent);
            var      fileMetaData     = _fileManager.GetMetaData(objJsonContent);
            var      fileRules        = _fileManager.GetCompensationFileRules(objJsonContent);
            var      fileParticipants = _fileManager.GetParticipants(objJsonContent);
            var      fileKey          = _fileManager.FileKeyGenerator();
            var      investments      = _fileManager.CreateCompensationInvestments(fileMetaData, fileRules, fileParticipants, fileKey);

            _publisher.SendParticipantMessages(investments);
            ProcessSummary sum             = _messageManager.CreateProcessSummary(startTime, DateTime.UtcNow, fileMetaData, fileRules, fileParticipants, investments, fileKey);
            int            investmentCount = (investments != null ? investments.Count : 0);
            JsonObject     enrichedMeta    = _messageManager.CreateMetaMessage(fileMetaData, fileKey.ToString(), investmentCount);

            _publisher.SendMetaMessages(enrichedMeta);
            _logger.LogInformation("File completed processing at : {0}. /nFile Summary : # of Rules - {1} # of Participants {2} # of investments - {3} ",
                                   DateTime.UtcNow, fileRules?.Count, fileParticipants?.Count, investments?.Count);
            return(sum);
        }
Esempio n. 8
0
        public ProcessOfferingViewModel CreateProcessOfferingViewModel(string wpsUri, ProcessSummary sum)
        {
            var transmissionMode = sum.OutputTransmission.ToString().ToLower();

            if (transmissionMode.Equals("ValueReference", StringComparison.InvariantCultureIgnoreCase))
            {
                transmissionMode = "value reference";
            }

            return(new ProcessOfferingViewModel(wpsUri, sum.Identifier, _dialogService, _wpsClient, _context, this)
            {
                ProcessName = sum.Identifier,
                TransmissionModes = transmissionMode,
                JobControlOptions = sum.JobControlOptions,
                Keywords = sum.Keywords != null?string.Join(", ", sum.Keywords) : null,
                               Model = sum.ProcessModel,
                               Version = sum.ProcessVersion,
                               Abstract = sum.Abstract,
            });
        }