Witam tak jak w temacie, nie działają mi kontrolery get oraz post (innych nie sprawdzałem ale pewnie będzie to samo) jest może ktoś wstanie wytłumaczyć dlaczego nie działa ? Dodam że serwer cały czas wywala błąd 500
using System;
using System.Threading.Tasks;
using Portal.Api.BindingModels;
using Portal.Api.Validation;
using Portal.Api.ViewModels;
using Portal.Data.Sql;
using Portal.Data.Sql.DAO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
namespace Portal.Api.Controllers
{
[ApiVersion( "1.0" )]
[Route( "api/v{version:apiVersion}/[controller]" )]
public class UserController : Controller
{
private readonly PortalDbContext _context;
public UserController(PortalDbContext context)
{
_context = context;
}
[HttpGet("{userId:min(1)}", Name = "GetUserById")]
public async Task<IActionResult> GetUserById(int idUser)
{
var uzytkownik = await _context.Uzytkownik.FirstOrDefaultAsync(x=>x.IdUser== idUser);
if (uzytkownik != null)
{
return Ok(new UserViewModel
{
Id = uzytkownik.IdUser,
IdUser = uzytkownik.IdUser,
Name = uzytkownik.Name,
LastName = uzytkownik.LastName,
Age = uzytkownik.Age,
BirthDate = uzytkownik.BirthDate,
Gender = uzytkownik.Gender,
Nationality = uzytkownik.Nationality,
Login = uzytkownik.Login,
Password = uzytkownik.Password,
Email = uzytkownik.Email,
Couple = uzytkownik.Couple,
});
}
return NotFound();
}
[HttpGet("name/{userName}", Name = "GetUserByUserName")]
public async Task<IActionResult> GetUserByUserName(string name)
{
var uzytkownik = await _context.Uzytkownik.FirstOrDefaultAsync(x=>x.Name == name);
if (uzytkownik != null)
{
return Ok(new UserViewModel
{
Id = uzytkownik.IdUser,
IdUser = uzytkownik.IdUser,
Name = uzytkownik.Name,
LastName = uzytkownik.LastName,
Age = uzytkownik.Age,
BirthDate = uzytkownik.BirthDate,
Gender = uzytkownik.Gender,
Nationality = uzytkownik.Nationality,
Login = uzytkownik.Login,
Password = uzytkownik.Password,
Email = uzytkownik.Email,
Couple = uzytkownik.Couple,
});
}
return NotFound();
}
[ValidateModel]
// [Consumes("application/x-www-form-urlencoded")]
// [HttpPost("create", Name = "CreateUser")]
public async Task<IActionResult> Post([FromBody] CreateUser createUser)
{
var uzytkownik = new Uzytkownik { Email = createUser.Email,
Name = createUser.Name,
LastName= createUser.LastName,
Gender = createUser.Gender,
BirthDate = createUser.BirthDate,};
await _context.AddAsync(uzytkownik);
await _context.SaveChangesAsync();
return Created(uzytkownik.Id.ToString(),new UserViewModel
{
IdUser = uzytkownik.IdUser,
Name = uzytkownik.Name,
LastName = uzytkownik.LastName,
Age = uzytkownik.Age,
BirthDate = uzytkownik.BirthDate,
Gender = uzytkownik.Gender,
Nationality = uzytkownik.Nationality,
Login = uzytkownik.Login,
Password = uzytkownik.Password,
Email = uzytkownik.Email,
Couple = uzytkownik.Couple,
}) ;
}
[ValidateModel]
[HttpPatch("edit/{userId:min(1)}", Name = "EditUser")]
// public async Task<IActionResult> EditUser([FromBody] EditUser editUser,[FromQuery] int userId)
public async Task<IActionResult> EditUser([FromBody] EditUser editUser, int Id)
{
var uzytkownik = await _context.Uzytkownik.FirstOrDefaultAsync(x=>x.Id == Id);
uzytkownik.Name = editUser.Name;
uzytkownik.Email = editUser.Email;
uzytkownik.BirthDate = editUser.BirthDate;
uzytkownik.Gender = editUser.Gender;
await _context.SaveChangesAsync();
return NoContent();
return Ok(new UserViewModel
{
IdUser = uzytkownik.IdUser,
Name = uzytkownik.Name,
LastName = uzytkownik.LastName,
Age = uzytkownik.Age,
BirthDate = uzytkownik.BirthDate,
Gender = uzytkownik.Gender,
Nationality = uzytkownik.Nationality,
Login = uzytkownik.Login,
Password = uzytkownik.Password,
Email = uzytkownik.Email,
Couple = uzytkownik.Couple,
});
}
}
}