コード例 #1
0
        public async Task <IActionResult> Register(UserPostDTO userAttemptingToRegister)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Check if username already exists.
            User existingUser = await _db.Users.FirstOrDefaultAsync(u => u.Username == userAttemptingToRegister.Username);

            if (existingUser != null)
            {
                return(Conflict(new { message = _errorMessageUsernameExists }));
            }

            try
            {
                User newUser = UserPostDTO.ToModel(userAttemptingToRegister);

                await _db.Users.AddAsync(newUser);

                await _db.SaveChangesAsync();

                string locationUri = $"{_baseUrl}/api/v1/users/{newUser.UserId}";

                return(Created(locationUri, UserGetDTO.FromModel(newUser)));
            }
            catch (DbUpdateException)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  _errorMessageSavingData));
            }
        }
コード例 #2
0
        private async void TriggerAuthorWebhook(Event triggeringEvent, dynamic changedObject, int userId)
        {
            User userTriggeringHook = await _db.Users
                                      .Where(u => u.UserId == userId)
                                      .FirstOrDefaultAsync();

            try
            {
                await _hooks.Trigger(
                    new WebhookData {
                    Event  = triggeringEvent,
                    User   = UserGetDTO.FromModel(userTriggeringHook),
                    Object = changedObject
                });
            }
            catch (InvalidOperationException exception)
            {
                // Log that there was a bad URL.
                _logger.LogInformation(exception.Message.ToString());
            }
            catch (HttpRequestException exception)
            {
                // Log that the URL didn't accept POST request.
                _logger.LogInformation(exception.Message.ToString());
            }
        }
コード例 #3
0
 public async Task <IActionResult> GetUsers()
 {
     try
     {
         return(Ok(await _db.Users
                   .OrderBy(u => u.Username)
                   .Select(u => UserGetDTO.FromModel(u))
                   .ToListAsync()));
     }
     catch (InvalidOperationException)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError,
                           _errorMessageFetchingData));
     }
 }
コード例 #4
0
        public async Task <IActionResult> GetUser(int id)
        {
            User existingUser = await _db.Users
                                .Where(u => u.UserId == id)
                                .FirstOrDefaultAsync();

            if (existingUser == null)
            {
                return(NotFound());
            }

            try
            {
                UserGetDTO userResponseDto = UserGetDTO.FromModel(existingUser);

                return(Ok(userResponseDto));
            }
            catch (InvalidOperationException)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  _errorMessageFetchingData));
            }
        }