public async Task <CsvReport> VenuesByXml(IFormFile file)
        {
            var xml    = XDocument.Parse(await file.ReadAsStringAsync());
            var venues = xml.XPathSelectElements("venues/venue");

            var resultCollection = new List <Option <Venue, Error> >();

            foreach (var venue in venues)
            {
                var name     = venue.Attribute("name")?.Value;
                var capacity = Convert.ToInt32(venue.XPathSelectElement("capacity")?.Value);
                var town     = venue.XPathSelectElement("town")?.Value;

                var entity = new Venue(name, capacity, town);
                resultCollection.Add(await _venuesService.AddAsync(entity));
            }

            var successfullyAddVenuesNames =
                resultCollection
                .Values()
                .Select(venue => new OnboardingCsvReportModel($"{venue.Name} successfully added!"))
                .ToList();

            var unsuccessfullyAddVenuesErrs =
                resultCollection
                .Exceptions()
                .Select(error => new OnboardingCsvReportModel(string.Join(", ", error.Messages)))
                .ToList();

            var reportName = $"venues-onboarding-{file.Name}-{DateTime.Now.Date}";

            return(PrepareReport(successfullyAddVenuesNames, unsuccessfullyAddVenuesErrs, reportName));
        }