public StatisticsModule(IRemarkStatisticsRepository remarkStatisticsRepository, IUserStatisticsRepository userStatisticsRepository, ICategoryStatisticsRepository categoryStatisticsRepository, ITagStatisticsRepository tagStatisticsRepository, IMapper mapper) : base(mapper, "statistics") { Get("remarks", async args => await FetchCollection <BrowseRemarkStatistics, RemarkStatistics> (async x => await remarkStatisticsRepository.BrowseAsync(x)) .MapTo <RemarkStatistics>() .HandleAsync()); Get("remarks/{id}", async args => await Fetch <GetRemarkStatistics, RemarkStatistics> (async x => await remarkStatisticsRepository.GetAsync(x.Id)) .MapTo <RemarkStatistics>() .HandleAsync()); Get("remarks/general", async args => await Fetch <GetRemarkGeneralStatistics, RemarksCountStatistics> (async x => await remarkStatisticsRepository.GetGeneralStatisticsAsync(x)) .MapTo <RemarksCountStatisticsDto>() .HandleAsync()); Get("categories", async args => await FetchCollection <BrowseCategoryStatistics, CategoryStatistics> (async x => await categoryStatisticsRepository.BrowseAsync(x)) .MapTo <CategoryStatisticsDto>() .HandleAsync()); Get("tags", async args => await FetchCollection <BrowseTagStatistics, TagStatistics> (async x => await tagStatisticsRepository.BrowseAsync(x)) .MapTo <TagStatisticsDto>() .HandleAsync()); Get("users", async args => await FetchCollection <BrowseUserStatistics, UserStatistics> (async x => await userStatisticsRepository.BrowseAsync(x)) .MapTo <UserStatisticsDto>() .HandleAsync()); Get("users/{id}", async args => await Fetch <GetUserStatistics, UserStatistics> (async x => await userStatisticsRepository.GetByIdAsync(x.Id)) .MapTo <UserStatisticsDto>() .HandleAsync()); }