using Back.Common; using Back.Data.Contracts; using Back.Data.Models; using Microsoft.EntityFrameworkCore; using Shared.DTOs; using Shared.DTOs.Serch; namespace Back.Services { public class ServOrders { private readonly IAsyncRepository _repoOrder; private readonly IAsyncRepository _repoOrderItem; public ServOrders(IAsyncRepository repoOrder, IAsyncRepository repoOrderItem) { _repoOrder = repoOrder; _repoOrderItem = repoOrderItem; } public async Task> GetOrdersByCompanyID(int CompanyID, ItemSerachOrder itemSerach) { var request = _repoOrder.Get(w => w.CompanyID == CompanyID); if (itemSerach.Status.HasValue) request = request.Where(w => w.Status == itemSerach.Status); if (itemSerach.ID.HasValue) request = request.Where(w => w.ID == itemSerach.ID); request = request.Include(inc => inc.OrderItems); return await request .Select(w => new OrderDto { ApprovalDate = w.ApprovalDate, DateCreate = w.DateCreate, ID = w.ID, PreDiscount = w.PreDiscount, Status = w.Status, TDiscount = w.TDiscount, TPrice = w.TPrice, TTax = w.TPrice, lstDiscount = w.lstDiscount, }).Paging(itemSerach.PageIndex,itemSerach.PageSize); } public async Task> GetOrderItems(int OrderID,int CompanyID) { return await _repoOrderItem.Get(w => w.OrderID == OrderID && w.Order.CompanyID== CompanyID) .Select(s=>new OrderItemDto { OrderID = OrderID, APrice = s.APrice, CreditAmount = s.CreditAmount, Discount=s.Discount, ID = s.ID, Tax = s.Tax, Type= s.PermissionID.HasValue && !s.PromotionID.HasValue ? "" : !s.PermissionID.HasValue && s.PromotionID.HasValue ? "تعرفه" : "نامشخص", IDForType = s.PermissionID.HasValue && !s.PromotionID.HasValue ? s.PermissionID.Value : !s.PermissionID.HasValue && s.PromotionID.HasValue ? s.PromotionID.Value : 0 }).ToListAsync(); } } }