public MemberCriteria CreateMemberCriteria(MemberCriteriaModel criteriaModel) { return(new MemberCriteria { Ids = criteriaModel.Ids?.Select(int.Parse), CommunityId = criteriaModel.CommunityId, Email = criteriaModel.Email, Name = criteriaModel.Name, Role = criteriaModel.Role, Page = criteriaModel.Page, PageSize = criteriaModel.PageSize }); }
public async Task <MemberResponseModel> GetMembers(MemberCriteriaModel criteriaModel) { var criteria = _modelFactory.CreateMemberCriteria(criteriaModel); var membersCount = await _memberDao.CountMembers(criteria).ConfigureAwait(false); var memberResponse = new MemberResponse { Links = CreateLinks(criteria.Page, criteria.PageSize, membersCount), Results = await CreateMembers(criteria, membersCount).ConfigureAwait(false) }; return(_modelFactory.CreateMemberResponseModel(memberResponse)); }
public void Should_not_return_Artifacts_When_page_do_not_exist() { _memberDao.CountMembers(Arg.Any <MemberCriteria>()).ReturnsForAnyArgs(50); _memberDao.GetMembers(Arg.Any <MemberCriteria>()) .ReturnsForAnyArgs(_fixture.CreateMany <Member>(50)); var criteria = new MemberCriteriaModel { Page = 10, PageSize = 20 }; var results = _memberRepo.GetMembers(criteria).Result; results.Results.Should().BeEmpty(); }
public void Should_return_5_members_when_service_get_all_members() { var response = _fixture.Build <MemberResponseModel>() .With(x => x.Results, _fixture.Build <MemberModel>() .CreateMany(5).ToList()) .Create(); var fakeCriteria = new MemberCriteriaModel(); var fakeRepo = Substitute.For <IMemberRepository>(); fakeRepo.GetMembers(fakeCriteria).ReturnsForAnyArgs(response); var memberService = new MemberService(fakeRepo); var result = memberService.GetMembers(fakeCriteria).Result; result.Results.FirstOrDefault().Should().BeOfType <MemberModel>(); result.Results.Count().Should().Be(5); }
public void Should_validate_criteria_when_no_filter_was_specified() { var criteria = new MemberCriteriaModel { Ids = null, CommunityId = null, Email = null, Name = null, Role = null, PageSize = 20, Page = 1 }; _validator.ShouldNotHaveValidationErrorFor(x => x.Ids, criteria); _validator.ShouldNotHaveValidationErrorFor(x => x.CommunityId, criteria); _validator.ShouldNotHaveValidationErrorFor(x => x.Email, criteria); _validator.ShouldNotHaveValidationErrorFor(x => x.Name, criteria); _validator.ShouldNotHaveValidationErrorFor(x => x.Role, criteria); _validator.ShouldNotHaveValidationErrorFor(x => x.PageSize, criteria); _validator.ShouldNotHaveValidationErrorFor(x => x.Page, criteria); }
public async Task <IHttpActionResult> GetMembers(string ids = null, string email = null, string name = null, CommunityRole?role = null, int?communityId = null, int page = 1, int pageSize = 20) { var memberCriteria = new MemberCriteriaModel { Ids = ids?.SafeSplit(), Email = email, Role = role, Name = name, CommunityId = communityId, Page = page, PageSize = pageSize }; var validationResults = _criteriaValidator.Validate(memberCriteria); if (validationResults.IsValid) { return(Ok(await _memberService.GetMembers(memberCriteria).ConfigureAwait(false))); } validationResults.AddToModelState(ModelState, null); return(BadRequest(ModelState)); }
public async Task <MemberResponseModel> GetMembers(MemberCriteriaModel criteriaModel) { return(await _memberRepository.GetMembers(criteriaModel).ConfigureAwait(false)); }