update Item Models und Controller
This commit is contained in:
parent
7f94b25e57
commit
7bdb85d842
4 changed files with 129 additions and 5 deletions
|
@ -2,6 +2,7 @@ using System.Collections.Generic;
|
|||
using BuecherwurmAPI.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Linq;
|
||||
using Microsoft.Data.Sqlite;
|
||||
//using Microsoft.EntityFrameworkCore;
|
||||
|
||||
|
||||
|
@ -9,11 +10,11 @@ namespace BuecherwurmAPI.Controllers
|
|||
{
|
||||
[Route("inventar")]
|
||||
[ApiController]
|
||||
public class InventarController : ControllerBase
|
||||
public class ItemController : ControllerBase
|
||||
{
|
||||
private readonly IItemRepo _repository;
|
||||
|
||||
public InventarController(IItemRepo repository)
|
||||
public ItemController(IItemRepo repository)
|
||||
{
|
||||
_repository = repository;
|
||||
}
|
||||
|
@ -27,12 +28,13 @@ namespace BuecherwurmAPI.Controllers
|
|||
|
||||
// POST Inventar
|
||||
[HttpPost]
|
||||
public ActionResult<IEnumerable<Item>> NewItem(Item item)
|
||||
public ActionResult<IEnumerable<Item>> NewItem(int bookId)
|
||||
{
|
||||
return Ok(new Item
|
||||
{
|
||||
Id = item.Id,
|
||||
BookId = item.BookId,
|
||||
|
||||
ItemId = itemId,
|
||||
BookId = bookId
|
||||
});
|
||||
}
|
||||
|
9
DTOs/ItemRead.cs
Normal file
9
DTOs/ItemRead.cs
Normal file
|
@ -0,0 +1,9 @@
|
|||
using System;
|
||||
|
||||
namespace BuecherwurmAPI.DTOs
|
||||
{
|
||||
public class ItemReadDTO
|
||||
{
|
||||
public int BookId { get; set;}
|
||||
}
|
||||
}
|
112
Models/ItemModel.cs
Normal file
112
Models/ItemModel.cs
Normal file
|
@ -0,0 +1,112 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BuecherwurmAPI.Models;
|
||||
using Microsoft.Data.Sqlite;
|
||||
using Microsoft.VisualBasic.CompilerServices;
|
||||
|
||||
namespace BuecherwurmAPI.Models
|
||||
{
|
||||
internal class ItemModel : IItemRepo
|
||||
{
|
||||
private SqliteConnection _dbConnection;
|
||||
|
||||
public ItemModel()
|
||||
{
|
||||
var connectionBuilder = new SqliteConnectionStringBuilder {DataSource = "LongWormMemory.db"};
|
||||
_dbConnection = new SqliteConnection(connectionBuilder.ConnectionString);
|
||||
_dbConnection.Open();
|
||||
}
|
||||
|
||||
public bool IdExits(string table, long id)
|
||||
{
|
||||
using (var command = _dbConnection.CreateCommand())
|
||||
{
|
||||
command.Parameters.Add(new SqliteParameter("@Id", SqliteType.Integer)).Value = id;
|
||||
|
||||
// Certain parts of the query can't be filled with variables for security reasons.
|
||||
switch (table)
|
||||
{
|
||||
case Tables.Table.Items:
|
||||
command.CommandText = @"SELECT EXISTS(SELECT 0 FROM Items WHERE Id = @Id)";
|
||||
break;
|
||||
}
|
||||
|
||||
var dr = command.ExecuteReader();
|
||||
|
||||
long result = 0;
|
||||
while (dr.Read())
|
||||
{
|
||||
result = (long) dr[0];
|
||||
}
|
||||
return result != 0;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<Item> GetAllItems()
|
||||
{
|
||||
var items = new List<Item>();
|
||||
|
||||
// using automatically disposes the command after completion
|
||||
using (var command = _dbConnection.CreateCommand())
|
||||
{
|
||||
command.CommandText = @"SELECT * FROM Items";
|
||||
var dataReader = command.ExecuteReader();
|
||||
|
||||
while (dataReader.Read())
|
||||
{
|
||||
var returned = (long) dataReader["Returned"] == 1;
|
||||
|
||||
items.Add(new Item
|
||||
{
|
||||
ItemId = (int) dataReader["ItemId"],
|
||||
BookId = (int) dataReader["BookId"]
|
||||
});
|
||||
}
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
public Item GetItemById(int id)
|
||||
{
|
||||
using (var command = _dbConnection.CreateCommand())
|
||||
{
|
||||
command.Parameters.Add(new SqliteParameter("@id", SqliteType.Integer)).Value = id;
|
||||
command.CommandText = @"SELECT * FROM Items WHERE Id = @id";
|
||||
var dataReader = command.ExecuteReader();
|
||||
|
||||
while (dataReader.Read())
|
||||
{
|
||||
var returned = (long) dataReader["Returned"] == 1;
|
||||
|
||||
var item = new Item
|
||||
{
|
||||
ItemId = (int) dataReader["ItemId"],
|
||||
BookId = (int) dataReader["BookId"]
|
||||
};
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public Item NewItem(int bookId)
|
||||
{
|
||||
using (var command = _dbConnection.CreateCommand())
|
||||
{
|
||||
//hier soll jetz der NewItem Command folgen. ein POST mit EingabeInfo {id} = "BookId"
|
||||
command.CommandText = @"INSERT INTO Item(ItemId,BookId) OUTPUT INSERTED.ID VALUES (@ItemID,@BookId";
|
||||
return item;
|
||||
}
|
||||
}
|
||||
|
||||
public void DeleteItem(Item item)
|
||||
{
|
||||
using (var command = _dbConnection.CreateCommand())
|
||||
{
|
||||
command.Parameters.Add(new SqliteParameter("@id", SqliteType.Integer)).Value = item;
|
||||
//hier soll jetz der NewItem Command folgen. ein POST mit EingabeInfo {id} = "BookId"
|
||||
|
||||
command.CommandText = @"SELECT * FROM Items WHERE ItemId = @id";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,6 +6,7 @@ namespace BuecherwurmAPI.Models
|
|||
{
|
||||
public const string Lends = "Lends";
|
||||
public const string Katalog = "Katalog";
|
||||
public const string Items = "Items";
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue