public IHttpActionResult GetTuitionList([FromBody] TuitionConditionSearch conditionSearch) { try { return(Ok(_tuitionManagementService.GetTuitionListResponse(conditionSearch))); } catch (System.Exception e) { return(InternalServerError(e)); } }
public TuitionResponseDto GetTuitionListResponse(TuitionConditionSearch conditionSearch) { // Nếu không tồn tại điều kiện tìm kiếm thì khởi tạo giá trị tìm kiếm ban đầu if (conditionSearch == null) { conditionSearch = new TuitionConditionSearch(); } // Lấy các thông tin dùng để phân trang var paging = new Paging(context.Students.Count(x => !x.DelFlag && (conditionSearch.KeySearch == null || (conditionSearch.KeySearch != null && (x.UserInfo.IdentityInfo.IdentityNumber.Contains(conditionSearch.KeySearch) || (x.UserInfo.FirstName + x.UserInfo.LastName).Contains(conditionSearch.KeySearch))) && (conditionSearch.ClassId == 0 || (conditionSearch.ClassId != 0 && x.ClassId == conditionSearch.ClassId)) && (conditionSearch.DepartmentId == 0 || (conditionSearch.DepartmentId != 0 && x.Class.DepartmentId == conditionSearch.DepartmentId)) && (conditionSearch.ProgramId == 0 || (conditionSearch.ProgramId != 0 && x.Class.Department.ProgramId == conditionSearch.ProgramId) // &&x.re) ))) , conditionSearch.CurrentPage, conditionSearch.PageSize); // Tìm kiếm và lấy dữ liệu theo trang var listOfTuition = context.Students.Where(x => !x.DelFlag && (conditionSearch.KeySearch == null || (conditionSearch.KeySearch != null && (x.UserInfo.IdentityInfo.IdentityNumber.Contains(conditionSearch.KeySearch) || (x.UserInfo.FirstName + x.UserInfo.LastName).Contains(conditionSearch.KeySearch))) && (conditionSearch.ClassId == 0 || (conditionSearch.ClassId != 0 && x.ClassId == conditionSearch.ClassId)) && (conditionSearch.DepartmentId == 0 || (conditionSearch.DepartmentId != 0 && x.Class.DepartmentId == conditionSearch.DepartmentId)) && (conditionSearch.ProgramId == 0 || (conditionSearch.ProgramId != 0 && x.Class.Department.ProgramId == conditionSearch.ProgramId) ))) .OrderBy(x => x.Id) .Skip((paging.CurrentPage - 1) * paging.PageSize) .Take(paging.PageSize).Select(x => new TuitionDto { Id = x.Id, FirstName = x.UserInfo.FirstName, LastName = x.UserInfo.LastName, IdentityNumber = x.UserInfo.IdentityInfo.IdentityNumber, ClassId = x.ClassId, ClassName = x.Class.Name, TuitionFee = x.Class.Department.Program.Fees, //TotalTuition = x.Class.Department.Program.Fees+x., //IsPaid =x.UserInfo., Receipt = x.UserInfo.ReceiptsForCollector.Where(y => !y.DelFlag).Select(y => new Receipt { Id = y.Id, CollectorUserId = y.CollectorUserId, PayerUserId = y.PayerUserId, Money = y.Money, ReceiptNumber = y.ReceiptNumber, Name = y.Name, Description = y.Description, CollectionDate = y.CollectionDate }).FirstOrDefault(), }).ToList(); return(new TuitionResponseDto(listOfTuition, paging)); }