private bool ProcessReportNumber(Report report) { // Nothing to Do. if (!string.IsNullOrWhiteSpace(report.Number)) { return(true); } // Special Rule for Incident (If the Case Number is not blank, use it as the Incident Number. if (report.ModuleType == ModuleType.Incident && !string.IsNullOrWhiteSpace(report.CaseNumber)) { _log.Debug(string.Concat("Using existing Case Number for Incident", report.Id)); report.Number = report.CaseNumber; return(true); } try { _log.Info(string.Concat("Getting next number for ", report.ModuleType, " ", report.Id)); // Get the next Number for the Report as defined by its Agency. var nextNumber = _numberProvider.GetNextNumber(report.AgencyId, report.ModuleType); // Set the Report Number report.Number = nextNumber; // Special Rule for Incident (If the case number is blank update it with the new Incident Number) if (report.ModuleType == ModuleType.Incident && string.IsNullOrWhiteSpace(report.CaseNumber)) { _log.Debug("Using generated Incident Number for Case Number"); report.CaseNumber = report.Number; } return(true); } catch (Exception ex) { _log.Error(ex); AddExceptionAsReportComment(report, ex); return(false); } }
public string GetNext(Guid agencyId, ModuleType moduleType) { return(_controlNumberRepository.GetNextNumber(agencyId, moduleType)); }