public bool TryToConcludeInvestigation(long investigationId)
        {
            var investigation = _investigationService.GetInvestigationById(investigationId);

            if (investigation != null)
            {
                var openReportConfirms = _reportConfirmService.GetAllOpenReportConfirmsByInvestigationId(investigationId);
                var investTotal        = (investigation.OverallKeep + investigation.OverallRemove);
                if (investTotal >= MAX_INVESTIGATION_SIZE)
                {
                    //Conclude
                    double overallKeep   = ((double)(investigation.OverallKeep)) / ((double)investTotal) * 100.0;
                    double overallRemove = ((double)(investigation.OverallRemove)) / ((double)investTotal) * 100.0;
                    IList <ReportConfirm> confirms;
                    double            highestValue;
                    InvestigationType type;

                    //Set the groups
                    if (overallKeep >= overallRemove)
                    {
                        highestValue = overallKeep;
                        confirms     = investigation.ReportConfirms.Where(rc => !rc.RemoveComment).ToList();
                        type         = InvestigationType.Keep;
                    }
                    else
                    {
                        highestValue = overallRemove;
                        confirms     = investigation.ReportConfirms.Where(rc => !rc.RemoveComment == true).ToList();
                        type         = InvestigationType.Keep;
                    }

                    //Check we can close
                    if (highestValue >= MIN_THRESHOLD)
                    {
                        //Resolve the investigation
                        var resolved = _investigationService.ResolveInvestigation(investigation.Id, type);
                        if (resolved)
                        {
                            //Pay credit
                            var userIds = confirms.Select(x => x.User).ToList();
                            _creditWalletService.PayIntoWallets(userIds, _systemValuesService.GetCurrentMiningAmount());
                            return(true);
                        }
                    }
                    else
                    {
                        //Noone is paid and investigation is reset (reopened)
                        _reportConfirmService.DeactivateAllForInvestigation(investigation.Id);
                        _investigationService.UpInvestigationCounter(investigation.Id);
                    }
                }
            }
            return(false);
        }