Files
moadiran/Back/Services/ServWalt.cs
mmrbnjd e9780f2713 ...
2024-07-30 18:06:11 +03:30

56 lines
2.0 KiB
C#

using Back.Common;
using Back.Data.Contracts;
using Back.Data.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.OpenApi.Extensions;
using Shared.DTOs;
using Shared.DTOs.Serch;
using Shared.Enums;
namespace Back.Services
{
public class ServWalt
{
private readonly IAsyncRepository<CreditDocuments> _repoCreditDocuments;
public ServWalt(IAsyncRepository<CreditDocuments> repoCreditDocuments)
{
_repoCreditDocuments = repoCreditDocuments;
}
public async Task<bool> AddDocument(CreditDocuments document)
{
return await _repoCreditDocuments.AddBoolResultAsync(document);
}
public async Task<PagingDto<CreditDocumentDto>> GetDocuments(GridDataProviderRequestDto value,int CompanyID)
{
var request = _repoCreditDocuments.GetAll();
foreach (var item in value.Filters)
{
switch (item.PropertyName)
{
case "Date":
request = request.Where(w => w.Date.Contains(item.Value.Replace("/","")) || w.Date == item.Value);
break;
case "Type":
if (item.Value=="0" || item.Value == "1")
request = request.Where(w => w.type == (CreditDocumentType)Enum.Parse(typeof(CreditDocumentType), item.Value));
break;
default:
break;
}
}
return await _repoCreditDocuments.Get(document=>document.CompanyID==CompanyID).OrderByDescending(o=>o.ID)
.Select(s=>new CreditDocumentDto
{
Date=s.Date.ShamciToFormatShamci(),
Title=s.Title,
typeName = s.type.GetEnumDisplayName(),
type=s.type,
Value=s.Value,
})
.Paging(value.PageNumber, value.PageSize);
}
}
}