public TaxBaseWithholdDefinition() : base(ArticleRole.ARTICLE_TAX_BASE_WITHHOLD)
 {
     ArticleSources = ArticleDefinition.CreateParams();
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("TaxableBasis", FieldType.TAmountDec)
         );
 }
        public RuleEvaluationResult EvaluateRule(ArticleDefinition articleDefinition)
        {
            var diagramSection = articleDefinition.GetSections().FirstOrDefault(sect => sect.Name == "Diagrams");

            if (diagramSection == null)
            {
                return(new RuleEvaluationResult()
                {
                    FailureMessage = "Diagram Section Not Found",
                    Success = false,
                    RuleName = _name
                });
            }

            if (diagramSection.ContentElements.All(ce => ce.ContentType == ContentType.Resource))
            {
                return new RuleEvaluationResult()
                       {
                           Success  = true,
                           RuleName = _name
                       }
            }
            ;

            return(new RuleEvaluationResult()
            {
                FailureMessage = "Diagram Section may only contain Resource Elements",
                Success = false
            });
        }
    }
Ejemplo n.º 3
0
        public async Task <ArticleContent> ReadArticle(ArticleDefinition definition, CancellationToken token)
        {
            logger.LogDebug("Reading article text: {0}", definition.Id);
            var page        = (await reader.Read(definition.Url, token).ConfigureAwait(false)).GetDocument();
            var doc         = page.DocumentNode;
            var article     = doc.QuerySelector("div.article-body");
            var description = doc.QuerySelector("div.article-title h1");
            var lead        = article.QuerySelector("div.delfi-article-lead");
            var row         = article.QuerySelector("div.col-xs-8");

            var builder   = new StringBuilder();
            var pargraphs = lead.QuerySelectorAll("p")
                            .Concat(row.ChildNodes.First(item => string.Compare(item.Name, "DIV", StringComparison.OrdinalIgnoreCase) == 0)
                                    .QuerySelectorAll("p"));

            foreach (var pargraph in pargraphs)
            {
                foreach (var textNode in pargraph.ChildNodes.Where(item => item is HtmlTextNode || string.Compare(item.Name, "a", StringComparison.OrdinalIgnoreCase) == 0))
                {
                    builder.Append(textNode.InnerText.Trim());
                    builder.Append(' ');
                }
            }

            return(new ArticleContent
            {
                Title = description.InnerText?.Trim(),
                Text = builder.ToString()
            });
        }
Ejemplo n.º 4
0
 public TaxIncomesAdvanceDefinition() : base(ArticleRole.ARTICLE_TAX_INCOMES_ADVANCE)
 {
     ArticleSources = ArticleDefinition.CreateParams();
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("IncomeTaxable", FieldType.TAmountDec)
         );
 }
Ejemplo n.º 5
0
 public TaxIncomesWithholdGeneralDefinition() : base(ArticleRole.ARTICLE_TAX_INCOMES_WITHHOLD_GENERAL)
 {
     ArticleSources = ArticleDefinition.CreateParams();
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("IncomeTaxable", FieldType.TAmountDec)
         );
 }
 public PositionTimesheetDefinition() : base(ArticleRole.ARTICLE_POSITION_TIMESHEET)
 {
     ArticleSources = ArticleDefinition.CreateParams(
         CreateParam("HoursSchedule", FieldType.TSheetSeconds),
         CreateParam("HoursInPeriod", FieldType.TSheetSeconds));
     ArticleResults = ArticleDefinition.CreateParams();
 }
Ejemplo n.º 7
0
        private async Task <Article> ArticleReceived(ArticleDefinition definition)
        {
            var transformed = transformer.Transform(definition);

            logger.LogDebug("ArticleReceived: {0}({1})", transformed.Title, transformed.Id);
            if (scannedLookup.TryGetValue(transformed.Id, out _))
            {
                logger.LogDebug("Article already processed: {0}", transformed.Id);
                return(null);
            }

            scannedLookup[transformed.Id] = true;
            try
            {
                var result = await reader.Read(transformed, tokenSource.Token).ConfigureAwait(false);

                scanned[transformed.Id] = result;
                return(result);
            }
            catch (Exception e)
            {
                logger.LogError(e, "Failed");
            }

            return(null);
        }
 public TaxBaseAdvanceDefinition() : base(ArticleRole.ARTICLE_TAX_BASE_ADVANCE)
 {
     ArticleSources = ArticleDefinition.CreateParams();
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("TaxableBasis", FieldType.TAmountDec)
         );
 }
Ejemplo n.º 9
0
 public AlphaCommentsReader(ILoggerFactory loggerFactory, ArticleDefinition article, ITrackedRetrieval reader)
 {
     this.article = article ?? throw new ArgumentNullException(nameof(article));
     logger       = loggerFactory?.CreateLogger <AlphaCommentsReader>() ??
                    throw new ArgumentNullException(nameof(logger));
     this.reader = reader ?? throw new ArgumentNullException(nameof(reader));
 }
Ejemplo n.º 10
0
        public void GivenIHaveCreatedAnArticleDefinitionWithAnIndexForAManufacturer()
        {
            var x = _articleController.Post(new Models.Creators.ArticleDefinitionCreationRequest());


            _manufacturerIndex = new ArticleIndex(Guid.NewGuid(), IndexType.Manufacturer);
            _articleDefinition = _articleController.Index(_articleDefinition.EntityId, _manufacturerIndex);
        }
Ejemplo n.º 11
0
 public PositionScheduleDefinition() : base(ArticleRole.ARTICLE_POSITION_SCHEDULE)
 {
     ArticleSources = ArticleDefinition.CreateParams(
         CreateParam("ShiftLiable", FieldType.TSeconds),
         CreateParam("ShiftActual", FieldType.TSeconds),
         CreateParam("ScheduleType", FieldType.WorkScheduleType));
     ArticleResults = ArticleDefinition.CreateParams();
 }
 public PositionTermDefinition() : base(ArticleRole.ARTICLE_POSITION_TERM)
 {
     ArticleSources = ArticleDefinition.CreateParams(
         CreateParam("DateFrom", FieldType.DATE),
         CreateParam("DateStop", FieldType.DATE),
         CreateParam("PositionType", FieldType.WorkPositionType));
     ArticleResults = ArticleDefinition.CreateParams();
 }
 public InsIncomesHealthDefinition() : base(ArticleRole.ARTICLE_INS_INCOMES_HEALTH)
 {
     ArticleSources = ArticleDefinition.CreateParams();
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("SummarizeType", FieldType.WorkHealthTerms),
         CreateParam("IncomeExclude", FieldType.TAmountDec),
         CreateParam("IncomeRelated", FieldType.TAmountDec));
 }
Ejemplo n.º 14
0
        private void SetUp(List <Guid> testIndexes, IRepository <ArticleDefinition> repository)
        {
            var articleDefn = new ArticleDefinition();

            testIndexes.ForEach(idx => articleDefn.AddIndex(new ArticleIndex(idx, It.IsAny <IndexType>())));

            repository.Save(articleDefn);
        }
Ejemplo n.º 15
0
        public void AddedValidPublicationRuleWithNoFailuresReturnsPublicationAddedEvent()
        {
            var ad = new ArticleDefinition();

            var publicationAddedResult = ad.AddPublicationRule(new PublicationRule());

            Assert.IsInstanceOfType(publicationAddedResult, typeof(PublicationRuleAddedEvent));
        }
Ejemplo n.º 16
0
 public InsDeclarationHealthDefinition() : base(ArticleRole.ARTICLE_INS_DECLARATION_HEALTH)
 {
     ArticleSources = ArticleDefinition.CreateParams(
         CreateParam("StatementType", FieldType.BYTE),
         CreateParam("SummarizeType", FieldType.WorkHealthTerms));
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("StatementType", FieldType.BYTE),
         CreateParam("SummarizeType", FieldType.WorkHealthTerms));
 }
 public ContractAttendItemDefinition() : base(ArticleRole.ARTICLE_CONTRACT_ATTEND_ITEM)
 {
     ArticleSources = ArticleDefinition.CreateParams(
         CreateParam("DayFrom", FieldType.TDay),
         CreateParam("DayStop", FieldType.TDay),
         CreateParam("PieceInDays", FieldType.AWorkDayPieceType),
         CreateParam("HoursInDays", FieldType.TSheetSeconds));
     ArticleResults = ArticleDefinition.CreateParams();
 }
Ejemplo n.º 18
0
        public void AddedValidPublicationRuleWithThatRaisesPublicationErrorsReturnsPublicationWithFailuresEvent()
        {
            var ad = new ArticleDefinition();

            var publicationAddedResult = ad.AddPublicationRule(new PublicationRule());

            Assert.IsInstanceOfType(publicationAddedResult, typeof(PublicationRuleAddedEvent));
            Assert.IsNotNull(((PublicationRuleAddedEvent)publicationAddedResult).EvaluationResults);
        }
Ejemplo n.º 19
0
        public void InvalidSectionAddedToArticleRaisesSectionAddedEvent()
        {
            var ad         = new ArticleDefinition();
            var newSection = new Section();

            var sectionAddedResult = ad.AddSection(newSection);

            Assert.IsInstanceOfType(sectionAddedResult, typeof(SectionAddFailedEvent));
        }
 public InsDeclarationSocialDefinition() : base(ArticleRole.ARTICLE_INS_DECLARATION_SOCIAL)
 {
     ArticleSources = ArticleDefinition.CreateParams(
         CreateParam("StatementType", FieldType.BYTE),
         CreateParam("SummarizeType", FieldType.WorkSocialTerms));
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("StatementType", FieldType.BYTE),
         CreateParam("SummarizeType", FieldType.WorkSocialTerms));
 }
Ejemplo n.º 21
0
        public void UpdateOrCreateArticle(ArticleDefinition articleDefinition)
        {
            var response = _soapClient.ProcessArticle(_goodsOwner.Name, _user.Name, _user.Password, articleDefinition);

            if (!response.Success)
            {
                throw CreateSdkException(response);
            }
        }
Ejemplo n.º 22
0
        public async Task Init()
        {
            Helper      = new NetworkHelper();
            Article     = new ArticleDefinition();
            Article.Id  = "4211146";
            Article.Url = new Uri("https://seekingalpha.com/article/4210510-apple-price-matters");
            await Helper.Container.Resolve <IAuthentication>().Authenticate(CancellationToken.None).ConfigureAwait(false);

            Readers = Helper.Container.Resolve <IArticleDataReader>();
        }
 public ContractTermDefinition() : base(ArticleRole.ARTICLE_CONTRACT_TERM)
 {
     ArticleSources = ArticleDefinition.CreateParams(
         CreateParam("DateFrom", FieldType.DATE),
         CreateParam("DateStop", FieldType.DATE),
         CreateParam("ContractType", FieldType.WorkEmployTerms));
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("PeriodDayFrom", FieldType.TDay),
         CreateParam("PeriodDayStop", FieldType.TDay),
         CreateParam("PeriodTermStatus", FieldType.BYTE));
 }
Ejemplo n.º 24
0
        public async Task ReadArticle()
        {
            var definition = new ArticleDefinition();

            definition.Url = new Uri("https://www.delfi.lt/zz");
            var text = await instance.ReadArticle(definition, CancellationToken.None);

            Assert.IsNotNull(text);
            Assert.GreaterOrEqual(text.Text.Length, 100);
            Assert.GreaterOrEqual(text.Title.Length, 100);
        }
 public PositionMonthlyAmountDefinition() : base(ArticleRole.ARTICLE_POSITION_MONTHLY_AMOUNT)
 {
     ArticleSources = ArticleDefinition.CreateParams(
         CreateParam("MonthlyAmount", FieldType.TAmountDec),
         CreateRefer("ShiftLiable", FieldType.SHORT, ArticleRole.ARTICLE_POSITION_SCHEDULE),  // Plný Úvazek
         CreateRefer("ShiftWorked", FieldType.SHORT, ArticleRole.ARTICLE_POSITION_SCHEDULE),  // Skuteèný úvazek
         CreateRefer("HoursLiable", FieldType.SHORT, ArticleRole.ARTICLE_POSITION_TIMESHEET), // Hodin skuteèného úvazku
         CreateRefer("HoursWorked", FieldType.SHORT, ArticleRole.ARTICLE_POSITION_WORKING));  // Hodin odpracováno
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("Payment", FieldType.TAmountDec));
 }
Ejemplo n.º 26
0
        private ArticleDefinition BuildArticleDefinitionWithRules()
        {
            var ad = new ArticleDefinition();

            ad.AddPublicationRule(new ArticleMustHaveDiagramSection("Article must have a diagram section"));
            ad.AddPublicationRule(new ArticleSectionCountRule(2, "Article must have 6 sections"));
            ad.AddPublicationRule(new DiagramSectionMustOnlyContainResourceElements("Diagram must only have resource elements"));


            return(ad);
        }
        public async Task ReadArticle()
        {
            var definition = new ArticleDefinition();

            definition.Url = new Uri("https://seekingalpha.com/article/4210510-apple-price-matters");
            var text = await instance.ReadArticle(definition, CancellationToken.None).ConfigureAwait(false);

            Assert.IsNotNull(text);
            Assert.GreaterOrEqual(text.Text.Length, 100);
            Assert.AreEqual("Apple: Price Matters", text.Title);
        }
Ejemplo n.º 28
0
        public void AddedIndexRaisesNewIndexEvent()
        {
            //setup
            var ad       = new ArticleDefinition();
            var indexRef = Guid.NewGuid();
            var index    = new ArticleIndex(indexRef, IndexType.Manufacturer);

            var indexAddedEvent = ad.AddIndex(index);

            Assert.IsInstanceOfType(indexAddedEvent, typeof(IndexAddedEvent));
        }
Ejemplo n.º 29
0
        public async Task ReadArticle()
        {
            var tokenSource = new CancellationTokenSource(2000);
            var definition  = new ArticleDefinition();

            definition.Url = new Uri("https://www.delfi.lt/auto/patarimai/siulo-keliuose-statyti-naujo-tipo-matuoklius-gales-daugiau-nei-isivaizduojate.d?id=80585701");
            var text = await instance.ReadArticle(definition, tokenSource.Token);

            Assert.IsNotNull(text);
            Assert.GreaterOrEqual(text.Text.Length, 100);
            Assert.GreaterOrEqual(text.Title.Length, 10);
        }
Ejemplo n.º 30
0
 public TaxIncomesHealthDefinition() : base(ArticleRole.ARTICLE_TAX_INCOMES_HEALTH)
 {
     ArticleSources = ArticleDefinition.CreateParams();
     ArticleResults = ArticleDefinition.CreateParams(
         CreateParam("SummarizeType", FieldType.WorkTaxingTerms),
         CreateParam("StatementType", FieldType.BYTE),
         CreateParam("ResidencyType", FieldType.BYTE),
         CreateParam("IncomeGeneral", FieldType.TAmountDec),
         CreateParam("IncomeExclude", FieldType.TAmountDec),
         CreateParam("IncomeTaskAgr", FieldType.TAmountDec),
         CreateParam("IncomePartner", FieldType.TAmountDec));
 }