Skip to content

Commit 1934bd2

Browse files
committed
Get all tables of specific restaurant
1 parent 3ad9874 commit 1934bd2

File tree

11 files changed

+95
-4
lines changed

11 files changed

+95
-4
lines changed

TableBookingAPI/TableBooking.Logic/Converters/TableConverters/ITableConverter.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ namespace TableBooking.Logic.Converters.TableConverters
55
{
66
public interface ITableConverter
77
{
8+
IEnumerable<TableDto> TablesToTableDtos(IEnumerable<Table> tables);
89
public TableDto TableToTableDto(Table table);
910
}
1011
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
using TableBooking.Model.Dtos.TableDtos;
7+
using TableBooking.Model.Models;
8+
9+
namespace TableBooking.Logic.Converters.TableConverters
10+
{
11+
public interface ITableToGetConverter
12+
{
13+
IEnumerable<GetTablesDto> TablesToTableDtos(IEnumerable<Table> tables);
14+
public GetTablesDto TableToTableDto(Table table);
15+
}
16+
}

TableBookingAPI/TableBooking.Logic/Converters/TableConverters/TableConverter.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
1-
using TableBooking.Model.Dtos.TableDtos;
1+
using TableBooking.Model.Dtos.RatingDtos;
2+
using TableBooking.Model.Dtos.TableDtos;
23
using TableBooking.Model.Models;
34

45
namespace TableBooking.Logic.Converters.TableConverters
56
{
67
public class TableConverter : ITableConverter
78
{
9+
public IEnumerable<TableDto> TablesToTableDtos(IEnumerable<Table> tables)
10+
{
11+
var tablesDto = new List<TableDto>();
12+
foreach (var table in tables)
13+
{
14+
tablesDto.Add(TableToTableDto(table));
15+
}
16+
return tablesDto;
17+
}
818
public TableDto TableToTableDto(Table table)
919
{
1020
return new TableDto
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using TableBooking.Model.Dtos.TableDtos;
2+
using TableBooking.Model.Models;
3+
4+
namespace TableBooking.Logic.Converters.TableConverters
5+
{
6+
public class TableToGetConverter : ITableToGetConverter
7+
{
8+
public IEnumerable<GetTablesDto> TablesToTableDtos(IEnumerable<Table> tables)
9+
{
10+
var tablesDto = new List<GetTablesDto>();
11+
foreach (var table in tables)
12+
{
13+
tablesDto.Add(TableToTableDto(table));
14+
}
15+
return tablesDto;
16+
}
17+
18+
public GetTablesDto TableToTableDto(Table table)
19+
{
20+
return new GetTablesDto
21+
{
22+
Id = table.Id,
23+
RestaurantId = table.Restaurant.Id,
24+
NumberOfSeats = table.NumberOfSeats
25+
};
26+
}
27+
}
28+
}

TableBookingAPI/TableBooking.Logic/Interfaces/ITableRepository.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ namespace TableBooking.Logic.Interfaces
44
{
55
public interface ITableRepository : IGenericRepository<Table>
66
{
7+
Task<IEnumerable<Table>> GetTablesByRestaurantIdAsync(Guid restaurantId);
78
}
89
}

TableBookingAPI/TableBooking.Logic/Repositories/TableRepository.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using TableBooking.Logic.Interfaces;
1+
using Microsoft.EntityFrameworkCore;
2+
using TableBooking.Logic.Interfaces;
23
using TableBooking.Model;
34
using TableBooking.Model.Models;
45

@@ -9,5 +10,12 @@ public class TableRepository : GenericRepository<Table>, ITableRepository
910
public TableRepository(TableBookingContext context) : base(context)
1011
{
1112
}
13+
public async Task<IEnumerable<Table>> GetTablesByRestaurantIdAsync(Guid restaurantId)
14+
{
15+
return await _objectSet
16+
.Include(x => x.Restaurant)
17+
.Where(x => x.Restaurant.Id.Equals(restaurantId))
18+
.ToListAsync();
19+
}
1220
}
1321
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace TableBooking.Model.Dtos.TableDtos
2+
{
3+
public class GetTablesDto
4+
{
5+
public Guid Id { get; set; }
6+
public int NumberOfSeats { get; set; }
7+
public Guid RestaurantId { get; set; }
8+
}
9+
}

TableBookingAPI/TableBooking/Controllers/TableController.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,18 @@ public async Task<IActionResult> GetAllTables()
2121
return await _tableService.GetAllTablesAsync();
2222
}
2323

24-
[HttpGet("GetTableById/{id}")]
24+
[HttpGet("GetTable/{id}")]
2525
public async Task<IActionResult> GetTableById(Guid id)
2626
{
2727
return await _tableService.GetTableByIdAsync(id);
2828
}
2929

30+
[HttpGet("GetTableByRestaurant")]
31+
public async Task<IActionResult> GetTableByRestaurantId([FromQuery] Guid restaurantId)
32+
{
33+
return await _tableService.GetTableByRestaurantAsync(restaurantId);
34+
}
35+
3036
[HttpPost("CreateTable")]
3137
public async Task<IActionResult> CreateTable([FromBody] TableDto tableDto)
3238
{

TableBookingAPI/TableBooking/Interfaces/ITableService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public interface ITableService
77
{
88
public Task<IActionResult> GetAllTablesAsync();
99
public Task<IActionResult> GetTableByIdAsync(Guid tableId);
10+
public Task<IActionResult> GetTableByRestaurantAsync(Guid restaurantId);
1011
public Task<IActionResult> CreateTableAsync(TableDto dto);
1112
public Task<IActionResult> UpdateTableAsync(TableDto dto);
1213
public Task<IActionResult> DeleteTableAsync(Guid tableId);

TableBookingAPI/TableBooking/Program.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@
126126
builder.Services.AddScoped<IUnitOfWork, UnitOfWork>();
127127

128128
builder.Services.AddTransient<ITableConverter, TableConverter>(); // doczytaj debilu
129+
builder.Services.AddTransient<ITableToGetConverter, TableToGetConverter>();
129130
builder.Services.AddTransient<IRatingConverter, RatingConverter>();
130131
builder.Services.AddTransient<IShortUserInfoConverter, ShortUserInfoConverter>();
131132

0 commit comments

Comments
 (0)