public AdItemWinWinDomainModel FromDto(AdItemWinWinDtoModel itemDto)
        {
            Id = itemDto.ItemId;
            DateUpdate = itemDto.DateUpdate;
            Longitude = itemDto.Longitude;
            Latitude = itemDto.Latitude;
            City = itemDto.City;
            Area = itemDto.Area;
            StreetAddress = itemDto?.StreetAddress?.ClearSymbols();
            Rooms = itemDto.Rooms;
            Floor = itemDto.Floor;
            State = itemDto.State;
            DateEnter = itemDto.DateEnter;
            Square = itemDto?.Square?.ClearSymbols();
            IsPartners = itemDto.IsPartners;
            AmountPayment = itemDto.AmountPayment;
            Description = itemDto.Description?.ClearSymbols();
            Price = itemDto.Price;
            IsAgent = itemDto.IsAgent;
            ContactName = itemDto.ContactName;
            Phone1 = itemDto.Phone1;
            Phone2 = itemDto.Phone2;
            Images = itemDto.Images?.Select(x => new ExcelImageModel() { Full = x }).ToList() ?? new List<ExcelImageModel>();

            return this;
        }
Esempio n. 2
0
        private async Task _saveItemDtoAsync(AdItemWinWinDtoModel item, ScraperWinWinStateModel state)
        {
            var filename = $"{state.ItemsPath}/{item.ItemId}.json";

            await File.WriteAllTextAsync($"{filename}", JsonConvert.SerializeObject(item, Newtonsoft.Json.Formatting.Indented));

            _log($"Save item {item.ItemId}, filename:{filename}");
        }
Esempio n. 3
0
        private async Task <AdItemWinWinDtoModel> _parseItemPageAsync(HtmlDocument itemPage, ShortItemDtoModel shortItem)
        {
            DataCoordinatesLatLng coordinates = new DataCoordinatesLatLng();

            var iframe = _parseItemPage_GetMediaFrameAsync(itemPage).Result;

            var itemId        = shortItem.ItemId;
            var city          = shortItem.City;
            var dateUpdate    = shortItem.DateUpdate;
            var area          = _parseItemPage_GetArea(itemPage);
            var streetAddress = _parseItemPage_GetStreetAddress(itemPage);
            var rooms         = _parseItemPage_GetRooms(itemPage);
            var floor         = _parseItemPage_GetFloor(itemPage);
            var state         = _parseItemPage_GetState(itemPage);
            var dateEnter     = _parseItemPage_GetDateEnter(itemPage);
            var square        = _parseItemPage_GetSquare(itemPage);
            var isPartners    = _parseItemPage_GetIsPartners(itemPage);
            var amountPayment = _parseItemPage_GetAmountPayments(itemPage);
            var description   = _parseItemPage_GetDescription(itemPage);
            var price         = _parseItemPage_GetPrice(itemPage);

            var    isAgent = _parseItemPage_IsAgency(itemPage);
            string phone1, phone2, contactName;

            if (isAgent)
            {
                contactName = _parseItemPage_GetContactName_Agent(itemPage);
                phone1      = _parseItemPage_GetPhone1_Agent(itemPage);
                phone2      = _parseItemPage_GetPhone2_Agent(itemPage);
            }
            else
            {
                contactName = _parseItemPage_GetContactName_Private(itemPage);
                phone1      = _parseItemPage_GetPhone1_Private(itemPage);
                phone2      = _parseItemPage_GetPhone2_Private(itemPage);
            }

            var isOk = _parseItemPage_GetCoordinates(itemPage, coordinates);

            if (!isOk)
            {
                isOk = _parseItemPage_GetCoordinates2(iframe, coordinates);
            }

            if (!isOk)
            {
                isOk = await GetCoordinates_WebClientAsync(city, area, coordinates);
            }

            var images = _parseItemPage_GetImages(iframe);

            var result = new AdItemWinWinDtoModel()
            {
                ItemId        = itemId,
                DateUpdate    = dateUpdate,
                Longitude     = coordinates.lng,
                Latitude      = coordinates.lat,
                City          = city,
                Area          = area,
                StreetAddress = streetAddress,
                Rooms         = rooms,
                Floor         = floor,
                State         = state,
                DateEnter     = dateEnter,
                Square        = square,
                IsPartners    = isPartners,
                AmountPayment = amountPayment,
                Description   = description,
                Price         = price,
                ContactName   = contactName,
                Phone1        = phone1,
                Phone2        = phone2,
                IsAgent       = isAgent ? "yes":"no",
                Images        = images,
            };

            return(result);
        }