private void ParseLot(AngleSharp.Html.Dom.IHtmlDocument document, MessageModel descriptionMessage) { var elems = document.GetElementsByClassName("lotInfo"); if (elems.Length == 0) { return; } var table = elems[0]; var trs = table.GetElementsByTagName("tr"); if (trs.Length > 0) { int number = -1; int description = -1; int startPrice = -1; int step = -1; int deposit = -1; int PriceReductionInformation = -1; int PropertyClassification = -1; var header = trs[0]; var thsHeaders = header.GetElementsByTagName("th"); var length = thsHeaders.Length; for (int i = 0; i < length; i++) { switch (thsHeaders[i].TextContent) { case "Номер лота": number = i; break; case "Описание": description = i; break; case "Начальная цена, руб": startPrice = i; break; case "Шаг": step = i; break; case "Задаток": deposit = i; break; case "Информация о снижении цены": PriceReductionInformation = i; break; case "Классификация имущества": PropertyClassification = i; break; } } length = trs.Length; for (int i = 1; i < length; i++) { var lot = new LotModel(); var tds = trs[i].GetElementsByTagName("td"); if (number != -1) { int num; if (int.TryParse(tds[number].TextContent, out num)) { lot.Number = num; } } if (description != -1) { lot.Description = tds[description].TextContent; } if (startPrice != -1) { double num; if (double.TryParse(tds[startPrice].TextContent, out num)) { lot.StartPrice = num; } } if (step != -1) { lot.Step = tds[step].TextContent; } if (deposit != -1) { lot.Deposit = tds[deposit].TextContent; } if (PriceReductionInformation != -1) { lot.PriceReductionInformation = tds[PriceReductionInformation].TextContent; } if (PropertyClassification != -1) { lot.PropertyClassification = tds[PropertyClassification].TextContent; } descriptionMessage.Lots.Add(lot); //Log.Debug($"Add lot - {lot.Number}"); } } var regex = new Regex(@"\d+\.\d+\.\d+ \d+\:\d+"); var regex1 = new Regex(@"\d+\.\d+\.\d+\s+\d+\:\d+"); var body = document.GetElementsByTagName("body")[0]; var ms = regex1.Matches(body.TextContent); if (ms.Count >= 2) { descriptionMessage.DateStart = DateTime.Parse(ms[0].Value); descriptionMessage.DateEnd = DateTime.Parse(ms[1].Value); } if (ms.Count == 3) { descriptionMessage.DateStartBargaining = DateTime.Parse(ms[2].Value); } }