Added Main

This commit is contained in:
2025-02-08 14:01:15 +01:00
parent d14f828514
commit 621df92b27
187 changed files with 8574 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.IdentityModel.Tokens;
using noteApi.Dtos.Account;
using noteApi.Interfaces;
using noteApi.Models;
namespace noteApi.Controllers
{
[Route("api/account")]
[ApiController]
public class AccountController : ControllerBase
{
private readonly UserManager<AppUser> _userManager;
private readonly ITokenService _tokenService;
private readonly SignInManager<AppUser> _signInManager;
public AccountController(UserManager<AppUser> userManager, ITokenService tokenService, SignInManager<AppUser> signInManager)
{
_userManager = userManager;
_tokenService = tokenService;
_signInManager = signInManager;
}
[HttpPost("register")]
public async Task<IActionResult> Register([FromBody] RegisterDto registerDto)
{
try
{
if(!ModelState.IsValid)
return BadRequest(ModelState);
var appUser = new AppUser
{
UserName = registerDto.Username,
Email = registerDto.Email
};
var createUser = await _userManager.CreateAsync(appUser, registerDto.Password);
if (createUser.Succeeded)
{
var roleResult = await _userManager.AddToRoleAsync(appUser, "User");
if (roleResult.Succeeded)
{
return Ok(new NewUserDto{
UserName = appUser.UserName,
Email = appUser.Email,
Token = _tokenService.CreateToken(appUser)
});
}
else
{
return StatusCode(500, roleResult.Errors);
}
}
else
{
return StatusCode(500, createUser.Errors);
}
} catch (Exception ex)
{
return StatusCode(500, ex);
}
}
[HttpPost("login")]
public async Task<IActionResult> Login(LoginDto loginDto)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var user = await _userManager.Users.FirstOrDefaultAsync(x => x.UserName == loginDto.Username.ToLower());
if(user == null)
{
return Unauthorized("Invalid username!");
}
var result = await _signInManager.CheckPasswordSignInAsync(user, loginDto.Password, false);
if (!result.Succeeded) return Unauthorized("Username not found and/or Password incorrect!");
return Ok(
new NewUserDto
{
UserName = user.UserName,
Email = user.Email,
Token = _tokenService.CreateToken(user)
}
);
}
}
}

View File

@@ -0,0 +1,73 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using noteApi.Data;
using noteApi.Dtos.Note;
using noteApi.Interfaces;
namespace noteApi.Controllers
{
[Route("api/note")]
[ApiController]
public class NoteController : ControllerBase
{
private readonly INoteRepository _noteRepo;
public NoteController(INoteRepository noteRepository)
{
_noteRepo = noteRepository;
}
[HttpGet]
public async Task<IActionResult> GetAll()
{
var notes = await _noteRepo.GetAllAsync();
return Ok(notes);
}
[HttpGet("{id}")]
public async Task<IActionResult> GetById([FromRoute] int id)
{
var note = await _noteRepo.GetByIdAsync(id);
if(note == null)
{
return NotFound();
}
return Ok(note);
}
[HttpPost]
public async Task<IActionResult> Create([FromBody] CreateNoteDto noteDto)
{
var note = await _noteRepo.CreateAsync(noteDto);
return CreatedAtAction(nameof(GetById), new { id = note.Id }, note);
}
[HttpPut("{id}")]
public async Task<IActionResult> Update([FromRoute] int id, [FromBody] CreateNoteDto noteDto)
{
var note = await _noteRepo.UpdateAsync(id, noteDto);
if(note == null)
{
return NotFound();
}
return Ok(note);
}
[HttpDelete("{id}")]
public async Task<IActionResult> Delete([FromRoute] int id)
{
var note = await _noteRepo.DeleteAsync(id);
if(note == null)
{
return NotFound();
}
return NoContent();
}
}
}

View File

@@ -0,0 +1,32 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.VisualBasic;
using noteApi.Interfaces;
namespace noteApi.Controllers
{
[Route("api/status")]
[ApiController]
public class StatusController : ControllerBase
{
public readonly INoteRepository _noteRepo;
public StatusController(INoteRepository noteRepository)
{
_noteRepo = noteRepository;
}
[HttpGet]
public async Task<IActionResult> Get()
{
try
{
var stock = await _noteRepo.GetAllAsync();
return Ok();
}
catch (Exception ex)
{
return StatusCode(503);
}
}
}
}