コード例 #1
0
        //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();
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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));
            ////////////
        }
コード例 #4
0
        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"));
        }