protected void Page_Load(object sender, EventArgs e) { try { // Get the subject dropdown list DropDownList subjectDrpDwnList = subject; // Get the current logged-in lecturer user ID Guid userId = new Guid(Membership.GetUser().ProviderUserKey.ToString()); // Using DB connection using (OnlineAssessmentDBEntities db = new OnlineAssessmentDBEntities()) { // Get the current logged-in lecturer Lecturer_Profile lecturer = db.Lecturer_Profile.Where(l => l.Id == userId).FirstOrDefault(); // Get only the subjects for the faculty that the lecturer is in List <Subject> subjects = db.Subject.Where(s => s.Programme.faculty == lecturer.faculty).ToList(); // Populate the dropdown list foreach (var subject in subjects) { subjectDrpDwnList.Items.Add(new ListItem(subject.subjectName, subject.Id.ToString())); } } } catch (Exception) { Response.Redirect("/"); } }
// The return type can be changed to IEnumerable, however to support // paging and sorting, the following parameters must be added: // int maximumRows // int startRowIndex // out int totalRowCount // string sortByExpression public IQueryable <university_online_assessment.Models.Enrollment> displayStudentList_GetData() { Guid lecturerID = (Guid)Membership.GetUser().ProviderUserKey; Lecturer_Profile lecturer = db.Lecturer_Profile.Find(lecturerID); if (lecturer == null) { return(null); } return(db.Enrollment.Where(e => e.Programme.faculty.Equals(lecturer.faculty))); }
protected void Page_Load(object sender, EventArgs e) { Guid assessID = Guid.Empty; try { assessID = Guid.Parse(Page.RouteData.Values["id"].ToString()); } catch (Exception) { Response.Redirect("/lecturer/list"); } using (OnlineAssessmentDBEntities db = new OnlineAssessmentDBEntities()) { Assessment assessment = db.Assessment.Find(assessID); if (assessment == null) { Response.Redirect("/lecturer/list"); } Page.Title = $"Edit {assessment.assessName}"; // Get the subject dropdown list DropDownList subjectDrpDwnList = subject; // Get the current logged-in lecturer user ID Guid userId = Guid.Parse(Membership.GetUser().ProviderUserKey.ToString()); // Get the current logged-in lecturer Lecturer_Profile lecturer = db.Lecturer_Profile.Where(l => l.Id == userId).FirstOrDefault(); if (subjectDrpDwnList.Items.Count == 0) { // Get only the subjects for the faculty that the lecturer is in List <Subject> subjects = db.Subject.Where(s => s.Programme.faculty == lecturer.faculty).ToList(); int counter = 0, index = 0; // Populate the dropdown list foreach (var subject in subjects) { if (subject.subjectName.Equals(assessment.Subject1.subjectName)) { index = counter; } subjectDrpDwnList.Items.Add(new ListItem(subject.subjectName, subject.Id.ToString())); counter++; } subjectDrpDwnList.SelectedIndex = index; } if (!Page.IsPostBack) { // Set assessment publicity assessPublicity.SelectedIndex = assessment.publicity; assessName.Text = assessment.assessName; } // Set header name subjectLbl.Text = assessment.Subject1.subjectName; List <Question> questions = assessment.Question.ToList(); // 0 = MCQ, 1 = Written if (assessment.type == 0) { // Iterate and display questions for (int i = 0; i < questions.Count; i++) { if (questions[i].imgPath != null) { questionPlaceHolder.Controls.Add(new LiteralControl($"<img src=\"/Image_Storage/{questions[i].imgPath}\" class=\"img-fluid\" />")); } Label quesNoLbl = new Label(); quesNoLbl.Text = $"Question No.{i + 1}"; TextBox ques = new TextBox(); ques.ID = $"ques_{i + 1}"; ques.Text = questions[i].question1; ques.CssClass = "form-control"; RequiredFieldValidator requiredFieldValidator = new RequiredFieldValidator(); requiredFieldValidator.SetFocusOnError = true; requiredFieldValidator.ErrorMessage = "Please ensure the question field is not left blank"; requiredFieldValidator.Display = ValidatorDisplay.Dynamic; requiredFieldValidator.ForeColor = System.Drawing.Color.Red; requiredFieldValidator.ControlToValidate = ques.ID; questionPlaceHolder.Controls.Add(new LiteralControl("<div class=\"form-group\">")); questionPlaceHolder.Controls.Add(quesNoLbl); questionPlaceHolder.Controls.Add(ques); questionPlaceHolder.Controls.Add(requiredFieldValidator); questionPlaceHolder.Controls.Add(new LiteralControl("<br />")); List <Answer> answers = questions[i].Answer.ToList(); // Display 4 MCQ answer for (int j = 0; j < answers.Count; j++) { questionPlaceHolder.Controls.Add(new LiteralControl("<div class=\"row\"><div class=\"col-md-10\">")); TextBox answer = new TextBox(); answer.ID = $"ans_{i + 1}_{j + 1}"; answer.Text = answers[j].answer1; answer.CssClass = "form-control"; CheckBox chkBox = new CheckBox(); chkBox.ID = $"isAns_{i + 1}_{j + 1}"; if (answers[j].isCorrectAnswer) { chkBox.Checked = true; } RequiredFieldValidator requiredFieldValidator1 = new RequiredFieldValidator(); requiredFieldValidator1.SetFocusOnError = true; requiredFieldValidator1.ErrorMessage = "Please ensure the answer field is not left blank"; requiredFieldValidator1.Display = ValidatorDisplay.Dynamic; requiredFieldValidator1.ForeColor = System.Drawing.Color.Red; requiredFieldValidator1.ControlToValidate = answer.ID; questionPlaceHolder.Controls.Add(answer); questionPlaceHolder.Controls.Add(requiredFieldValidator1); questionPlaceHolder.Controls.Add(new LiteralControl("</div><div class=\"col-md-2\">")); questionPlaceHolder.Controls.Add(chkBox); questionPlaceHolder.Controls.Add(new LiteralControl("</div></div>")); } questionPlaceHolder.Controls.Add(new LiteralControl("<br />")); FileUpload quesImg = new FileUpload(); quesImg.ID = $"quesImg_{i + 1}"; quesImg.CssClass = "form-group"; questionPlaceHolder.Controls.Add(quesImg); questionPlaceHolder.Controls.Add(new LiteralControl("</div>"));; } } else if (assessment.type == 1) { // Generate nth of questions for (int i = 0; i < questions.Count; i++) { Label quesNoLbl = new Label(); quesNoLbl.Text = $"Question No.{i + 1}"; TextBox ques = new TextBox(); ques.ID = $"ques_{i + 1}"; ques.Text = questions[i].question1; ques.CssClass = "form-control"; RequiredFieldValidator requiredFieldValidator = new RequiredFieldValidator(); requiredFieldValidator.SetFocusOnError = true; requiredFieldValidator.ErrorMessage = "Please ensure the question field is not left blank<br/>"; requiredFieldValidator.Display = ValidatorDisplay.Dynamic; requiredFieldValidator.ForeColor = System.Drawing.Color.Red; requiredFieldValidator.ControlToValidate = ques.ID; questionPlaceHolder.Controls.Add(new LiteralControl("<div class=\"form-group\">")); questionPlaceHolder.Controls.Add(quesNoLbl); questionPlaceHolder.Controls.Add(ques); questionPlaceHolder.Controls.Add(requiredFieldValidator); questionPlaceHolder.Controls.Add(new LiteralControl("<br/>")); if (questions[i].imgPath != null) { questionPlaceHolder.Controls.Add(new LiteralControl($"<img src=\"/Image_Storage/{questions[i].imgPath}\" class=\"img-fluid\" />")); questionPlaceHolder.Controls.Add(new LiteralControl("<br/>")); FileUpload quesImg = new FileUpload(); quesImg.ID = $"quesImg_{i + 1}"; quesImg.CssClass = "form-group"; questionPlaceHolder.Controls.Add(quesImg); } questionPlaceHolder.Controls.Add(new LiteralControl("</div>")); } } } }
public void addNewLecturer() { if (Page.IsValid) { try { // Retrieve controls TextBox lectId = registerLecturerForm.FindControl("lectId") as TextBox; TextBox password = registerLecturerForm.FindControl("password_confirmation") as TextBox; TextBox email = registerLecturerForm.FindControl("email") as TextBox; // First create the user membership MembershipUser newLecturer = Membership.CreateUser(lectId.Text, password.Text, email.Text); Roles.AddUserToRole(lectId.Text, "Lecturer"); // Create the lecturer profile Lecturer_Profile lecturer = new Lecturer_Profile(); lecturer.Id = (Guid)newLecturer.ProviderUserKey; TryUpdateModel(lecturer); if (ModelState.IsValid) { // Connect to database to add new staff profile using (OnlineAssessmentDBEntities db = new OnlineAssessmentDBEntities()) { // Add the new staff and save it db.Lecturer_Profile.Add(lecturer); db.SaveChanges(); // Set the text to new staff ID newLecturerID.Text = lectId.Text; // Show success label & hide failure label alertSuccess.Visible = true; alertFailure.Visible = false; } } } catch (MembershipCreateUserException ex) { // Match exception code with status code from MembershipCreateStatus class switch (ex.StatusCode) { case MembershipCreateStatus.DuplicateUserName: alertFailureMsg.Text = "There already exists a user with this username."; break; case MembershipCreateStatus.DuplicateEmail: alertFailureMsg.Text = "There already exists a user with this email address."; break; case MembershipCreateStatus.InvalidEmail: alertFailureMsg.Text = "There email address you provided in invalid."; break; case MembershipCreateStatus.InvalidPassword: alertFailureMsg.Text = "The password you provided is invalid. It must be seven characters long and have at least one non-alphanumeric character."; break; default: alertFailureMsg.Text = "There was an unknown error; the user account was NOT created."; break; } // Show failure message alertSuccess.Visible = false; alertFailure.Visible = true; } catch (Exception ex) { // Show failure message alertFailureMsg.Text = "Oops! There was a problem occurred when registering the new lecturer."; alertSuccess.Visible = false; alertFailure.Visible = true; } } }