//tareq commented this out, try to comment out as needed, this method is not used or called //public async Task Enroll(StudentExamEnrollmentArrayViewModel model) //{ // try // { // var TestStudentNr = "ITISelev"; // Must be received from the profile information depending on which user is logged in // var filter = Builders<Student>.Filter.Eq(s => s.UserName, TestStudentNr); // var student = new Student(); // student.ExamEnrollment.FirstOrDefault().SubjectCode = model.SubjectCode; // student.ExamEnrollment.FirstOrDefault().RoomId = model.RoomId; // student.ExamEnrollment.FirstOrDefault().Mark = model.Mark; // // var jsonDoc = Newtonsoft.Json.JsonConvert.SerializeObject(newObject); // // var bsonDoc = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(jsonDoc); // // PROBLEM! Inserts an object with an extra line for object type _t: Subject. Have to figure out how to remove it! // var update = Builders<Student>.Update.AddToSet(student.ExamEnrollment.AsEnumerable().FirstOrDefault().SubjectCode, (Student)student); // With AddToSet we have a built in security that only adds the ListElement if it's unique // var result = await _context.Students.UpdateOneAsync(filter, update); // } // catch // { // throw; // } //} void IExamRepository.Enroll(StudentExamEnrollmentArrayViewModel model) { //write code to insert a new array element in ExamEnrollment //insert a new element in ExamEnrollment //then go to ExamController.cs, //code in video //ObjectId idCategoryMongo = new ObjectId(idCategory); //book.CategoryId = idCategoryMongo; //_context.Books.InsertOne(book); throw new NotImplementedException(); }
public async Task <ActionResult> Edit(StudentExamEnrollmentArrayViewModel model) { var user = await _userManager.FindByNameAsync(User.Identity.Name); //..FindByIdAsync(model.Id); if (user == null) { return(NotFound()); } // var examEnrollmentViewModel = new ExamEnrollmentViewModel(); //user.AccessFailedCount = model.AccessFailedCount; //user.ConcurrencyStamp = model.ConcurrencyStamp; //user.Email = model.Email; //user.EmailConfirmed = model.EmailConfirmed; //user.LockoutEnabled = model.LockoutEnabled; //user.LockoutEnd = model.LockoutEnd; //user.PhoneNumber = model.PhoneNumber; //user.PhoneNumberConfirmed = model.PhoneNumberConfirmed; //user.SecurityStamp = model.SecurityStamp; //user.TwoFactorEnabled = model.TwoFactorEnabled; //user.UserName = model.UserName; //user.Fname = model.Fname; //user.Lname = model.Lname; //user.Programmes.ProgrammeCode = model.ProgrammeCode; //user.Programmes.ProgrammeName = model.ProgrammeName; //examEnrollmentViewModel.ProgrammeId = user.Programmes.Id; //examEnrollmentViewModel.ProgrammeName = user.Programmes.ProgrammeName; //user.ExamEnrollment = model.ExamEnrollment; user.ExamEnrollment.ToArray().LastOrDefault().SubjectCode = model.SubjectCode; user.ExamEnrollment.ToArray().LastOrDefault().RoomId = model.RoomId; user.ExamEnrollment.ToArray().LastOrDefault().Mark = model.Mark; //user.Logins.LastOrDefault().UserId = _userManager.FindByIdAsync(model.Id).ToString(); // need correcting await _userManager.UpdateAsync(user); // await _userUserCollection.ReplaceOneAsync(x=>x.Id == user.Id, user); return(Redirect("/EnrollmentSensor")); }
public async Task <ActionResult> Edit(string id) { var user = await _userManager.FindByNameAsync(id); if (user == null) { return(NotFound()); } //////////// var model = new StudentExamEnrollmentArrayViewModel { //Id = user.Id.ToString(), //AccessFailedCount = user.AccessFailedCount, //AuthenticatorKey = user.AuthenticatorKey, //ConcurrencyStamp = user.ConcurrencyStamp, //Email = user.Email, //EmailConfirmed = user.EmailConfirmed, //LockoutEnabled = user.LockoutEnabled, //LockoutEnd = user.LockoutEnd, //NormalizedEmail = user.NormalizedEmail, //NormalizedUserName = user.NormalizedUserName, //PasswordHash = user.PasswordHash, //PhoneNumber = user.PhoneNumber, //PhoneNumberConfirmed = user.PhoneNumberConfirmed, //SecurityStamp = user.SecurityStamp, //TwoFactorEnabled = user.TwoFactorEnabled, //UserName = user.UserName, //Fname = user.Fname, //Lname = user.Lname, //ProgrammeCode = user.Programmes.ProgrammeCode, //ProgrammeName = user.Programmes.ProgrammeName, //Programmes = user.Programmes, SubjectCode = user.ExamEnrollment.ToArray().FirstOrDefault().SubjectCode, // these codes are not ok RoomId = user.ExamEnrollment.ToArray().FirstOrDefault().RoomId, Mark = user.ExamEnrollment.ToArray().FirstOrDefault().Mark }; return(View(model)); //////////// }
public async Task <ActionResult> Enroll(EnrollForExamViewModel model) { var u = await _userManager.FindByIdAsync(model.UserName); var flag_already_reg = 0; if (u == null) { return(NotFound("You are not logged in!")); } if (u.Programmes.ProgrammeCode != model.ProgrammeCode) { return(NotFound(StatusMessage = "The program line is not applicable to the user")); } // if (u.Programmes.ProgrammeCode != model.ProgrammeCode) return Redirect($"/Exam/"); var date = DateTime.Now; var i = (u.ExamEnrollment.ToArray().Length) - 1; // it saved over the last element in the array if (i > -1) { for (int wow = 0; wow < i + 1; wow++) { if (u.ExamEnrollment.ElementAtOrDefault(wow).SubjectCode == model.IdExam) { //return Window.Confirm(); install package //MessageBox.Show StatusMessage = " You are already previously enrolled to the selected exam."; flag_already_reg = 1; } } } if (flag_already_reg == 0) { //if (model.ExamDate < DateTime.Now) return NotFound(StatusMessage = "The exam date is " + model.ExamDate + " But the date today is " + date + " so The Registration time is passed, you can not enroll now!"); var temp = new StudentExamEnrollmentArrayViewModel(); temp.SubjectCode = model.IdExam; temp.RoomId = model.RoomId; temp.Mark = model.Mark; u.ExamEnrollment.Add(temp); //u.ExamEnrollment.ElementAtOrDefault(i).SubjectCode = model.IdExam; //u.ExamEnrollment.ElementAtOrDefault(i).RoomId = model.RoomId; //u.ExamEnrollment.ElementAtOrDefault(i).Mark = model.Mark; //u.ExamEnrollment[i].SubjectCode = model.IdExam; //u.ExamEnrollment[i].RoomId = model.RoomId; //u.ExamEnrollment[i].Mark = model.Mark; //set a new repository //after making the method, await _userManager.UpdateAsync(u); // this will update the Array replacing the last element in the array // await _userUserCollection.InsertOneAsync(u); // _examRepository.Enroll.InsertMany(u); //put code here //potential solution: await _EntityDomainManager<TData>.InsertAsync(u); //public override System.Threading.Tasks.Task<TData> InsertAsync (TData data); StatusMessage = "You are now enrolled to the exam."; flag_already_reg = 0; } return(Redirect("/Exam")); }