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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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}%')");
Beispiel #5
0
        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));
 }