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)); }
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)); }
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)); }
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)); }
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)); } }
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); }
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)); }