Added user api calls and UserRepo

This commit is contained in:
Marcus Ferl 2023-07-08 21:10:18 +02:00
parent 4c201db61b
commit f64af6e0af
3 changed files with 190 additions and 1 deletions

View File

@ -0,0 +1,92 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Weiferl.Api.Repos;
using Weiferl.Databas.EF.Models;
namespace Weiferl.Api.Controllers
{
[ApiController]
[Route("api")]
public class Users : ControllerBase
{
private readonly UserRepo userRepo;
public Users()
{
userRepo = new UserRepo();
}
[HttpGet("getAllUsers")]
public async Task<IActionResult> GetAllUsers()
{
try
{
var users = await userRepo.GetAllUsers();
return Ok(users);
}
catch (Exception ex)
{
return BadRequest(ex);
}
}
[HttpPost("addUser")]
public async Task<IActionResult> AddUser()
{
var user = new User
{
UserId = Guid.NewGuid(),
Firstname = "Marcus",
Lastname = "Ferl",
Birthday = new DateTime(1986, 01, 17),
Email = "marcus@weifer.de",
IsDeleted = false,
};
try
{
await userRepo.CreateUser(user);
return Ok();
}
catch (Exception ex)
{
return BadRequest(ex);
}
}
[HttpPost("updateUser")]
public async Task<IActionResult> UpdateUser()
{
var user = new User
{
UserId = Guid.NewGuid(),
Firstname = "Susanne",
Lastname = "Weik",
Birthday = new DateTime(1985, 02, 21),
Email = "susanne@weifer.de",
IsDeleted = false,
};
try
{
await userRepo.UpdateUser(user, 1);
return Ok();
}
catch (Exception ex)
{
return BadRequest(ex);
}
}
[HttpPost("removeUser")]
public async Task<IActionResult> RemoveUser()
{
try
{
await userRepo.RemoveUser(1);
return Ok();
}
catch (Exception ex)
{
return BadRequest(ex);
}
}
}
}

View File

@ -0,0 +1,97 @@
using Microsoft.EntityFrameworkCore;
using Weiferl.Databas.EF;
using Weiferl.Databas.EF.Models;
namespace Weiferl.Api.Repos
{
public class UserRepo
{
readonly private HardwareShopContext dbContext;
public UserRepo()
{
this .dbContext = new HardwareShopContext();
}
public async Task CreateUser(User user)
{
try
{
dbContext.User.Add(user);
dbContext.SaveChanges();
}
catch (Exception ex)
{
throw ex;
}
}
public async Task<User> GetUser(int id)
{
try
{
var user = dbContext.User.FirstOrDefault(u => u.Id == id);
return user;
}
catch (Exception ex)
{
throw ex;
}
}
public async Task<IEnumerable<User>> GetAllUsers()
{
try
{
var users = dbContext.User.ToList();
return users;
}
catch (Exception ex)
{
throw ex;
}
}
public async Task UpdateUser(User updatedUser, int id)
{
var user = await dbContext.User.FindAsync(id);
if(user != null)
{
user.Firstname = updatedUser.Firstname;
user.Lastname = updatedUser.Lastname;
user.Birthday = updatedUser.Birthday;
user.Email = updatedUser.Email;
user.IsDeleted = updatedUser.IsDeleted;
}
try
{
await dbContext.SaveChangesAsync();
}
catch (Exception ex)
{
throw ex;
}
}
public async Task RemoveUser(int id)
{
var user = await dbContext.User.FindAsync(id);
if(user != null)
{
user.Firstname = "Deleted";
user.Lastname = "User";
user.Birthday = DateTime.Now;
user.Email = "@@@";
user.IsDeleted = true;
}
try
{
await dbContext.SaveChangesAsync();
}
catch (Exception ex)
{
throw ex;
}
}
}
}

View File

@ -12,7 +12,7 @@
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.8" />
<PackageReference Include="MySql.EntityFrameworkCore" Version="7.0.2" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
<PackageReference Include="Weiferl.Databas.EF" Version="1.0.1" />
<PackageReference Include="Weiferl.Databas.EF" Version="1.0.2" />
</ItemGroup>
<ItemGroup>