Пример #1
0
        public async Task <DataActionResult <IEnumerable <PingTestData> > > TestConnectionListAsync(
            IEnumerable <IPAddress> ips
            )
        {
            IEnumerable <IPAddress> ipAddresses = ips as IPAddress[] ?? ips.ToArray();
            int len     = ipAddresses.Count();
            var results = new DataActionResult <PingTestData> [len];
            int index   = 0;
            DataActionResult <PingTestData> firstFailed = null;

            foreach (var ip in ipAddresses)
            {
                results[index] = await TestConnectionAsync(ip);

                if (results[index].Status.Failure())
                {
                    firstFailed = results[index];
                    break;
                }

                index++;
            }

            return(firstFailed != null
                ? DataActionResult <IEnumerable <PingTestData> >
                   .Failed(firstFailed.Status)
                : DataActionResult <IEnumerable <PingTestData> >
                   .Successful(results.Select(r => r.Result)));
        }