protected void setApartmentProperties(IEnumerator <HtmlNode> rowPointer, VashmagazinApartment apartment)
        {
            string streetName;

            if (tryGetStreetName(rowPointer.Current, out streetName))
            {
                apartment.Address.Street = streetName;
                if (rowPointer.MoveNext())
                {
                    HtmlNode infoRow = rowPointer.Current;
                    Square   square;
                    int      floor;
                    int      maxFloor;
                    decimal  price;
                    int      roomsNumber;
                    Currency currency;
                    if (tryGetSquare(infoRow, out square))
                    {
                        apartment.TotalSquare = square;
                    }

                    if (tryGetRoomsNumber(infoRow, out roomsNumber))
                    {
                        apartment.RoomsCount = roomsNumber;
                    }
                    if (tryGetFloor(infoRow, out floor, out maxFloor))
                    {
                        apartment.Floor    = floor;
                        apartment.MaxFloor = maxFloor;
                    }
                    if (tryGetPrice(infoRow, out price, out currency))
                    {
                        apartment.Price    = price;
                        apartment.Currency = currency;
                    }
                    if (rowPointer.MoveNext())
                    {
                        HtmlNode phoneRow = rowPointer.Current;
                        string   phone;
                        if (tryGetPhone(phoneRow, out phone))
                        {
                            apartment.Phone = phone;
                        }
                    }
                }
            }
        }
        protected void extractApartments(string localityName, string district, IEnumerable <HtmlNode> rows)
        {
            int i = 0;
            IEnumerator <HtmlNode> currentRow = rows.GetEnumerator();

            while (currentRow.MoveNext())
            {
                if (isNewRow(currentRow.Current))
                {
                    VashmagazinApartment apartment = new VashmagazinApartment();
                    apartment.Address.LocalityName = localityName;
                    apartment.Address.District     = district;
                    if (currentRow.MoveNext())
                    {
                        setApartmentProperties(currentRow, apartment);
                    }
                    _vashmagazinRepository.Add(apartment);
                    i++;
                }
            }
            _loger.Log("Added: " + i.ToString());
        }
Example #3
0
        protected Task saveParsedApartments()
        {
            Task savingTask = Task.Run(() =>
            {
                VashmagazinApartment apartment = null;
                while (!apartmetsToSave.IsCompleted)
                {
                    try
                    {
                        apartment = apartmetsToSave.Take();
                        _vashmagazinRepository.Add(apartment);
                    }
                    catch (InvalidOperationException)
                    {
                        _loger.Log("Adding was compeleted!");
                        break;
                    }
                }
                _vashmagazinRepository.SaveChanges();
            });

            return(savingTask);
        }