public getStudentDiscountsList getStudentDiscountsList()
        {
            var model = new getStudentDiscountsList();

            try
            {
                var StudentDiscountsList = _StudentDiscountsRepo.GetAll().ToList();
                var FeeTypesList         = _FeeTypesRepo.GetAll().ToList();
                var studentsList         = _studentsRepo.GetAll().ToList();
                var classList            = _classesRepo.GetAll().ToList();
                var query = (from _StudentDiscounts in StudentDiscountsList
                             join _FeeTypes in FeeTypesList on _StudentDiscounts?.FeeTypeId equals _FeeTypes?.Id
                             join _students in studentsList on _StudentDiscounts?.StudentId equals _students?.Id
                             join _class in classList on _students?.ClassId equals _class?.Id
                             select new { _StudentDiscounts, _FeeTypes, _students, _class });

                var list = new List <getStudentDiscountsList_StudentDiscounts>();
                foreach (var item in query)
                {
                    var temp = new getStudentDiscountsList_StudentDiscounts()
                    {
                        Id             = item._StudentDiscounts.Id,
                        RegistrationNo = item._students.RegistrationNo,
                        StudentId      = item._StudentDiscounts.StudentId,
                        StudentName    = item._students.FirstName + " " + item._students.LastName,
                        ClassId        = item._students.ClassId,
                        ClassName      = item._class.Name,
                        FeeTypeId      = item._StudentDiscounts.FeeTypeId,
                        FeeType        = item._FeeTypes.Name,
                        DiscountAmout  = item._StudentDiscounts.DiscountAmout
                    };
                    list.Add(temp);
                }
                ;

                model = new getStudentDiscountsList()
                {
                    _StudentDiscounts = list
                };
            }
            catch (Exception)
            {
            }
            return(model);
        }
        public getStudentPaymentsList getStudentPaymentsList()
        {
            var model = new getStudentPaymentsList();

            try
            {
                var StudentPaymentsList = _StudentPaymentsRepo.GetAll().ToList();
                var FeeTypesList        = _FeeTypesRepo.GetAll().ToList();
                var studentsList        = _studentsRepo.GetAll().ToList();
                var query = (from _StudentPayments in StudentPaymentsList
                             join _FeeTypes in FeeTypesList on _StudentPayments?.FeeTypeId equals _FeeTypes?.Id
                             join _Students in studentsList on _StudentPayments?.StudentId equals _Students?.Id
                             select new { _StudentPayments, _Students, _FeeTypes });
                var list = new List <getStudentPaymentsList_StudentPayments>();
                foreach (var item in query)
                {
                    var temp = new getStudentPaymentsList_StudentPayments()
                    {
                        Id          = item._StudentPayments.Id,
                        ClassId     = item._StudentPayments.ClassId,
                        FeeYearDate = item._StudentPayments.FeeYearDate,
                        StudentId   = item._StudentPayments.StudentId,
                        StudentName = item._Students.FirstName + " " + item._Students.LastName,
                        FeeTypeId   = item._StudentPayments.FeeTypeId,
                        FeeType     = item._FeeTypes.Name,
                        Fine        = item._StudentPayments.Fine,
                        PaidAmount  = item._StudentPayments.PaidAmount,
                        PaymentDate = item._StudentPayments.PaymentDate,
                        Remarks     = item._StudentPayments.Remarks
                    };
                    list.Add(temp);
                }
                ;
                model = new getStudentPaymentsList()
                {
                    _StudentPayments = list
                };
            }
            catch (Exception)
            {
            }
            return(model);
        }
        public getFeeStructuresList getFeeStructuresList()
        {
            var model = new getFeeStructuresList();

            try
            {
                var FeeStructuresList = _FeeStructuresRepo.GetAll().ToList();
                var FeeTypesList      = _FeeTypesRepo.GetAll().ToList();
                var classList         = _classesRepo.GetAll().ToList();
                var query             = (from _FeeStructure in FeeStructuresList
                                         join _FeeTypes in FeeTypesList on _FeeStructure?.FeeTypeId equals _FeeTypes?.Id
                                         join _class in classList on _FeeStructure?.ClassId equals _class?.Id
                                         select new { _FeeStructure, _FeeTypes, _class });
                var list = new List <getFeeStructuresList_FeeStructures>();
                foreach (var item in query)
                {
                    var temp = new getFeeStructuresList_FeeStructures()
                    {
                        Id           = item._FeeStructure.Id,
                        ClassId      = item._FeeStructure.ClassId,
                        Class        = item._class.Name,
                        FeeTypeId    = item._FeeStructure.FeeTypeId,
                        FeeType      = item._FeeTypes.Name,
                        FeeTypeMood  = item._FeeStructure.YearlyTermNo,
                        Amount       = item._FeeStructure.Amount,
                        StartingYear = item._FeeStructure.StartingYear,
                        EndingYear   = item._FeeStructure.EndingYear,
                        IsActive     = item._FeeStructure.IsActive
                    };
                    list.Add(temp);
                }
                ;
                model = new getFeeStructuresList()
                {
                    _FeeStructures = list
                };
            }
            catch (Exception)
            {
            }
            return(model);
        }
        public getFeeTypesList getFeeTypesList()
        {
            var model = new getFeeTypesList();

            try
            {
                var FeeTypesList = _FeeTypesRepo.GetAll().ToList();
                var classList    = _classesRepo.GetAll().ToList();

                var query = (from _FeeTypes in FeeTypesList
                             join _Class in classList on _FeeTypes?.ClassId equals _Class?.Id
                             orderby _FeeTypes.ClassId ascending
                             select new { _FeeTypes, _Class });

                var list = new List <getFeeTypesList_FeeTypes>();
                foreach (var item in query)
                {
                    var temp = new getFeeTypesList_FeeTypes()
                    {
                        Id        = item._FeeTypes.Id,
                        ClassId   = item._FeeTypes.ClassId,
                        ClassName = item._Class.Name,
                        Name      = item._FeeTypes.Name,
                        IsActive  = item._FeeTypes.IsActive
                    };
                    list.Add(temp);
                }
                ;


                model = new getFeeTypesList()
                {
                    _FeeTypes = list
                };
            }
            catch (Exception)
            {
            }
            return(model);
        }
        public GetFeeTermDescriptionsList GetFeeTermDescriptionsList()
        {
            var model = new GetFeeTermDescriptionsList();

            try
            {
                var FeeTermDescriptionsList = _FeeTermDescriptionsRepo.GetAll().ToList();
                var FeeStructures           = _FeeStructuresRepo.GetAll().ToList();
                var FeeTypes  = _FeeTypesRepo.GetAll().ToList();
                var classList = _classesRepo.GetAll().ToList();

                var query = (from _FeeTermDescriptions in FeeTermDescriptionsList
                             join feeStucture in FeeStructures on _FeeTermDescriptions.FeeStructureId equals feeStucture.Id
                             join feeTypes in FeeTypes on feeStucture.FeeTypeId equals feeTypes.Id
                             join cls in classList on feeStucture.ClassId equals cls.Id

                             select new { _FeeTermDescriptions, feeStucture, feeTypes, cls });

                var list = new List <GetFeeTermDescriptionsList_FeeTermDescriptions>();
                foreach (var item in query)
                {
                    var temp = new GetFeeTermDescriptionsList_FeeTermDescriptions()
                    {
                        Id             = item._FeeTermDescriptions.Id,
                        FeeStructureId = item._FeeTermDescriptions.FeeStructureId,
                        TermNo         = item._FeeTermDescriptions.TermNo,
                        TermName       = item._FeeTermDescriptions.TermName,
                        ClassName      = item.cls.Name,
                        FeeType        = item.feeTypes.Name,
                        ClassId        = item.feeStucture.ClassId,
                        FeeTypeId      = item.feeStucture.FeeTypeId
                    };
                    list.Add(temp);
                }
                ;


                model = new GetFeeTermDescriptionsList()
                {
                    _FeeTermDescriptions = list
                };
            }
            catch (Exception)
            {
            }
            return(model);
        }