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()); }
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); }