Post request erstellt für das Hinzufügen

This commit is contained in:
marcusferl@weifer.de 2022-05-23 08:53:44 +02:00
parent 9626339098
commit 599384c2b1
4 changed files with 222 additions and 162 deletions

View File

@ -39,5 +39,16 @@ namespace Aps_Single_Page_Anwendung.Controllers
} }
return Ok(sepeise); return Ok(sepeise);
} }
[HttpPost]
public IActionResult Post([FromBody] Speise speise)
{
if(!ModelState.IsValid)
{
return BadRequest(ModelState); // Alle Felder müssen ausgefüllt werden, stonst Statuscode 400
}
var result = _repository.CreateSpeise(speise);
return CreatedAtAction("Get",new { id = result.Id },result); //Name der Action (Get), gibt Statuscode 201 zurück
}
} }
} }

View File

@ -1,8 +1,11 @@
namespace Aps_Single_Page_Anwendung.Models using System.ComponentModel.DataAnnotations;
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
public string Name { get; set; } public string Name { get; set; }
public string Beschreibung { get; set; } public string Beschreibung { get; set; }
public double Preis { get; set; } public double Preis { get; set; }

View File

@ -20,7 +20,26 @@ namespace Aps_Single_Page_Anwendung.Repositories
// Implementierung der Methoden vom Interfave ISpeisenRepository // Implementierung der Methoden vom Interfave ISpeisenRepository
public Speise CreateSpeise(Speise speise) public Speise CreateSpeise(Speise speise)
{ {
throw new System.NotImplementedException(); var speisen = GetSpeisen()?.ToList() ?? new List<Speise>();
if(speisen.Count == 0)
{
speise.Id = 1;
}
else
{
speise.Id = speisen.Max(speise_ => speise_.Id) + 1; // Id Auto increment
}
speisen.Add(speise);
var options = new JsonSerializerOptions
{
WriteIndented = true // Zeilenumbrüche
};
var json = JsonSerializer.Serialize(speisen, options);
File.WriteAllText(_path, json); // schreibt ins File
return speise;
} }
public void DeleteSpeise(int id) public void DeleteSpeise(int id)
@ -28,10 +47,10 @@ namespace Aps_Single_Page_Anwendung.Repositories
throw new System.NotImplementedException(); throw new System.NotImplementedException();
} }
public Speise GetSpeiseById(int id) public Speise GetSpeiseById(int id)
{ {
return GetSpeisen()?.SingleOrDefault( return GetSpeisen()?.SingleOrDefault(speise => speise.Id == id); // Einzelner Datensatz und davon die id
x => x.Id == id);
} }
public IEnumerable<Speise> GetSpeisen() public IEnumerable<Speise> GetSpeisen()

View File

@ -1,159 +1,186 @@
[{ [
"id": 1, {
"name": "Gemischter Salat", "Id": 1,
"beschreibung": "Salat nach Art des Hauses. Gemischter Salat, Mais, Paprika, Käse, Zwiebeln", "Name": "Gemischter Salat",
"preis": 3.49, "Beschreibung": "Salat nach Art des Hauses. Gemischter Salat, Mais, Paprika, K\u00E4se, Zwiebeln",
"kategorieid": 1 "Preis": 3.49,
"KategorieId": 1,
"Kategorie": null
}, },
{ {
"id": 2, "Id": 2,
"name": "Salat Diabolo", "Name": "Salat Diabolo",
"beschreibung": "Gemischter Salat mit Chillis, Paprika, Radieschen und Zwiebeln (scharf!)", "Beschreibung": "Gemischter Salat mit Chillis, Paprika, Radieschen und Zwiebeln (scharf!)",
"preis": 3.99, "Preis": 3.99,
"kategorieid": 1 "KategorieId": 1,
"Kategorie": null
}, },
{ {
"id": 3, "Id": 3,
"name": "Rote Suppe", "Name": "Rote Suppe",
"beschreibung": "Tomatensuppe", "Beschreibung": "Tomatensuppe",
"preis": 3.29, "Preis": 3.29,
"kategorieid": 2 "KategorieId": 2,
"Kategorie": null
}, },
{ {
"id": 4, "Id": 4,
"name": "Grüne Suppe", "Name": "Gr\u00FCne Suppe",
"beschreibung": "Gemüsecremesuppe", "Beschreibung": "Gem\u00FCsecremesuppe",
"preis": 4.39, "Preis": 4.39,
"kategorieid": 2 "KategorieId": 2,
}, "Kategorie": null
{
"id": 5,
"name": "Tortilla de patatas",
"beschreibung": "Spanisches Omlett aus Eiern und Kartoffeln",
"preis": 4.99,
"kategorieid": 3
}, },
{ {
"id": 6, "Id": 5,
"name": "Patatas bravas", "Name": "Tortilla de patatas",
"beschreibung": "Gebratene Kartoffelstücke in pikanter Sauce", "Beschreibung": "Spanisches Omlett aus Eiern und Kartoffeln",
"preis": 3.99, "Preis": 4.99,
"kategorieid": 3 "KategorieId": 3,
"Kategorie": null
}, },
{ {
"id": 7, "Id": 6,
"name": "Pimientos al grill", "Name": "Patatas bravas",
"beschreibung": "Gegrillte Paprika", "Beschreibung": "Gebratene Kartoffelst\u00FCcke in pikanter Sauce",
"preis": 2.99, "Preis": 3.99,
"kategorieid": 3 "KategorieId": 3,
"Kategorie": null
}, },
{ {
"id": 8, "Id": 7,
"name": "Pan con alioli", "Name": "Pimientos al grill",
"beschreibung": "Ailoli mit Brot", "Beschreibung": "Gegrillte Paprika",
"preis": 2.29, "Preis": 2.99,
"kategorieid": 3 "KategorieId": 3,
"Kategorie": null
}, },
{ {
"id": 9, "Id": 8,
"name": "Pan con tomate y ajo", "Name": "Pan con alioli",
"beschreibung": "Brot mit Tomate und Knoblauch", "Beschreibung": "Ailoli mit Brot",
"preis": 2.29, "Preis": 2.29,
"kategorieid": 3 "KategorieId": 3,
"Kategorie": null
}, },
{ {
"id": 10, "Id": 9,
"name": "Tortilla Chips", "Name": "Pan con tomate y ajo",
"beschreibung": "Tortilla Chips mit Salsa Dip, Guacamole oder Alioli", "Beschreibung": "Brot mit Tomate und Knoblauch",
"preis": 1.29, "Preis": 2.29,
"kategorieid": 3 "KategorieId": 3,
}, "Kategorie": null
{
"id": 11,
"name": "Chilli sin carne",
"beschreibung": "Vegetarisches Chilli, serviert mit Reis",
"preis": 5.39,
"kategorieid": 4
}, },
{ {
"id": 12, "Id": 10,
"name": "Enchiladas de verduras", "Name": "Tortilla Chips",
"beschreibung": "Überbackene Maistortillas gefüllt mit Gemüse", "Beschreibung": "Tortilla Chips mit Salsa Dip, Guacamole oder Alioli",
"preis": 4.99, "Preis": 1.29,
"kategorieid": 4 "KategorieId": 3,
"Kategorie": null
}, },
{ {
"id": 13, "Id": 11,
"name": "Burritos de verduras", "Name": "Chilli sin carne",
"beschreibung": "Weizentortillas gefüllt mit Gemüse", "Beschreibung": "Vegetarisches Chilli, serviert mit Reis",
"preis": 4.99, "Preis": 5.39,
"kategorieid": 4 "KategorieId": 4,
"Kategorie": null
}, },
{ {
"id": 14, "Id": 12,
"name": "Arroz con verduras", "Name": "Enchiladas de verduras",
"beschreibung": "Reis-/Gemüsepfanne", "Beschreibung": "\u00DCberbackene Maistortillas gef\u00FCllt mit Gem\u00FCse",
"preis": 4.49, "Preis": 4.99,
"kategorieid": 4 "KategorieId": 4,
"Kategorie": null
}, },
{ {
"id": 15, "Id": 13,
"name": "Empanadas de espinacas y maíz", "Name": "Burritos de verduras",
"beschreibung": "Teigtaschen gefüllt mit Spinat und Mais", "Beschreibung": "Weizentortillas gef\u00FCllt mit Gem\u00FCse",
"preis": 4.49, "Preis": 4.99,
"kategorieid": 4 "KategorieId": 4,
}, "Kategorie": null
{
"id": 16,
"name": "Crema Catalana",
"beschreibung": "Katalanische Creme",
"preis": 2.49,
"kategorieid": 5
}, },
{ {
"id": 17, "Id": 14,
"name": "Ensalada de frutas", "Name": "Arroz con verduras",
"beschreibung": "Obstsalat mit frischen Früchten", "Beschreibung": "Reis-/Gem\u00FCsepfanne",
"preis": 2.99, "Preis": 4.49,
"kategorieid": 5 "KategorieId": 4,
"Kategorie": null
}, },
{ {
"id": 18, "Id": 15,
"name": "Churros", "Name": "Empanadas de espinacas y ma\u00EDz",
"beschreibung": "Spritzgebäck mit Zucker", "Beschreibung": "Teigtaschen gef\u00FCllt mit Spinat und Mais",
"preis": 1.99, "Preis": 4.49,
"kategorieid": 5 "KategorieId": 4,
}, "Kategorie": null
{
"id": 19,
"name": "Agua mineral",
"beschreibung": "Mineralwasser",
"preis": 1.59,
"kategorieid": 6
}, },
{ {
"id": 20, "Id": 16,
"name": "Zumo de manzana", "Name": "Crema Catalana",
"beschreibung": "Apfelsaft", "Beschreibung": "Katalanische Creme",
"preis": 1.59, "Preis": 2.49,
"kategorieid": 6 "KategorieId": 5,
"Kategorie": null
}, },
{ {
"id": 21, "Id": 17,
"name": "Limonada", "Name": "Ensalada de frutas",
"beschreibung": "Zitronenlimonade", "Beschreibung": "Obstsalat mit frischen Fr\u00FCchten",
"preis": 1.59, "Preis": 2.99,
"kategorieid": 6 "KategorieId": 5,
"Kategorie": null
}, },
{ {
"id": 22, "Id": 18,
"name": "Café", "Name": "Churros",
"beschreibung": "Kaffee", "Beschreibung": "Spritzgeb\u00E4ck mit Zucker",
"preis": 1.59, "Preis": 1.99,
"kategorieid": 6 "KategorieId": 5,
"Kategorie": null
},
{
"Id": 19,
"Name": "Agua mineral",
"Beschreibung": "Mineralwasser",
"Preis": 1.59,
"KategorieId": 6,
"Kategorie": null
},
{
"Id": 20,
"Name": "Zumo de manzana",
"Beschreibung": "Apfelsaft",
"Preis": 1.59,
"KategorieId": 6,
"Kategorie": null
},
{
"Id": 21,
"Name": "Limonada",
"Beschreibung": "Zitronenlimonade",
"Preis": 1.59,
"KategorieId": 6,
"Kategorie": null
},
{
"Id": 22,
"Name": "Caf\u00E9",
"Beschreibung": "Kaffee",
"Preis": 1.59,
"KategorieId": 6,
"Kategorie": null
},
{
"Id": 23,
"Name": "Gemischter Salato",
"Beschreibung": "Salat nach Art des Hauses. Gemischter Salat, Mais, Paprika, K\u00E4se, Zwiebeln, Orange",
"Preis": 9.49,
"KategorieId": 1,
"Kategorie": null
} }
] ]