// GET: ContinuousAssessments/Edit/5 public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ContinuousAssessment continuousAssessment = await Db.ContinuousAssessments.FindAsync(id); if (continuousAssessment == null) { return(HttpNotFound()); } ViewBag.StudentId = new SelectList(await _query.StudentListAsync(userSchool), "StudentID", "FullName"); ViewBag.SessionName = new SelectList(_query.SessionList(), "SessionName", "SessionName"); ViewBag.ClassName = new SelectList(Db.Classes.AsNoTracking(), "FullClassName", "FullClassName"); ViewBag.TermName = new SelectList(_query.TermList(), "TermName", "TermName"); ViewBag.SubjectId = new SelectList(await _query.SubjectListAsync(userSchool), "SubjectId", "SubjectName"); ViewBag.StaffName = User.Identity.GetUserName(); var model = new ContinuousAssesmentViewModel() { ContinuousAssessmentId = continuousAssessment.ContinuousAssessmentId, StudentId = continuousAssessment.StudentId, FirstTest = continuousAssessment.FirstTest, SecondTest = continuousAssessment.SecondTest, ThirdTest = continuousAssessment.ThirdTest, ExamScore = continuousAssessment.ExamScore }; return(View(model)); }
public async Task <ActionResult> Edit(ContinuousAssesmentViewModel model) { if (ModelState.IsValid) { var myContinuousAssessment = new ContinuousAssessment() { ContinuousAssessmentId = model.ContinuousAssessmentId, StudentId = model.StudentId, SubjectId = model.SubjectId, FirstTest = model.FirstTest, SecondTest = model.SecondTest, ThirdTest = model.ThirdTest, ExamScore = model.ExamScore, TermName = model.TermName.ToString(), SessionName = model.SessionName, ClassName = model.ClassName, StaffName = model.StaffName, SchoolId = userSchool //SubjectCategory = mysubjectCategory }; // Db.ContinuousAssessments.Add(myContinuousAssessment); Db.Entry(myContinuousAssessment).State = EntityState.Modified; await Db.SaveChangesAsync(); TempData["UserMessage"] = "Continuous Assessment Updated Successfully."; TempData["Title"] = "Success."; return(RedirectToAction("Index")); } ViewBag.StudentId = new SelectList(await _query.StudentListAsync(userSchool), "StudentID", "FullName"); ViewBag.SessionName = new SelectList(_query.SessionList(), "SessionName", "SessionName"); ViewBag.ClassName = new SelectList(Db.Classes.AsNoTracking(), "FullClassName", "FullClassName"); ViewBag.TermName = new SelectList(_query.TermList(), "TermName", "TermName"); ViewBag.SubjectId = new SelectList(await _query.SubjectListAsync(userSchool), "SubjectId", "SubjectName"); ViewBag.StaffName = User.Identity.GetUserName(); return(View(model)); }
public async Task <ActionResult> UploadResult(HttpPostedFileBase excelfile) { if (excelfile == null || excelfile.ContentLength == 0) { ViewBag.Error = "Please Select a excel file <br/>"; return(View()); } HttpPostedFileBase file = Request.Files["excelfile"]; if (excelfile.FileName.EndsWith("xls") || excelfile.FileName.EndsWith("xlsx")) { string lastrecord = ""; int recordCount = 0; string message = ""; string fileContentType = file.ContentType; byte[] fileBytes = new byte[file.ContentLength]; var data = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength)); // Read data from excel file using (var package = new ExcelPackage(file.InputStream)) { var currentSheet = package.Workbook.Worksheets; foreach (var sheet in currentSheet) { ExcelValidation myExcel = new ExcelValidation(); //var workSheet = currentSheet.First(); var noOfCol = sheet.Dimension.End.Column; var noOfRow = sheet.Dimension.End.Row; int requiredField = 10; string validCheck = myExcel.ValidateExcel(noOfRow, sheet, requiredField); if (!validCheck.Equals("Success")) { string[] ssizes = validCheck.Split(' '); string[] myArray = new string[2]; for (int i = 0; i < ssizes.Length; i++) { myArray[i] = ssizes[i]; } string lineError = $"Please Check sheet {sheet}, Line/Row number {myArray[0]} and column {myArray[1]} is not rightly formatted, Please Check for anomalies "; //ViewBag.LineError = lineError; TempData["UserMessage"] = lineError; TempData["Title"] = "Error."; return(View()); } for (int row = 2; row <= noOfRow; row++) { string studentId = sheet.Cells[row, 1].Value.ToString().ToUpper().Trim(); string subjectValue = sheet.Cells[row, 2].Value.ToString().ToUpper().Trim(); string termName = sheet.Cells[row, 7].Value.ToString().Trim().ToUpper(); string className = sheet.Cells[row, 10].Value.ToString().Trim().ToUpper(); string sessionName = sheet.Cells[row, 8].Value.ToString().Trim(); var subjectName = Db.Subjects.Where(x => x.SubjectCode.Equals(subjectValue)) .Select(c => c.SubjectId).FirstOrDefault(); var CA = Db.ContinuousAssessments.Where(x => x.ClassName.Equals(className) && x.TermName.Contains(termName) && x.SessionName.Equals(sessionName) && x.StudentId.Equals(studentId) && x.SubjectId.Equals(subjectName)); var countFromDb = await CA.CountAsync(); if (countFromDb >= 1) { return(View("Error2")); } var mycontinuousAssessment = new ContinuousAssessment { StudentId = studentId, SubjectId = subjectName, FirstTest = double.Parse(sheet.Cells[row, 3].Value.ToString().Trim()), SecondTest = double.Parse(sheet.Cells[row, 4].Value.ToString().Trim()), ThirdTest = double.Parse(sheet.Cells[row, 5].Value.ToString().Trim()), ExamScore = double.Parse(sheet.Cells[row, 6].Value.ToString().Trim()), TermName = termName, SessionName = sessionName, StaffName = sheet.Cells[row, 9].Value.ToString().Trim().ToUpper(), ClassName = className, SchoolId = userSchool //SubjectCategory = mysubjectCategory }; Db.ContinuousAssessments.Add(mycontinuousAssessment); recordCount++; lastrecord = $"The last Updated record has the Student Id {studentId} and Subject Name is {subjectName}. Please Confirm!!!"; } } } await Db.SaveChangesAsync(); message = $"You have successfully Uploaded {recordCount} records... and {lastrecord}"; TempData["UserMessage"] = message; TempData["Title"] = "Success."; ViewBag.TermName = new SelectList(Db.Terms.AsNoTracking(), "TermName", "TermName"); ViewBag.SessionName = new SelectList(Db.Sessions.AsNoTracking(), "SessionName", "SessionName"); if (User.IsInRole("Teacher")) { string name = User.Identity.GetUserName(); var subjectList = Db.AssignSubjectTeachers.AsNoTracking().Where(x => x.StaffName.Equals(name)); ViewBag.SubjectCode = new SelectList(subjectList.AsNoTracking(), "SubjectName", "SubjectName"); ViewBag.ClassName = new SelectList(subjectList.AsNoTracking(), "ClassName", "ClassName"); } else { ViewBag.ClassName = new SelectList(Db.Classes.AsNoTracking(), "FullClassName", "FullClassName"); ViewBag.SubjectCode = new SelectList(Db.Subjects.AsNoTracking(), "CourseName", "CourseName"); } return(View()); } else { ViewBag.Error = "File type is Incorrect <br/>"; return(View()); } }
public async Task <ActionResult> Create(ContinuousAssesmentViewModel model) { if (ModelState.IsValid) { //var mysubjectCategory = Db.Subjects.Where(x => x.CourseCode.Equals(model.SubjectCode)) // .Select(c => c.CategoriesId).FirstOrDefault(); //var subjectName = Db.Subjects.Where(x => x.CourseCode.Equals(model.SubjectCode)) // .Select(c => c.CourseName).FirstOrDefault(); //var student = Db.AssignedClasses.Where(x => x.ClassName.Equals(model.ClassName) // && x.TermName.Contains(model.TermName.ToString()) // && x.SessionName.Equals(model.SessionName)); var CA = Db.ContinuousAssessments.AsNoTracking().Where(x => x.ClassName.Equals(model.ClassName) && x.TermName.Contains(model.TermName.ToString()) && x.SessionName.Equals(model.SessionName) && x.StudentId.Equals(model.StudentId) && x.SubjectId.Equals(model.SubjectId)); var countFromDb = await CA.CountAsync(); if (countFromDb >= 1) { ViewBag.StudentId = new SelectList(await _query.StudentListAsync(userSchool), "StudentID", "FullName"); ViewBag.SessionName = new SelectList(_query.SessionList(), "SessionName", "SessionName"); ViewBag.ClassName = new SelectList(Db.Classes.AsNoTracking(), "FullClassName", "FullClassName"); ViewBag.TermName = new SelectList(_query.TermList(), "TermName", "TermName"); ViewBag.SubjectId = new SelectList(await _query.SubjectListAsync(userSchool), "SubjectId", "SubjectName"); TempData["UserMessage"] = "Record Already Exist in Database."; TempData["Title"] = "Error."; return(View(model)); } else { var myContinuousAssessment = new ContinuousAssessment() { StudentId = model.StudentId, SubjectId = model.SubjectId, FirstTest = model.FirstTest, SecondTest = model.SecondTest, ThirdTest = model.ThirdTest, ExamScore = model.ExamScore, TermName = model.TermName, SessionName = model.SessionName, ClassName = model.ClassName, StaffName = model.StaffName, SchoolId = userSchool //SubjectCategory = mysubjectCategory }; Db.ContinuousAssessments.Add(myContinuousAssessment); } await Db.SaveChangesAsync(); TempData["UserMessage"] = "Continuous Assessment Added Successfully."; TempData["Title"] = "Success."; return(RedirectToAction("Index")); } ViewBag.StudentId = new SelectList(await _query.StudentListAsync(userSchool), "StudentID", "FullName"); ViewBag.SessionName = new SelectList(_query.SessionList(), "SessionName", "SessionName"); ViewBag.ClassName = new SelectList(Db.Classes.AsNoTracking(), "FullClassName", "FullClassName"); ViewBag.TermName = new SelectList(_query.TermList(), "TermName", "TermName"); ViewBag.SubjectId = new SelectList(await _query.SubjectListAsync(userSchool), "SubjectId", "SubjectName"); ViewBag.StaffName = User.Identity.GetUserName(); return(View(model)); }