ASP.NET Core Web API - 如何使用 CreateDate 作为 StartdDate 和 EndDate 搜索记录

问题描述 投票:0回答:0

我正在使用 Entity Framework 来实现 ASP.NET Core 7 Web API。

我有这个模型班

Booking

public class Booking : BaseEntity
{
    public string Id { get; set; }
    public DateTime? CreatedDate { get; set; }
    public string HotelId { get; set; }
    public string BookingReference { get; set; }
    public DateTime CheckIn { get; set; }
    public DateTime CheckOut { get; set; }
    public int NoOfPeople { get; set; }
    public string ServiceName { get; set; }
    public Hotel Hotel { get; set; }
    public bool PaymentStatus {  get; set; }
    public string RoomId {  get; set; }
    public Room Room {  get; set; }
    public Payment Payment { get; set; }
}

然后这会产生

GetBookingResponseDto

public class GetBookingResponseDto
{
    public string Id { get; set; }
    public int RoomNumber { get; set; }
    public string RoomType { get; set; }
    public decimal Price { get; set; }
    public DateTime CheckIn { get; set; }
    public DateTime CheckOut { get; set; }
    public string Hotel { get; set; }
    public string BookingReference { get; set; }
    public bool PaymentStatus { get; set; }
}

分页结果:

public class PageResult<T>
{
    public T PageItems { get; set; }
    public int PageSize { get; set; }
    public int CurrentPage { get; set; }
    public int NumberOfPages { get; set; }
    public int PreviousPage { get; set; }
}

这是存储库:

public IQueryable<Booking> GetBookings()
{
    var query = _context.Bookings.AsNoTracking()
            .Include(b => b.Hotel)
            .Include(b => b.Payment)
            .Include(b => b.Room)
            .ThenInclude(r => r.Roomtype)
            .OrderBy(b => b.CreatedDate);
    return query;
}

然后终于在

BookingService

中说唱了一切
public async Task<Response<PageResult<IEnumerable<GetBookingResponseDto>>>> GetCustomerBookings(PagingDto paging)
{
    var bookings = _unitOfWork.Booking.GetBookings();
    var pageResult = await bookings.PaginationAsync<Booking, GetBookingResponseDto>(paging.PageSize, paging.PageNumber, _mapper);

    Response<PageResult<IEnumerable<GetBookingResponseDto>>> response = new()
        {
            Data = pageResult,
            Message = "Bookings Fetched",
            StatusCode = StatusCodes.Status200OK,
            Succeeded = true
        };

    return response;
}

我想使用

StartDate
过滤/搜索日期(
EndDate
CreatedDate
)之间的预订记录。但是默认情况下,当没有选择
StardDate
EndDate
时,应该显示整个预订记录。

我如何做到这一点?

谢谢

c# asp.net-core entity-framework-core asp.net-core-webapi
© www.soinside.com 2019 - 2024. All rights reserved.