Files
moadiran/Back/Services/ServCOD.cs

52 lines
1.6 KiB
C#
Raw Normal View History

2024-05-08 17:43:41 +03:30
using Back.Common;
using Back.Data.Contracts;
using Back.Data.Models;
using Shared.DTOs;
using Shared.DTOs.Serch;
namespace Back.Services
{
public class ServCOD
{
private readonly IAsyncRepository<CODItem> _CODRepo;
public ServCOD(IAsyncRepository<CODItem> CODRepo)
{
_CODRepo = CODRepo;
}
public async Task<PagingDto<RCOD>?> GetCODs(int CompanyID, ItemSerchGetCOD itemSerch)
{
#region AdvancedSearch
var invok = _CODRepo
.Get(w => w.CompanyID == CompanyID && !w.IsDeleted);
//foreach (InputObj item in inputObjs)
// invok = invok.Where(ExMethod.GetFunc<CODItem>(item.Param, item.Value));
if (!string.IsNullOrEmpty(itemSerch.Title))
invok = invok.Where(w => w.Title.Contains(itemSerch.Title));
if (!string.IsNullOrEmpty(itemSerch.ItemTaxID))
invok = invok.Where(w => w.ItemTaxID == itemSerch.ItemTaxID);
if (itemSerch.CODID.HasValue)
invok = invok.Where(w => w.ID == itemSerch.CODID);
if (itemSerch.UnitID.HasValue)
invok = invok.Where(w => w.UnitID == itemSerch.UnitID);
#endregion
//-----------------------
return await invok.Select(s => new RCOD()
{
ID = s.ID,
TaxID = s.ItemTaxID,
Title = s.Title,
Unit = s.CODUnit.Title,
TaxRate = s.TaxRate
})
.Paging(itemSerch.PageIndex, itemSerch.PageSize);
}
}
}