private async Task <IEnumerable <Room> > GetRoomsFromSuppliers(SearchAvailabilityRq search) { var supplierConnectors = await supplierConnectorManager.GetSupplierConnectors(configuration); var roomsBag = new ConcurrentBag <SearchAvailabilityRs>(); var tokenSource = new CancellationTokenSource(DefaultTimeout); await Task.WhenAll(supplierConnectors.Select(supplier => Task.Run(async() => { var roomList = await supplier.SearchAvailability(search); roomsBag.Add(roomList); }, tokenSource.Token)) .ToArray()); var rooms = roomsBag .Where(p => p.Success) .SelectMany(p => p.Rooms); return(rooms); }
public Task <SearchAvailabilityRs> SearchAvailability(SearchAvailabilityRq request) { var suppliers = connectorManager.GetSupplierConnectors(new ConnectorsConfiguration()); return(Task.FromResult(new SearchAvailabilityRs())); }