آشنایی با Gridify
نویسنده: علیرضا صبوری
تاریخ: ۱۴۰۰/۰۴/۲۹ ۲۱:۱۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
[HttpGet("[action]")]
public async Task<IActionResult> UsersList()
{
var users = await _dbContext.Users.AsNoTracking().ToListAsync();
return Ok(users);
} [HttpGet("[action]")]
public async Task<IActionResult> UsersList(GridifyQuery filter)
{
var users = await _dbContext.Users.AsNoTracking().GridifyAsync(filter);
return Ok(users);
} var result = Users.AsQueryable().ApplyFiltering("name==Ali"); var result = Users.AsQueryable().Where(q => q.Name == "Ali");
public class Order : AggregateRoot<int>
{
private DateTime _orderDate;
public Address Address { get; private set; }
public int? GetBuyerId => _buyerId;
public int? _buyerId;
public OrderStatus OrderStatus { get; private set; }
public int _orderStatusId;
private string _description;
private bool _isDraft;
private readonly List<OrderItem> _orderItems;
public IReadOnlyCollection<OrderItem> OrderItems => _orderItems;
protected Order()
{
_orderItems = new List<OrderItem>();
_isDraft = false;
}
public Order(string userId, string userName, Address address,
int? buyerId = null) : this()
{
_buyerId = buyerId;
_orderStatusId = OrderStatus.Submitted.Id;
_orderDate = DateTime.UtcNow;
Address = address;
//AddOrderStartedDomainEvent(userId, userName);
}
} public class OrderStatus : Enumeration
{
public static OrderStatus Submitted = new OrderStatus(1, nameof(Submitted).ToLowerInvariant());
public static OrderStatus AwaitingValidation = new OrderStatus(2, nameof(AwaitingValidation).ToLowerInvariant());
public static OrderStatus StockConfirmed = new OrderStatus(3, nameof(StockConfirmed).ToLowerInvariant());
public static OrderStatus Paid = new OrderStatus(4, nameof(Paid).ToLowerInvariant());
public static OrderStatus Shipped = new OrderStatus(5, nameof(Shipped).ToLowerInvariant());
public static OrderStatus Cancelled = new OrderStatus(6, nameof(Cancelled).ToLowerInvariant());
public OrderStatus(int id, string name)
: base(id, name)
{
}
} var query = _orderQueryRepository.GetAll(x => x._buyerId == 52).AsNoTracking(); var s = await query.GridifyAsync(request.queryFilter); return s.Adapt<Paging<OrderQuery>>();
{
"buyerid": 0,
"queryFilter": {
"page": 1,
"pageSize": 5,
"orderBy": "id",
"filter": "Order_OrderStatus_Id==1"
}
} "message": "Property 'Order_OrderStatus_Id' not found.",
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet(Name = "GetWeatherForecast")]
public IActionResult Get([FromQuery] GridifyQuery filter)
{
var weatherForecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
return Ok(weatherForecasts.AsQueryable().ApplyFilteringOrderingPaging(filter));
}
} public IActionResult Get([FromQuery] GridifyQuery query)