コード例 #1
0
        public ActionResult Put(string emailAddress, UserUpdateRequest userUpdateRequest)
        {
            User existingUser = new User();

            existingUser = _userRepository.GetUserByEmailAddressAsync(emailAddress).Result;

            if (existingUser == null)
            {
                return(NotFound($"Cannot update [{emailAddress}], does not exist"));
            }

            try
            {
                var user = _mapper.Map <User>(userUpdateRequest);
                user.Id           = existingUser.Id;
                user.EmailAddress = existingUser.EmailAddress;

                var userUpdated  = _userRepository.UpdateUser(emailAddress, user).Result;
                var userResponse = _mapper.Map <UserResponse>(userUpdated);
                _logger.LogInformation($"updated user: {userResponse}");
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                return(Problem($"There was a problem processing your request:{ex}"));
            }

            return(NoContent());
        }
コード例 #2
0
        public ActionResult <UserResponse> Post(UserRequest userCreateRequest)
        {
            User user = new User();

            user    = _mapper.Map <User>(userCreateRequest);
            user.Id = Guid.NewGuid().ToString();
            var userResponse = new UserResponse();

            var isUserExists = _userRepository.GetUserByEmailAddressAsync(userCreateRequest.EmailAddress).Result;

            if (isUserExists != null)
            {
                return(Conflict($"Email: {userCreateRequest.EmailAddress} already in use"));
            }

            try
            {
                var userCreated = _userRepository.CreateUser(user).Result;
                userResponse = _mapper.Map <UserResponse>(userCreated);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                return(Problem($"There was a problem processing your request:{ex}"));
            }

            return(CreatedAtAction(nameof(Get), new { id = user.Id }, userResponse));
        }
コード例 #3
0
        public async Task <ApiDemo.Domain.User> GetUserByEmailAddressAsync(string emailAddress)
        {
            try
            {
                ApiDemo.Domain.User user = _container.GetItemLinqQueryable <ApiDemo.Domain.User>(true)
                                           .Where(b => b.EmailAddress == emailAddress)
                                           .AsEnumerable()
                                           .FirstOrDefault();

                return(user);
            }
            catch (CosmosException ex) when(ex.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                return(null);
            }
        }
コード例 #4
0
        public async Task <ApiDemo.Domain.User> UpdateUser(string emailAddress, ApiDemo.Domain.User user)
        {
            ItemResponse <ApiDemo.Domain.User> res = await _container.UpsertItemAsync <ApiDemo.Domain.User>(user, new PartitionKey(emailAddress));

            return(res.Resource);
        }
コード例 #5
0
        public async Task <ApiDemo.Domain.User> CreateUser(ApiDemo.Domain.User user)
        {
            ItemResponse <ApiDemo.Domain.User> res = await this._container.CreateItemAsync <ApiDemo.Domain.User>(user, new PartitionKey(user.EmailAddress));

            return(res.Resource);
        }