Update Fuktion wurde eingefügt

[HttpPut]
Funktion erstellt um ins Json zu schreiben
This commit is contained in:
marcusferl@weifer.de 2022-05-27 07:44:42 +02:00
parent 599384c2b1
commit 0faead3a34
4 changed files with 56 additions and 10 deletions

View File

@ -40,6 +40,7 @@ namespace Aps_Single_Page_Anwendung.Controllers
return Ok(sepeise); return Ok(sepeise);
} }
// Zum Hinzufügen von Daten
[HttpPost] [HttpPost]
public IActionResult Post([FromBody] Speise speise) public IActionResult Post([FromBody] Speise speise)
{ {
@ -50,5 +51,29 @@ namespace Aps_Single_Page_Anwendung.Controllers
var result = _repository.CreateSpeise(speise); var result = _repository.CreateSpeise(speise);
return CreatedAtAction("Get",new { id = result.Id },result); //Name der Action (Get), gibt Statuscode 201 zurück return CreatedAtAction("Get",new { id = result.Id },result); //Name der Action (Get), gibt Statuscode 201 zurück
} }
[HttpPut("{id}")]
// Zum ändern der Daten
public IActionResult Put(int id, [FromBody] Speise speise)
{
if (id != speise.Id)
{
return BadRequest();
}
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if(_repository.GetSpeiseById(id) == null)
{
return NotFound();
}
var result = _repository.UpdateSpeise(speise);
return Ok(result);
}
} }
} }

View File

@ -5,10 +5,14 @@ namespace Aps_Single_Page_Anwendung.Models
public class Speise public class Speise
{ {
public int Id { get; set; } public int Id { get; set; }
[Required] // Leere Felder sind damit nicht möglich [Required] // Leere Felder sind damit nicht möglich
public string Name { get; set; } public string Name { get; set; }
public string Beschreibung { get; set; } public string Beschreibung { get; set; }
[Range(0,25)] // Preis darf nur zwischen 0 und 25 Euro sein
public double Preis { get; set; } public double Preis { get; set; }
public int KategorieId { get; set; } public int KategorieId { get; set; }
public Kategorie Kategorie { get; set; } public Kategorie Kategorie { get; set; }
} }

View File

@ -33,13 +33,10 @@ namespace Aps_Single_Page_Anwendung.Repositories
speisen.Add(speise); speisen.Add(speise);
var options = new JsonSerializerOptions Filesave(speisen);
{
WriteIndented = true // Zeilenumbrüche
};
var json = JsonSerializer.Serialize(speisen, options);
File.WriteAllText(_path, json); // schreibt ins File
return speise; return speise;
} }
public void DeleteSpeise(int id) public void DeleteSpeise(int id)
@ -64,9 +61,29 @@ namespace Aps_Single_Page_Anwendung.Repositories
var speisen = JsonSerializer.Deserialize<Speise[]>(json, option); var speisen = JsonSerializer.Deserialize<Speise[]>(json, option);
return speisen; return speisen;
} }
public Speise UpdateSpeise(Speise speise) public Speise UpdateSpeise(Speise speise)
{ {
throw new System.NotImplementedException(); var speisen = GetSpeisen().ToList();
var speiseToUpdate = speisen.SingleOrDefault(speise_ => speise_.Id == speise.Id);
speiseToUpdate.Name = speise.Name;
speiseToUpdate.Preis = speise.Preis;
speiseToUpdate.Beschreibung = speise.Beschreibung;
speiseToUpdate.KategorieId = speise.KategorieId;
Filesave(speisen);
return speiseToUpdate;
}
// Funktion zum schreiben in die Json Datai
public void Filesave(List<Speise> speisen)
{
var options = new JsonSerializerOptions
{
WriteIndented = true // Zeilenumbrüche
};
var json = JsonSerializer.Serialize(speisen, options);
File.WriteAllText(_path, json); // schreibt ins File
} }
} }
} }

View File

@ -178,8 +178,8 @@
{ {
"Id": 23, "Id": 23,
"Name": "Gemischter Salato", "Name": "Gemischter Salato",
"Beschreibung": "Salat nach Art des Hauses. Gemischter Salat, Mais, Paprika, K\u00E4se, Zwiebeln, Orange", "Beschreibung": "Salat nach Art des Hauses mit dem Besten aus der K\u00FCche. Gemischter Salat, Mais, Paprika, K\u00E4se, Zwiebeln, Orange",
"Preis": 9.49, "Preis": 19.49,
"KategorieId": 1, "KategorieId": 1,
"Kategorie": null "Kategorie": null
} }