سلام و دروود بر استاد اقای اردوخانی
اقای اردوخانی بنده یه سوالی داشتم
راجب سیستم پیجینیشن بنده اومدم جنریکش کردم
تا هر سری نیایم یه متود ست بنویسیم برای مدلای که قراره از بیس پیجین ارث بری کنن
همه چی اوکی نوشتم ولی الان مشکلم توی مدلی هست که توی ریزور پارشیال ویو هست
بنده اومدم یه مدل نوشتم برای صفحه پارشیال
بعد یه مپر هم ست کردم
تا اطلاعات بیس پیجینگ رو به مدل پاس بده
ولی الان بازم موندم چطور معماری داشته باشم که از کنترلر بتونم دیتای مدل صفحه پیجینیشن رو پر بکنم
ممنون میشم راهنمایی بکنید
public static class PagingMapper
{
public static PagingViewModel ToViewModel<T>(this BasePaging<T> model)
where T : BasePaging<T>
{
return new PagingViewModel
{
PageId = model.PageId,
PageCount = model.PageCount,
AllEntitiesCount = model.AllEntitiesCount,
StartPage = model.StartPage,
EndPage = model.EndPage,
TakeEntity = model.TakeEntity,
HowManyShowPageAfterAndBefore = model.HowManyShowPageAfterAndBefore
};
}
}برای کنترلر
[HttpGet("Seller-Requests")]
public async Task<IActionResult> SellerRequests(SellerRequestsViewModel viewModel)
{
var res = await _sellerService.FilterSeller(viewModel.Filter);
var vm = new SellerRequestsViewModel
{
Filter = res,
Paging = res.ToViewModel()
};
return View(res);
} public abstract class BasePaging<T> where T :BasePaging<T>
{
public BasePaging()
{
PageId = 1;
TakeEntity = 10;
HowManyShowPageAfterAndBefore = 3;
}
public int PageId { get; set; }
public int PageCount { get; set; }
public int AllEntitiesCount { get; set; }
public int StartPage { get; set; }
public int EndPage { get; set; }
public int TakeEntity { get; set; }
public int SkipEntity { get; set; }
public int HowManyShowPageAfterAndBefore { get; set; }
public virtual T SetOnThebase( BasePaging<T> basePaging)
{
StartPage = basePaging.StartPage;
EndPage = basePaging.EndPage;
PageId = basePaging.PageId;
EndPage = basePaging.EndPage;
HowManyShowPageAfterAndBefore = basePaging.HowManyShowPageAfterAndBefore;
PageCount = basePaging.PageCount;
AllEntitiesCount = basePaging.AllEntitiesCount;
TakeEntity = basePaging.TakeEntity;
SkipEntity = basePaging.SkipEntity;
return (T)this;
}
public BasePaging<T> GetCurrentBasePage()
{
return this;
}
} public class PagingViewModel
{
public int PageId { get; set; }
public int PageCount { get; set; }
public int AllEntitiesCount { get; set; }
public int StartPage { get; set; }
public int EndPage { get; set; }
public int TakeEntity { get; set; }
public int HowManyShowPageAfterAndBefore { get; set; }
}@model MarketPlace.DataLayer.Paging.PagingViewModel
<ul class="pagination">
@if (Model.PageId > 1)
{
<li class="cursor-pointer">
<a onclick="FillPageId(@(Model.PageId - 1))">«</a>
</li>
}
@for (int i = Model.StartPage; i <= Model.EndPage; i++)
{
<li class="@(Model.PageId == i ? "active" : "") cursor-pointer">
<a onclick="FillPageId(@i)">
@i
<span class="sr-only">(current)</span>
</a>
</li>
}
@if (Model.PageId < Model.PageCount)
{
<li class="cursor-pointer">
<a onclick="FillPageId(@(Model.PageId + 1))">»</a>
</li>
}
</ul>
public class SellerRequestsViewModel
{
public FilterSellerDTO Filter { get; set; }
public PagingViewModel Paging { get; set; }
}الان مشکل اینه وقتی ران میکنم کلا نال رفرنس میگیرم
اینم مدل ویو کنترلر