public void WhenConstructedWithUrl()
        {
            // Arrange
            var url = @"https://publications.parliament.uk/pa/cm/cmregmem/191105/some_mp.htm";

            // Act
            var rawData = new RawHtmlData(url, DateTimeOffset.MinValue, string.Empty);

            // Assert
            Assert.AreEqual("191105", rawData.PublicationSet);
        }
        public void WhenDerivingLikelyPublicationDate()
        {
            // Arrange
            var url = @"https://publications.parliament.uk/pa/cm/cmregmem/191105/some_mp.htm";

            // Act
            var rawData = new RawHtmlData(url, DateTimeOffset.MinValue, string.Empty);

            // Assert
            Assert.AreEqual(new DateTime(2019, 11, 5), rawData.LikelyPublicationDate);
        }
        public void Handle(RawHtmlDataAcquiredEvent rawHtmlDataAcquiredEvent)
        {
            var rawHtmlData = new RawHtmlData(rawHtmlDataAcquiredEvent.SourceUrl, rawHtmlDataAcquiredEvent.Acquired, rawHtmlDataAcquiredEvent.Html);

            if (!this.mpTotalsByPublicationSet.ContainsKey(rawHtmlData.MpKey))
            {
                this.mpTotalsByPublicationSet.Add(rawHtmlData.MpKey, new Dictionary <string, PublicationSetTotal>());
            }

            var amount = this.moneyParser.Parse(rawHtmlData.FilteredHtml).Sum(x => x.Amount);

            this.mpTotalsByPublicationSet[rawHtmlData.MpKey][rawHtmlData.PublicationSet] = new PublicationSetTotal(rawHtmlData.PublicationSet, amount);
        }