public ServiceResult <CorporateActionsResponse> GetCorporateActions(Guid stockId)
        {
            if (_Portfolio == null)
            {
                return(ServiceResult <CorporateActionsResponse> .NotFound());
            }

            var holding = _Portfolio.Holdings[stockId];

            if (holding == null)
            {
                return(ServiceResult <CorporateActionsResponse> .NotFound());
            }

            var response = new CorporateActionsResponse();

            foreach (var corporateAction in holding.Stock.CorporateActions.InDateRange(holding.EffectivePeriod))
            {
                if (!corporateAction.HasBeenApplied(_Portfolio.Transactions))
                {
                    response.CorporateActions.Add(new CorporateActionsResponse.CorporateActionItem()
                    {
                        Id          = corporateAction.Id,
                        ActionDate  = corporateAction.Date,
                        Stock       = corporateAction.Stock.ToSummaryResponse(corporateAction.Date),
                        Description = corporateAction.Description
                    });
                }
            }

            return(ServiceResult <CorporateActionsResponse> .Ok(response));
        }
Esempio n. 2
0
        public void GetCorporateActions()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var response = new CorporateActionsResponse();

            var service = mockRepository.Create <IPortfolioCorporateActionsService>();

            service.Setup(x => x.GetCorporateActions()).Returns(ServiceResult <CorporateActionsResponse> .Ok(response)).Verifiable();

            var controller = new PortfolioController();
            var result     = controller.GetCorporateActions(service.Object);

            result.Result.Should().BeOkObjectResult().Value.Should().Be(response);

            mockRepository.VerifyAll();
        }
Esempio n. 3
0
        public async Task GetCorporateActions()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var portfolioId = Guid.NewGuid();
            var response    = new CorporateActionsResponse();

            var messageHandler = mockRepository.Create <IRestClientMessageHandler>();

            messageHandler.SetupProperty(x => x.Portfolio, portfolioId);
            messageHandler.Setup(x => x.GetAsync <CorporateActionsResponse>(It.Is <string>(x => x == "portfolio/" + portfolioId + "/corporateactions")))
            .Returns(Task <IncomeResponse> .FromResult(response))
            .Verifiable();

            var resource = new PortfolioResource(messageHandler.Object);

            var result = await resource.GetCorporateActions();

            result.Should().Be(response);

            mockRepository.Verify();
        }