Пример #1
0
        public void UserCreationTest()
        {
            const string position = "General";

            var needPosition = new PositionsApi(_conf).Get().Records.Find(x => x.Name == position);

            var user = new CreationUserModel
            {
                DisplayName         = Guid.NewGuid().ToString(),
                BirthDate           = new DateTime(1993, 09, 07).ToString("yyyy-MM-dd"),
                PositionId          = needPosition.Id.ToString(),
                WorkPeriodStartDate = DateTime.Now.Date.AddDays(-5).ToString("yyyy-MM-dd")
            };

            var responseModelUser = new UsersApi(_conf).PutUser(user);

            responseModelUser.ShouldSatisfyAllConditions(
                () => responseModelUser.IsSuccess.GetValueOrDefault().ShouldBeTrue(),
                () => responseModelUser.Errors.ShouldBeNull(),
                () => responseModelUser.Result.ShouldBeOfType(typeof(User))
                );

            new UsersApi(_conf).GetFilteredUsers(new RequestUsersModel()).Records.ShouldContain(x =>
                                                                                                x.DisplayName == user.DisplayName && x.Id == responseModelUser.Result.Id);
        }
Пример #2
0
        public void UserDeletionTest()
        {
            const string position = "General";

            var needPosition = new PositionsApi(_conf).Get().Records.Find(x => x.Name == position);

            var user = new CreationUserModel
            {
                DisplayName         = Guid.NewGuid().ToString(),
                BirthDate           = new DateTime(1993, 09, 07).ToString("yyyy-MM-dd"),
                PositionId          = needPosition.Id.ToString(),
                WorkPeriodStartDate = DateTime.Now.Date.AddDays(-5).ToString("yyyy-MM-dd")
            };
            var responseModelUser = new UsersApi(_conf).PutUser(user);

            new UsersApi(_conf).DeleteUser(responseModelUser.Result.Id);
        }
Пример #3
0
        public void InvalidPositionTest()
        {
            var user = new CreationUserModel
            {
                DisplayName         = Guid.NewGuid().ToString(),
                BirthDate           = new DateTime(1993, 09, 07).ToString("yyyy-MM-dd"),
                PositionId          = Guid.NewGuid().ToString(),
                WorkPeriodStartDate = DateTime.Now.Date.AddDays(-5).ToString("yyyy-MM-dd")
            };

            var error = Should.Throw <ApiException>(() => new UsersApi(_conf).PutUser(user));

            error.ShouldSatisfyAllConditions(
                () => error.ErrorCode.ShouldBe(400),
                () => error.Message.ShouldContain(
                    "{\"isSuccess\":false,\"errors\":[\"Position not found\"],\"result\":null}"
                    )
                );
        }
Пример #4
0
        public async Task <ActionResult <ResponseModel <User> > > PutUser([FromBody] CreationUserModel request)
        {
            ResponseModel <User> result;
            var validator        = new UserCreateValidator();
            var validationResult = validator.Validate(request);

            if (!validationResult.IsValid)
            {
                result = new ResponseModel <User>
                {
                    Errors    = validationResult.Errors.Select(x => x.ErrorMessage).ToList(),
                    IsSuccess = false,
                    Result    = null
                };
                return(BadRequest(result));
            }

            try
            {
                result = new ResponseModel <User>
                {
                    Errors    = null,
                    IsSuccess = true,
                    Result    = await _userRepository.PutUser(request)
                };
            }
            catch (ValidationException e)
            {
                Console.WriteLine(e);
                result = new ResponseModel <User>
                {
                    Errors = new List <string> {
                        e.Message
                    },
                    IsSuccess = false,
                    Result    = null
                };
                return(BadRequest(result));
            }

            return(result);
        }
Пример #5
0
        public async Task <User> PutUser(CreationUserModel user)
        {
            using (var context = ContextFactory.CreateDbContext(ConnectionString))
            {
                var positionEntry = context.Set <Position>()
                                    .AsQueryable().FirstOrDefault(x => user.PositionId != null && x.Id == new Guid(user.PositionId));
                if (positionEntry == null)
                {
                    throw new ValidationException("Position not found");
                }
                var createdUser = await context.Set <User>().AddAsync(new User
                {
                    Position            = positionEntry,
                    BirthDate           = user.GetBirthDateTime(),
                    DisplayName         = user.DisplayName,
                    WorkPeriodStartDate = user.GetWorkPeriodStartDateTime()
                });

                await context.SaveChangesAsync();

                return(createdUser.Entity);
            }
        }
Пример #6
0
        /// <summary>
        ///
        /// </summary>
        /// <exception cref="ApiClientProject.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="request"> (optional)</param>
        /// <returns>Task of ApiResponse (ResponseModelUser)</returns>
        public async System.Threading.Tasks.Task <ApiResponse <ResponseModelUser> > PutUserAsyncWithHttpInfo(CreationUserModel request = null)
        {
            var    localVarPath         = "/api/Users";
            var    localVarPathParams   = new Dictionary <String, String>();
            var    localVarQueryParams  = new List <KeyValuePair <String, String> >();
            var    localVarHeaderParams = new Dictionary <String, String>(Configuration.DefaultHeader);
            var    localVarFormParams   = new Dictionary <String, String>();
            var    localVarFileParams   = new Dictionary <String, FileParameter>();
            Object localVarPostBody     = null;

            // to determine the Content-Type header
            String[] localVarHttpContentTypes = new String[] {
                "application/json-patch+json",
                "application/json",
                "text/json",
                "application/_*+json"
            };
            String localVarHttpContentType = Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes);

            // to determine the Accept header
            String[] localVarHttpHeaderAccepts = new String[] {
                "text/plain",
                "application/json",
                "text/json"
            };
            String localVarHttpHeaderAccept = Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);

            if (localVarHttpHeaderAccept != null)
            {
                localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);
            }

            if (request != null && request.GetType() != typeof(byte[]))
            {
                localVarPostBody = Configuration.ApiClient.Serialize(request); // http body (model) parameter
            }
            else
            {
                localVarPostBody = request; // byte array
            }


            // make the HTTP request
            IRestResponse localVarResponse = (IRestResponse)await Configuration.ApiClient.CallApiAsync(localVarPath,
                                                                                                       Method.PUT, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
                                                                                                       localVarPathParams, localVarHttpContentType);

            int localVarStatusCode = (int)localVarResponse.StatusCode;

            if (ExceptionFactory != null)
            {
                Exception exception = ExceptionFactory("PutUser", localVarResponse);
                if (exception != null)
                {
                    throw exception;
                }
            }

            return(new ApiResponse <ResponseModelUser>(localVarStatusCode,
                                                       localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()),
                                                       (ResponseModelUser)Configuration.ApiClient.Deserialize(localVarResponse, typeof(ResponseModelUser))));
        }
Пример #7
0
        /// <summary>
        ///
        /// </summary>
        /// <exception cref="ApiClientProject.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="request"> (optional)</param>
        /// <returns>Task of ResponseModelUser</returns>
        public async System.Threading.Tasks.Task <ResponseModelUser> PutUserAsync(CreationUserModel request = null)
        {
            ApiResponse <ResponseModelUser> localVarResponse = await PutUserAsyncWithHttpInfo(request);

            return(localVarResponse.Data);
        }
Пример #8
0
        /// <summary>
        ///
        /// </summary>
        /// <exception cref="ApiClientProject.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="request"> (optional)</param>
        /// <returns>ResponseModelUser</returns>
        public ResponseModelUser PutUser(CreationUserModel request = null)
        {
            ApiResponse <ResponseModelUser> localVarResponse = PutUserWithHttpInfo(request);

            return(localVarResponse.Data);
        }