示例#1
0
        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);
        }
示例#2
0
            public Task <SearchAvailabilityRs> SearchAvailability(SearchAvailabilityRq request)
            {
                var suppliers = connectorManager.GetSupplierConnectors(new ConnectorsConfiguration());

                return(Task.FromResult(new SearchAvailabilityRs()));
            }