public void TestRegistration(UserRequestDataModel userRequestMock, bool expectedResult, string expectedMessage) { //Arrange //Act var actualResult = _registerUserValidator.Validate(userRequestMock); //_output.WriteLine(JsonConvert.SerializeObject(actualResult)); //Assert Assert.Equal(expectedResult, actualResult.IsValid); if (!string.IsNullOrEmpty(expectedMessage)) { Assert.Contains(expectedMessage, actualResult.Errors.Select(x => x.ErrorMessage)); } }
public static UserRequestDataModel Map(UserRequestModel filterModel) { if (filterModel is null) { return(new UserRequestDataModel()); } var filter = new UserRequestDataModel { SortPropertyName = filterModel.SortPropertyName, SearchString = filterModel.SearchString, SortType = filterModel.SortType, Paging = _pagingMapper.Map(filterModel.Paging) }; return(filter); }
public async Task <UserResponseDataModel> FilterAsync(UserRequestDataModel userRequestDataModel) { var quariableUsers = DbSet .Where(user => EF.Functions.Like(string.Concat(user.FirstName, user.LastName), $"%{userRequestDataModel.SearchString}%") && !user.IsRemoved) .OrderBy($"{userRequestDataModel.SortPropertyName}", $"{userRequestDataModel.SortType}"); var totalCount = await quariableUsers.CountAsync(); var users = await quariableUsers .Skip(userRequestDataModel.Paging.CurrentPage *userRequestDataModel.Paging.ItemsCount) .Take(userRequestDataModel.Paging.ItemsCount) .ToListAsync(); var result = new UserResponseDataModel { Users = users, TotalCount = totalCount }; return(result); }
public async Task <UserResponseDataModel> FilterAsync(UserRequestDataModel userRequestDataModel) { var query = new StringBuilder(); query.Append($@"SELECT * FROM {tableName} WHERE (FirstName LIKE '%{userRequestDataModel.SearchString}%' OR LastName LIKE '%{userRequestDataModel.SearchString}%') AND IsRemoved = 0 "); if (string.IsNullOrWhiteSpace(userRequestDataModel.SortPropertyName)) { userRequestDataModel.SortPropertyName = "Email"; } query.Append($"ORDER BY {userRequestDataModel.SortPropertyName} {userRequestDataModel.SortType.ToString().ToUpper()} "); query.Append($@"OFFSET {userRequestDataModel.Paging.CurrentPage * userRequestDataModel.Paging.ItemsCount} ROWS FETCH NEXT {userRequestDataModel.Paging.ItemsCount} ROWS ONLY"); using (var dbContext = new SqlConnection(connectionString)) { await dbContext.OpenAsync(); var users = await dbContext.QueryAsync <User>(query.ToString()); query.Clear(); query.Append(@$ "SELECT COUNT(*) FROM {tableName} WHERE ({tableName}.FirstName LIKE '%{userRequestDataModel.SearchString}%' OR {tableName}.LastName LIKE '%{userRequestDataModel.SearchString}%')");
public async Task <IActionResult> UpdateUser([FromRoute] string id, [FromBody] UserRequestDataModel model) { _validationContext.SetValidator(new UpdateUserRequestValidator()); var validationResult = _validationContext.Validate(model); if (!validationResult.IsValid) { validationResult.AddToModelState(ModelState, null); return(StatusCode(400, ModelHelpers.DecorateModelState(ModelState))); } var user = _mapper.Map <User>(model); var createUserServiceResponse = await _userService.UpdateUser(id, user); if (!createUserServiceResponse.IsSuccess) { createUserServiceResponse.Errors.AddToModelState(ModelState, null); return(StatusCode(createUserServiceResponse.Status.ToHttpStatusCode(), ModelHelpers.DecorateModelState(ModelState, createUserServiceResponse.Status.GetDescription()))); } return(Ok(createUserServiceResponse.Result)); }
public ValidationResult Validate(UserRequestDataModel userRequest) { return(_validator.Validate(userRequest)); }