async Task AddDuplicateRecords(AccommodationDuplicateReport parentReport)
            {
                var allDuplicateIds = duplicateRequest.Duplicates
                                      .Union(new[] { duplicateRequest.Accommodation })
                                      .Select(a => a.ToString())
                                      .ToList();

                var duplicateRecords = allDuplicateIds
                                       .SelectMany(accommodationId1 => allDuplicateIds, (accommodationId1, accommodationId2) => new { accommodationId1, accommodationId2 })
                                       .Where(d => d.accommodationId1 != d.accommodationId2)
                                       .Distinct();

                foreach (var duplicate in duplicateRecords)
                {
                    _context.AccommodationDuplicates.Add(new AccommodationDuplicate
                    {
                        AccommodationId1 = duplicate.accommodationId1,
                        AccommodationId2 = duplicate.accommodationId2,
                        ReporterAgentId  = agent.AgentId,
                        ReporterAgencyId = agent.AgencyId,
                        ParentReportId   = parentReport.Id,
                        IsApproved       = false,
                        Created          = now
                    });
                }

                await _context.SaveChangesAsync();
            }
            async Task <AccommodationDuplicateReport> SaveReport()
            {
                var report = new AccommodationDuplicateReport
                {
                    Created          = now,
                    Modified         = now,
                    ReporterAgencyId = agent.AgencyId,
                    ReporterAgentId  = agent.AgentId,
                    ApprovalState    = AccommodationDuplicateReportState.PendingApproval,
                    Accommodations   = duplicateRequest.Duplicates
                                       .Union(new[] { duplicateRequest.Accommodation })
                                       .ToList()
                };

                _context.Add(report);
                await _context.SaveChangesAsync();

                return(report);
            }