Add project

This commit is contained in:
aloslider
2026-07-06 09:32:44 +03:00
parent 2ff2bb67f2
commit 1af22c39db
29 changed files with 1048 additions and 0 deletions
+50
View File
@@ -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;
}
}