Add project
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||
using Web.Data;
|
||||
using Web.Models;
|
||||
|
||||
namespace Web.Services;
|
||||
|
||||
public interface IOrdersService
|
||||
{
|
||||
Task<Order?> GetOrderAsync(Guid id);
|
||||
Task<Order[]> GetOrdersAsync();
|
||||
|
||||
Task<Order> CreateOrderAsync(CreateOrderDto dto);
|
||||
}
|
||||
|
||||
internal class OrdersService(AppDbContext dbCtx) : IOrdersService
|
||||
{
|
||||
public async Task<Order?> GetOrderAsync(Guid id)
|
||||
{
|
||||
Order? order = await dbCtx.Orders.FindAsync(id);
|
||||
return order;
|
||||
}
|
||||
|
||||
public async Task<Order[]> GetOrdersAsync()
|
||||
{
|
||||
Order[] orders =
|
||||
await dbCtx.Orders
|
||||
.OrderByDescending(o => o.CreatedAt)
|
||||
.ToArrayAsync();
|
||||
return orders;
|
||||
}
|
||||
|
||||
public async Task<Order> CreateOrderAsync(CreateOrderDto dto)
|
||||
{
|
||||
Order order = new()
|
||||
{
|
||||
OrderNumber = Guid.NewGuid(),
|
||||
SenderCity = dto.SenderCity,
|
||||
SenderAddress = dto.SenderAddress,
|
||||
RecipientCity = dto.RecipientCity,
|
||||
RecipientAddress = dto.RecipientAddress,
|
||||
CargoWeight = dto.CargoWeight,
|
||||
PickupDate = dto.PickupDate,
|
||||
CreatedAt = DateTime.UtcNow
|
||||
};
|
||||
EntityEntry<Order> created = dbCtx.Orders.Add(order);
|
||||
await dbCtx.SaveChangesAsync();
|
||||
return created.Entity;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user