private void LoadCompetitors() { using (var connection = new SqlConnection(Constants.ConnectionString)) { connection.Open(); string sqlSelect = "select ManufacturerArticle, copmetitorLink, copmpetitorEncoding, [PriceWithVat] from dbo.CompetitorsLinks"; SqlCommand command = new SqlCommand(sqlSelect, connection); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { string article = reader.GetValue(0).ToString(); string url = reader.GetValue(1).ToString(); string encoding = reader.GetValue(2).ToString(); bool isVatPrice = reader.GetValue(3).ToString() == "True"; var foundArticle = CompetitorArticles.Where(p => p.ManufacturerArticle == article).FirstOrDefault(); if (foundArticle == null) { foundArticle = new CompetitorArticle(); foundArticle.ManufacturerArticle = article; foundArticle.CompetitorLinksList = new List <CompetitorData>(); } foundArticle.CompetitorLinksList.Add(new CompetitorData { Link = url, Encoding = encoding, IsVatPrice = isVatPrice }); CompetitorArticles.Add(foundArticle); } } }
private decimal GetMinCompetitorVatPrice(CompetitorArticle competitorArticle, decimal vatRate) { decimal minCompetitorPrice = -1; foreach (var competitorData in competitorArticle.CompetitorLinksList) { var competitorPrice = GetCompetitorVatPrice(competitorData.Link, GetEncoding(competitorData.Encoding), competitorData.IsVatPrice, vatRate); if (competitorPrice > -1 && (minCompetitorPrice == -1 || minCompetitorPrice > competitorPrice)) { minCompetitorPrice = competitorPrice; } } return(minCompetitorPrice); }