public IHttpActionResult GetTuitionList([FromBody] TuitionConditionSearch conditionSearch)
 {
     try
     {
         return(Ok(_tuitionManagementService.GetTuitionListResponse(conditionSearch)));
     }
     catch (System.Exception e)
     {
         return(InternalServerError(e));
     }
 }
Beispiel #2
0
        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));
        }