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)); } }
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()); } }
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)); } }
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)); } }