public OmniDataFileLineModel CreateYearToDateLineModel( FeeType feeType) { var yearToDateRequest = CalculateReturnRequestFactory.YearToDate(_endMonth); var yearToDateResult = _portfolio.CalculateReturn(yearToDateRequest, feeType); if (yearToDateResult.HasError) { return(null); } return(CreateYearToDateModel(_endMonth, yearToDateResult, feeType)); }
public void TwelveMonthShouldReturnRequestForThreeBeforeTheGivenEndDate() { var monthYear = new MonthYear(2000, 5); var request = CalculateReturnRequestFactory.TwelveMonth(monthYear); var expected = new CalculateReturnRequest() { AnnualizeAction = AnnualizeActionEnum.Annualize, EndMonth = monthYear, NumberOfMonths = 12 }; AssertRequestAreEqual(request, expected); }
public void YearToDateShouldReturnRequestFromFirstOfYearToEndMonth( int year, int month, int expectedNumberOfMonths) { var monthYear = new MonthYear(year, month); var request = CalculateReturnRequestFactory.YearToDate(monthYear); var expected = new CalculateReturnRequest() { AnnualizeAction = AnnualizeActionEnum.Annualize, EndMonth = monthYear, NumberOfMonths = expectedNumberOfMonths }; AssertRequestAreEqual(request, expected); }
public IEnumerable <OmniDataFileLineModel> CreateQuarterLineModels(FeeType feeType) { var models = new List <OmniDataFileLineModel>(); _januaryToGivenMonth.ForEachMonthInRange( m => { if (m.IsLastMonthOfQuarter) { var calculateQuarterRequest = CalculateReturnRequestFactory.ThreeMonth(m); var netQuarterResult = _portfolio.CalculateReturn(calculateQuarterRequest, feeType); if (!netQuarterResult.HasError) { models.Add(CreateQuarterModel(m, netQuarterResult, feeType)); } } }); return(models); }
private PortfolioListRecord CreatePortfolioRecord( MonthYear monthYear, InvestmentVehicle portfolio) { var oneMonth = CalculateNetOfFeesReturn(portfolio, CalculateReturnRequestFactory.OneMonth(monthYear)); var threeMonth = CalculateNetOfFeesReturn(portfolio, CalculateReturnRequestFactory.ThreeMonth(monthYear)); var yearToDate = CalculateNetOfFeesReturn(portfolio, CalculateReturnRequestFactory.YearToDate(monthYear)); var record = new PortfolioListRecord() { PortfolioNumber = portfolio.Number, PortfolioName = portfolio.Name, OneMonth = oneMonth, ThreeMonth = threeMonth, YearToDate = yearToDate }; return(record); }
private PerformanceReportExcelReportRecordModel CreateExcelRecord( InvestmentVehicle portfolio, MonthYear monthYear, FeeType feeType, string entityType) { var recordModel = new PerformanceReportExcelReportRecordModel() { EntityNumber = portfolio.Number, Name = portfolio.Name, Type = entityType, FeeType = feeType.DisplayName, }; var oneMonthRequest = CalculateReturnRequestFactory.OneMonth(monthYear); var oneMonthResult = portfolio.CalculateReturn(oneMonthRequest, feeType); recordModel.OneMonth = oneMonthResult.GetValueNullOnError(); var threeMonthRequest = CalculateReturnRequestFactory.ThreeMonth(monthYear); var threeMonthResult = portfolio.CalculateReturn(threeMonthRequest, feeType); recordModel.ThreeMonths = threeMonthResult.GetValueNullOnError(); var twelveMonthRequest = CalculateReturnRequestFactory.TwelveMonth(monthYear); var twelveMonthResult = portfolio.CalculateReturn(twelveMonthRequest, feeType); recordModel.TwelveMonths = twelveMonthResult.GetValueNullOnError(); var yearToDateRequest = CalculateReturnRequestFactory.YearToDate(monthYear); var yearToDateResult = portfolio.CalculateReturn(yearToDateRequest, feeType); recordModel.YearToDate = yearToDateResult.GetValueNullOnError(); return(recordModel); }