Пример #1
0
        private async Task <Result <List <Address> > > SliceManagement(string term, string html)
        {
            var count       = _addressesServiceScrap.CountPagesTable(html);
            var listAddress = new List <Address>();

            var retAddress = _addressesServiceScrap.GetAddressesPageTerm(html);

            if (retAddress.Status != ResultCode.OK)
            {
                return(new Result <List <Address> >(retAddress.Status, retAddress.Value));
            }

            listAddress.AddRange(retAddress.ValueType);

            if (count > 50)
            {
                var pointerInit = 50;
                var rest        = count - 50;
                var lines       = 0;
                var subtraction = 0;

                do
                {
                    if (rest >= 90)
                    {
                        lines       = pointerInit + 90;
                        subtraction = 90;
                    }
                    else
                    {
                        lines       = (pointerInit + rest);
                        subtraction = (pointerInit + rest);
                    }

                    var retString = await PostSliceSendAsync(term, 50, pointerInit + 1, lines);

                    if (retString.Status != ResultCode.OK)
                    {
                        return(new Result <List <Address> >(retString.Status, retString.Value));
                    }

                    retAddress = _addressesServiceScrap.GetAddressesPageTerm(retString.ValueType);

                    if (retAddress.Status != ResultCode.OK)
                    {
                        return(new Result <List <Address> >(retAddress.Status, retAddress.Value));
                    }

                    listAddress.AddRange(retAddress.ValueType);

                    pointerInit = lines;
                    rest        = rest - subtraction;
                } while (count != pointerInit);
            }

            return(new Result <List <Address> >(ResultCode.OK, listAddress));
        }
Пример #2
0
        public void GetAddressesPageTerm_WhenStreet_ReturnsValue()
        {
            var html = File.ReadAllText(@"../../../Files/HTML/AvenidaVitalBrasil.html");

            var addressScrap = new AddressesServiceScrap();

            var list = addressScrap.GetAddressesPageTerm(html).ValueType;

            Assert.NotNull(list);
            Assert.Equal(24, list.Count);
        }