Exemple #1
0
        public async Task <IActionResult> SelectStudentsByBranchId(int Id, PaymentSortingEnum sortState = PaymentSortingEnum.BalanceDesc)
        {
            var students = await _paymentService.GetAllStudentsByBranchIdAsync(Id, sortState);

            ViewBag.BranchId = Id;
            return(PartialView("_ListStudentByBranchIdPartialView", students));
        }
Exemple #2
0
        public async Task <StudentsPaymentListViewModel> GetAllStudentsByPayment(PaymentSortingEnum sortState)
        {
            var students = await _unitOfWork.Student.GetAllStudentsByPayment();

            List <StudentPaymentViewModel> studentPaymentViewModels = new List <StudentPaymentViewModel>();

            foreach (var student in students)
            {
                var model = Mapper.Map <StudentPaymentViewModel>(student);
                model.MustTotal = await _unitOfWork.StudentPaymentAndPeriods.GetMustTotalByStudentIdAsync(student.Id);

                model.AllMustTotal = await GetAllMustTotalByStudentIdAsync(student.Id);

                model.AllTotal = await GetAllTotalByStudentId(student.Id);

                model.Balance     = model.AllMustTotal - model.AllTotal;
                model.PeriodCount = await GetCountPeriodsByStudentIdAsync(student.Id);

                model.LastPayment = await GetLastPaymentByStudentIdAsync(student.Id);

                model.LastCommit = await GetLastCommitByStudentIdAsync(student.Id);

                studentPaymentViewModels.Add(model);
            }

            return(PaymentStudentsSort.Sort(studentPaymentViewModels, sortState));
        }
Exemple #3
0
        public async Task <IActionResult> GetAllStudentsByPayment(PaymentSortingEnum sortState = PaymentSortingEnum.BalanceDesc)
        {
            var students = await _paymentService.GetAllStudentsByPayment(sortState);

            if (sortState != PaymentSortingEnum.BalanceAsc)
            {
                ViewBag.value = true;
            }
            else
            {
                ViewBag.value = false;
            }
            return(PartialView("_ListStudentByBranchIdPartialView", students));
        }
Exemple #4
0
        public async Task <IActionResult> SortSelectedStudentsByBranchId(PaymentSortingEnum sort, int Id)
        {
            StudentsPaymentListViewModel students = null;

            if (Id == 0)
            {
                students = await _paymentService.GetAllStudentsByPayment(sort);
            }
            else
            {
                students = await _paymentService.GetAllStudentsByBranchIdAsync(Id, sort);

                ViewBag.BranchId = Id;
            }
            return(PartialView("_ListStudentByBranchIdPartialView", students));
        }
Exemple #5
0
        public async Task <IActionResult> SearchStudent(string searchValue, PaymentSortingEnum sortState = PaymentSortingEnum.BalanceAsc)
        {
            try
            {
                var students = await _paymentService.StudentSearchAsync(searchValue, sortState);

                return(PartialView("_ListStudentByBranchIdPartialView", students));
            }
            catch (NullReferenceException e)
            {
                return(await GetAllStudentsByPayment());
            }
            catch (Exception e)
            {
                return(new JsonResult(e));
            }
        }
Exemple #6
0
        public static StudentsPaymentListViewModel Sort(List <StudentPaymentViewModel> students, PaymentSortingEnum sortState)
        {
            var model = new StudentsPaymentListViewModel
            {
                LastNameSortState = sortState == PaymentSortingEnum.LastNameAsc
                    ? PaymentSortingEnum.LastNameDesc
                    : PaymentSortingEnum.LastNameAsc,
                NameSortState = sortState == PaymentSortingEnum.NameAsc
                    ? PaymentSortingEnum.NameDesc
                    : PaymentSortingEnum.NameAsc,
                MustTotalSortState = sortState == PaymentSortingEnum.MustTotalAsc
                    ? PaymentSortingEnum.MustTotalDesc
                    : PaymentSortingEnum.MustTotalAsc,
                AllMustTotalSortState = sortState == PaymentSortingEnum.AllMustTotalAsc
                    ? PaymentSortingEnum.AllMustTotalDesc
                    : PaymentSortingEnum.AllMustTotalAsc,
                AllTotalSortState = sortState == PaymentSortingEnum.AllTotalAsc
                    ? PaymentSortingEnum.AllTotalDesc
                    : PaymentSortingEnum.AllTotalAsc,
                BalanceSortState = sortState == PaymentSortingEnum.BalanceAsc
                    ? PaymentSortingEnum.BalanceDesc
                    : PaymentSortingEnum.BalanceAsc,
                PeriodCountSortState = sortState == PaymentSortingEnum.PeriodCountAsc
                    ? PaymentSortingEnum.PeriodCountDesc
                    : PaymentSortingEnum.PeriodCountAsc,
                LastPaymentSortState = sortState == PaymentSortingEnum.LastPaymentAsc
                    ? PaymentSortingEnum.LastPaymentDesc
                    : PaymentSortingEnum.LastPaymentAsc
            };



            switch (sortState)
            {
            case PaymentSortingEnum.LastNameDesc:
                students = students.OrderByDescending(s => s.LastName ?? s.Name ?? s.FatherName).ToList();
                break;

            case PaymentSortingEnum.NameAsc:
                students = students.OrderBy(s => s.Name).ToList();
                break;

            case PaymentSortingEnum.NameDesc:
                students = students.OrderByDescending(s => s.Name).ToList();
                break;

            case PaymentSortingEnum.MustTotalAsc:
                students = students.OrderBy(s => s.MustTotal).ToList();
                break;

            case PaymentSortingEnum.MustTotalDesc:
                students = students.OrderByDescending(s => s.MustTotal).ToList();
                break;

            case PaymentSortingEnum.AllMustTotalAsc:
                students = students.OrderBy(s => s.AllMustTotal).ToList();
                break;

            case PaymentSortingEnum.AllMustTotalDesc:
                students = students.OrderByDescending(s => s.AllMustTotal).ToList();
                break;

            case PaymentSortingEnum.AllTotalAsc:
                students = students.OrderBy(s => s.AllTotal).ToList();
                break;

            case PaymentSortingEnum.AllTotalDesc:
                students = students.OrderByDescending(s => s.AllTotal).ToList();
                break;

            case PaymentSortingEnum.BalanceAsc:
                students = students.OrderBy(s => s.Balance).ToList();
                break;

            case PaymentSortingEnum.BalanceDesc:
                students = students.OrderByDescending(s => s.Balance).ToList();
                break;

            case PaymentSortingEnum.PeriodCountAsc:
                students = students.OrderBy(s => s.PeriodCount).ToList();
                break;

            case PaymentSortingEnum.PeriodCountDesc:
                students = students.OrderByDescending(s => s.PeriodCount).ToList();
                break;

            case PaymentSortingEnum.LastPaymentAsc:
                students = students.OrderBy(s => s.LastPayment).ToList();
                break;

            case PaymentSortingEnum.LastPaymentDesc:
                students = students.OrderByDescending(s => s.LastPayment).ToList();
                break;
            }


            model.Student = students;


            return(model);
        }
Exemple #7
0
        public async Task <StudentsPaymentListViewModel> StudentSearchAsync(string term, PaymentSortingEnum sortState)
        {
            var students = await _unitOfWork.Student.GetAllStudentsByPayment();

            students = students.Where(x => (x.Name?.ToUpper() ?? string.Empty).Contains(term.ToUpper()) ||
                                      (x.PhoneNumber?.ToUpper() ?? string.Empty).Contains(term.ToUpper()) ||
                                      (x.LastName?.ToUpper() ?? string.Empty).Contains(term.ToUpper()) ||
                                      (x.ParentLastName?.ToUpper() ?? string.Empty).Contains(term.ToUpper())).ToList();
            List <StudentPaymentViewModel> studentPaymentViewModels = new List <StudentPaymentViewModel>();

            foreach (var student in students)
            {
                var model = Mapper.Map <StudentPaymentViewModel>(student);
                model.MustTotal = await _unitOfWork.StudentPaymentAndPeriods.GetMustTotalByStudentIdAsync(student.Id);

                model.AllMustTotal = await GetAllMustTotalByStudentIdAsync(student.Id);

                model.AllTotal = await GetAllTotalByStudentId(student.Id);

                model.Balance     = model.AllMustTotal - model.AllTotal;
                model.PeriodCount = await GetCountPeriodsByStudentIdAsync(student.Id);

                model.LastPayment = await GetLastPaymentByStudentIdAsync(student.Id);

                model.LastCommit = await GetLastCommitByStudentIdAsync(student.Id);

                studentPaymentViewModels.Add(model);
            }

            return(PaymentStudentsSort.Sort(studentPaymentViewModels, sortState));
        }