/
azarayaos
/
OrderHub
Обзор
Документация
Войти
/
azarayaos
/
OrderHub
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
OrderHub.Infrastructure/Repositories/OrderRepository.cs
62 строки
2 KB
Azaray AOS
Создания начального проекта с базовым функицоналом
29 июн 2026, 22:47
29 июн 2026, 22:47
213f989
Код
Авторство
О чём код?
using Microsoft.EntityFrameworkCore; using OrderHub.Core.Interfaces; using OrderHub.Core.Models; using OrderHub.Infrastructure.Data; namespace OrderHub.Infrastructure.Repositories; /// <summary> /// Реализация репозитория заказов с использованием Entity Framework Core. /// </summary> public class OrderRepository(OrderDbContext context) : IOrderRepository { /// <inheritdoc /> public async Task<Order?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default) { return await context.Orders .Include(o => o.Items) .FirstOrDefaultAsync(o => o.Id == id, cancellationToken); } /// <inheritdoc /> public async Task<(List<Order> Orders, int TotalCount)> GetOrdersAsync(int skip, int take, OrderStatus? status = null, CancellationToken cancellationToken = default) { var query = context.Orders .Include(o => o.Items) .AsQueryable(); if (status.HasValue) { query = query.Where(o => o.Status == status.Value); } var totalCount = await query.CountAsync(cancellationToken); var orders = await query .OrderByDescending(o => o.CreatedAt) .Skip(skip) .Take(take) .ToListAsync(cancellationToken); return (orders, totalCount); } /// <inheritdoc /> public async Task AddAsync(Order order, CancellationToken cancellationToken = default) { await context.Orders.AddAsync(order, cancellationToken); } /// <inheritdoc /> public Task UpdateAsync(Order order, CancellationToken cancellationToken = default) { context.Orders.Update(order); return Task.CompletedTask; } /// <inheritdoc /> public async Task SaveChangesAsync(CancellationToken cancellationToken = default) { await context.SaveChangesAsync(cancellationToken); } }