/// <summary> /// Add new student into the student collection /// </summary> /// <param name="model">Loaded student class</param> /// <returns>Whether the method is successful</returns> public bool Create(Student model) { // bool studentExist = CheckIfStudentExist(model); // // if (studentExist) return false; try { _studentRepository.Add(model); // Add fee UpdateStudentFees(model); // Update Student count IncreaseStudentCount(); _auditTrailRepository.Log($"Created Student {model.FirstName} {model.LastName}", AuditActionEnum.Created); _log.Info("Student Added"); return true; } catch (Exception ex) { _log.Error("Error", ex); return false; } }
private void btnEdit_Click(object sender, EventArgs e) { var response = MessageBox.Show(@"You made some changes, Do you want to save the changes for this student?", @"Update Student", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); if (response == DialogResult.Yes) { var student = new Student { MiddleName = tboMiddleName.Text, LastName = tboLastName.Text, FirstName = tboFirstName.Text, BirthDate = DateTime.Parse(dtpBirthDate.Text), StartDate = DateTime.Parse(dtpDateStarted.Text), PresentArm = (ArmEnum) cboPresentArm.SelectedValue, Id = _row.Cells["Id"].Value.ToString() }; var success = _studentRepository.Edit(student); if (success) { MessageBox.Show(@"Student has been updated"); } } }
public ReceiptGenerator(ReceiptModel receiptModel) { _student = receiptModel.Student; _classTermFee = receiptModel.ClassTermFee; _school = receiptModel.School; _feePayment = _student.FeePayments.FirstOrDefault(x => x.ClassArmTermFeeId == _classTermFee.Id); }
private List<FeeHistoryModel> GetDataSource() { List<FeePayment> feePayments = _row.Cells["FeePayments"].Value as List<FeePayment>; List<FeeHistoryModel> feeHistoryModels = new List<FeeHistoryModel>(); if (feePayments != null) { var indexes = Enumerable.Range(1, feePayments.Count).ToList(); var student = new Student() { FirstName = _row.Cells["FirstName"].Value.ToString(), LastName = _row.Cells["LastName"].Value.ToString(), MiddleName = _row.Cells["MiddleName"].Value.ToString() }; for (int i = 0; i < feePayments.Count; i++) { ClassTermFee classTermFee = GetClassTermFeeById(feePayments[i].ClassArmTermFeeId); feeHistoryModels.Add(new FeeHistoryModel() { Index = indexes[i], Session = classTermFee.Session, Term = Enum.GetName(typeof (TermEnum), classTermFee.TermEnum), PaidFee = feePayments[i].Amount.ToString(), OutstandingFee = _row.Cells["OutstandingFee"].Value.ToString(), DatePaid = feePayments[i].PaidDate, FilePath = Utilities.GetFilePath(student, classTermFee) }); } return feeHistoryModels; } return new List<FeeHistoryModel>(); }
private bool CheckIfStudentExist(Student student) { return _studentRepository.Any(x => string.Equals(x.FirstName.Trim(), student.FirstName.Trim(), StringComparison.CurrentCultureIgnoreCase) && string.Equals(x.LastName.Trim(), student.LastName.Trim(), StringComparison.CurrentCultureIgnoreCase) && string.Equals(x.MiddleName.Trim(), student.MiddleName.Trim(), StringComparison.CurrentCultureIgnoreCase)); }
/// <summary> /// Update the fees of a given student, only for when adding a new student /// (not necessary new to the school) to the system /// </summary> /// <param name="student">The student whose fees is to be updated</param> /// <returns>true if success else false</returns> public bool UpdateStudentFees(Student student) { try { var currentFees = _classTermFeeRepository.GetCurrentFees() ?? new List<ClassTermFee>(); var presentClass = student.PresentClass; var isNewIntake = presentClass == student.StartClass && student.PresentTerm == student.StartTerm; if (isNewIntake) { switch (presentClass) { case ClassEnum.JSS1: case ClassEnum.JSS2: case ClassEnum.JSS3: student.OutstandingFee += currentFees.FirstOrDefault(x => x.ClassEnum == ClassEnum.JSS).Fee; _studentRepository.Update(student); break; case ClassEnum.SSS1: case ClassEnum.SSS2: case ClassEnum.SSS3: student.OutstandingFee += currentFees.FirstOrDefault(x => x.ClassEnum == ClassEnum.SSS).Fee; _studentRepository.Update(student); break; } return true; } var classTermFee = currentFees.FirstOrDefault(x => x.ClassEnum == presentClass); // Not new student student.OutstandingFee += classTermFee.Fee; _studentRepository.Update(student); return true; } catch (Exception ex) { _log.Error("Error", ex); return false; } }
/// <summary> /// Updates the student /// </summary> /// <param name="student">Instance of the given student</param> /// <returns>true if success else false</returns> public bool Update(Student student) { try { _studentRepository.Update(student); _auditTrailRepository.Log($"Updated Student {student.FirstName} {student.LastName}", AuditActionEnum.Updated); _log.Info("Student Edited"); return true; } catch (Exception ex) { _log.Error("Error", ex); return false; } }
/// <summary> /// Edit the student info from the dgv /// </summary> /// <param name="model">Instance of student class</param> /// <returns>True if success, else false</returns> public bool Edit(Student model) { try { Student studentFromDb = _studentRepository.GetById(model.Id); // var kdlfd = studentFromDb; // Update items studentFromDb.MiddleName = model.MiddleName; studentFromDb.FirstName = model.FirstName; studentFromDb.LastName = model.LastName; studentFromDb.BirthDate = model.BirthDate; studentFromDb.StartDate = model.StartDate; studentFromDb.PresentArm = model.PresentArm; _studentRepository.Update(studentFromDb); _auditTrailRepository.Log($"Student {model.FirstName} {model.LastName}", AuditActionEnum.Updated); _log.Info("Student Edited"); return true; } catch (Exception ex) { _log.Error("Error", ex); return false; } }
public static string GetFilePath(Student student, ClassTermFee classTermFee) { var schoolDirectory = GetSchoolDirectory(); //check if school folder exist, create if false. Document\SchoolReceipt. if (!Directory.Exists(schoolDirectory)) { Directory.CreateDirectory(schoolDirectory); } //Check if student folder exist, create if false. Format -> FirstName.LastName.MiddleName var studentFolder = $"{student.FirstName}.{student.LastName}.{student.MiddleName}"; var studentDirectory = Path.Combine(schoolDirectory, studentFolder); if (!Directory.Exists(studentDirectory)) { Directory.CreateDirectory(studentDirectory); } //Set file name in format -> fullname.Session.term var currentTerm = $"{studentFolder}.{classTermFee.Session.Replace(@"/", "-")}.{Enum.GetName(typeof(TermEnum), classTermFee.TermEnum)}.pdf"; //append all path to string and return var currentTermFileName = Path.Combine(studentDirectory, currentTerm); return currentTermFileName; }
private void btnAddStudent_Click(object sender, EventArgs e) { // AS - Add Student var lastName = tboLastNameAS.Text; var firstName = tboFirstNameAS.Text; var middleName = tboMiddleNameAS.Text; var startDate = dtpStartDateAS.Text; var birthDate = dtpBirthDateAS.Text; var outstandingFee = tboOutstandingFeeAS.Text.Replace(",",""); var startClass = cboStartClassAS.SelectedValue; var startTerm = cboStartTermAS.SelectedValue; var presentClass = cboPresentClassAS.SelectedValue; var presentTerm = cboPresentTermAS.SelectedValue; var presentArm = cboPresentArmAS.SelectedValue; if (!string.IsNullOrWhiteSpace(lastName) && !string.IsNullOrWhiteSpace(firstName) /*&& !string.IsNullOrWhiteSpace(middleName)*/ /*&& (int) startClass != -1*/ /*&& (int) startTerm != -1*/ && (int) presentClass != -1 && (int) presentTerm != -1 /*&& (int) presentArm != -1*/) { var student = new Student { LastName = lastName, FirstName = firstName, MiddleName = middleName, Active = true, BirthDate = DateTime.Parse(birthDate), // StartClass = (ClassEnum) startClass , // StartTerm = (TermEnum) startTerm, StartDate = DateTime.Parse(startDate), OutstandingFee = Convert.ToDecimal(outstandingFee == "" ? "0" : outstandingFee), PresentClass = (ClassEnum) presentClass, PresentTerm = (TermEnum) presentTerm, }; // If start term combo box is not selected if ((int)startTerm == -1) { student.StartTerm = TermEnum.First; } else { student.StartTerm = (TermEnum)startTerm; } // If start class combo box is not selected, assume JSS1 if ((int)startClass == -1) { student.StartClass = ClassEnum.JSS1; } else { student.StartClass = (ClassEnum)startClass; } // If Present arm combo box is not selected, assume 'A' if ((int)presentArm == -1) { student.PresentArm = ArmEnum.A; } else { student.PresentArm = (ArmEnum) presentArm; } var success = _studentRepository.Create(student); if (success) { MessageBox.Show($"Student \"{firstName} {lastName}\" has been registered", @"School Accountant"); ClearTextBoxesAS(); RefreshDgvMS(); tboLastNameAS.Focus(); } else { MessageBox.Show(@"Something went wrong, please restart the program and try again", @"School Accountant"); } } else { MessageBox.Show(@"Please, all information are required", @"School Accountant"); } }