Example #1
0
        public void TestDodajCzasTrwania()
        {
            TimeSpan  czas1 = new TimeSpan(1, 30, 0);
            Prelegent p1    = new Prelegent("login", "haslo");
            Referat   r1    = new Referat("tytul", "streszczenie", p1);

            Assert.AreEqual(czas1, r1.DodajCzasTrwania(1, 30));
        }
        private Referat CreateReferatFromHtml(HtmlDocument htmlDoc)
        {
            var referatNodes = htmlDoc.DocumentNode.SelectNodes("//div[contains(concat(' ', normalize-space(@class), ' '), 'referats__text')]")
                               .Descendants("#text");

            if (referatNodes == null)
            {
                return(null);
            }

            var referat = new Referat();

            var categories = service.GetAllCategories();

            var referatText = new StringBuilder();

            foreach (var node in referatNodes)
            {
                var parentNodeName = node.ParentNode.Name;
                switch (parentNodeName)
                {
                case "div":
                {
                    var categoryName = node.InnerHtml.Trim();
                    var category     = categories.Result
                                       .FirstOrDefault(x => x.Name != null && x.Name.Equals(categoryName, StringComparison.CurrentCultureIgnoreCase));
                    if (category == null)
                    {
                        referat.Category = new Category()
                        {
                            Name = categoryName, CreatedDate = DateTime.UtcNow
                        };
                    }
                    else
                    {
                        referat.Category   = category;
                        referat.CategoryId = category.Id;
                    }
                }
                break;

                case "strong":
                    referat.Topic = node.InnerHtml;
                    break;

                case "p":
                    referatText.Append($"{node.InnerText}{Environment.NewLine}");
                    break;

                default:
                    break;
                }
            }

            referat.Text = referatText.ToString();

            return(referat);
        }
Example #3
0
        /// <summary>
        /// Check if downloaded referat is not already in DB and add it to DB
        /// </summary>
        /// <param name="referat">Downloaded referat</param>
        /// <returns></returns>
        public async Task AddReferatAsync(Referat referat)
        {
            using (var repository = new ReferatsRepository())
            {
                // Check if we have already download such a referat (COMPARE BY TOPIC)
                var referats = await repository.GetAllReferats();

                if (referats.Any(r => r.Topic.Equals(referat.Topic, StringComparison.CurrentCultureIgnoreCase)))
                {
                    return;
                }

                await repository.Insert(referat);
            }
        }