コード例 #1
0
        public void SaveAssignmentMarks(List <Marks> marks)
        {
            var dbContextTransaction = db.Database.BeginTransaction();

            try
            {
                foreach (var item in marks)
                {
                    Student_Assignment stu_assign = new Student_Assignment();
                    stu_assign.Id       = item.Id;
                    stu_assign.MarksGot = item.GotMark;
                    var check = db.Student_Assignment.Any(x => x.Id == stu_assign.Id);
                    if (check)
                    {
                        Student_Assignment student_assignment = (from x in db.Student_Assignment
                                                                 where x.Id == stu_assign.Id
                                                                 select x).First();
                        student_assignment.MarksGot = stu_assign.MarksGot;
                    }
                    db.SaveChanges();
                }
                dbContextTransaction.Commit();
            }
            catch (Exception)
            {
                dbContextTransaction.Dispose();
            }
        }
コード例 #2
0
        public ActionResult Student_Assignment_Submission(Student_Assignment stu_assignmnet)
        {
            int id = Convert.ToInt32(Request.Form["id"]);
            Student_Assignment result = (from p in db.Student_Assignment
                                         where p.Id == id
                                         select p).SingleOrDefault();

            var dbTransaction = db.Database.BeginTransaction();

            try
            {
                HttpPostedFileBase file = Request.Files["document"];
                if (ModelState.IsValid)
                {
                    if (file.ContentLength > 0)
                    {
                        var fileName = Path.GetFileName(file.FileName);
                        var path     = Path.Combine(Server.MapPath("~/App_Data/SubmittedAssignments"), fileName);
                        file.SaveAs(path);
                        result.SubmittedFileName = fileName;
                    }
                }


                result.Status = "Submitted";
                result.Date   = DateTime.Now;

                db.SaveChanges();
                dbTransaction.Commit();
            }
            catch (Exception) { dbTransaction.Dispose(); }
            return(RedirectToAction("Student_Assignment_Submission", new { id = result.AssignmentID }));
        }
コード例 #3
0
        public FileResult Student_Assignment_Submitted_File(int id)
        {
            Student_Assignment Assignment = db.Student_Assignment.Find(id);

            try
            {
                var filepath = System.IO.Path.Combine(Server.MapPath("~/App_Data/SubmittedAssignments/"), Assignment.SubmittedFileName);
                return(File(filepath, MimeMapping.GetMimeMapping(filepath), Assignment.SubmittedFileName));
            }
            catch
            {
                return(null);
            }
        }
コード例 #4
0
        //[HttpGet]
        //public JsonResult ExamsBySubject(int id)
        //{
        //    db.Configuration.ProxyCreationEnabled = false;
        //    List<AspNetExam> sub = db.AspNetExams.Where(r => r.SubjectID == id).OrderByDescending(r => r.Id).ToList();
        //    ViewBag.Subjects = sub;
        //    return Json(sub, JsonRequestBehavior.AllowGet);

        //}



        //[HttpGet]
        //public JsonResult SubjectsByClass(int id)
        //{
        //    db.Configuration.ProxyCreationEnabled = false;
        //    List<AspNetSubject> sub = db.AspNetSubjects.Where(r => r.ClassID == id).ToList();
        //    ViewBag.Subjects = sub;
        //    return Json(sub, JsonRequestBehavior.AllowGet);

        //}

        public ActionResult Student_Assignment_Submission(int id)
        {
            //Student_Assignment assignments = db.Student_Assignment.Find(id);
            Student_Assignment assignment = db.Student_Assignment.Include(x => x.AspNetAssignment.AspNetAssignment_Topic).Where(x => x.AssignmentID == id && x.StudentID == StudentID).FirstOrDefault();

            if (assignment.SubmittedFileName == null)
            {
                assignment.SubmittedFileName = " ";
            }
            if (assignment.AspNetAssignment.FileName == null)
            {
                assignment.AspNetAssignment.FileName = " ";
            }
            return(View(assignment));
        }
コード例 #5
0
        public ActionResult Create([Bind(Include = "Id,SubjectID,ClassID,PublishDate,DueDate,Description,TotalMarks,Weightage,Title,FileName,TeacherID")] AspNetAssignment aspNetAssignment)
        {
            IEnumerable <string> topics = Request.Form["TopicID"].Split(',');
            HttpPostedFileBase   file   = Request.Files["document"];

            if (ModelState.IsValid)
            {
                aspNetAssignment.TeacherID = TeacherID;
                if (file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);
                    var path     = Path.Combine(Server.MapPath("~/App_Data/Assignments"), fileName);
                    file.SaveAs(path);
                    aspNetAssignment.FileName = fileName;
                }
                db.AspNetAssignments.Add(aspNetAssignment);
                db.SaveChanges();

                int           assignmentID = db.AspNetAssignments.Max(item => item.Id);
                List <string> StudentIDs   = db.AspNetStudent_Subject.Where(s => s.SubjectID == aspNetAssignment.SubjectID).Select(s => s.StudentID).ToList();
                foreach (var item in StudentIDs)
                {
                    Student_Assignment stu_assign = new Student_Assignment();
                    stu_assign.StudentID    = item;
                    stu_assign.AssignmentID = assignmentID;
                    stu_assign.FileName     = aspNetAssignment.FileName;
                    stu_assign.Status       = "Not Submitted";
                    db.Student_Assignment.Add(stu_assign);
                    db.SaveChanges();
                }
                foreach (var item in topics)
                {
                    AspNetAssignment_Topic assign_topic = new AspNetAssignment_Topic();
                    assign_topic.TopicID      = Convert.ToInt32(item);
                    assign_topic.AssignmentID = assignmentID;
                    db.AspNetAssignment_Topic.Add(assign_topic);
                    db.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }

            ViewBag.ClassID   = new SelectList(db.AspNetClasses, "Id", "ClassName", aspNetAssignment.ClassID);
            ViewBag.SubjectID = new SelectList(db.AspNetSubjects, "Id", "SubjectName", aspNetAssignment.SubjectID);
            ViewBag.TeacherID = new SelectList(db.AspNetUsers, "Id", "Email", aspNetAssignment.TeacherID);
            return(View(aspNetAssignment));
        }
コード例 #6
0
        public ActionResult AddStudentFile(Assignment ass, HttpPostedFileBase fileU)
        {
            Assignment assignment = db.Assignment.Find(ass.AssignmentName);
            //assignment.AssignmentName = assignment.AssignmentName.Trim();

            Student student = db.Student.Find(ass.Stud.StudentID);


            if (student != null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            student = new Student
            {
                FirstName = ass.Stud.FirstName,
                LastName  = ass.Stud.LastName,
                StudentID = ass.Stud.StudentID,
            };

            Student_Assignment stud_assignment = new Student_Assignment
            {
                StudentID      = student.StudentID,
                AssignmentName = assignment.AssignmentName,
            };

            Student_Course stud_course = new Student_Course
            {
                StudentID  = student.StudentID,
                CourseName = assignment.CourseName
            };

            string basePath = HttpContext.Server.MapPath(@"\Uploads");
            string tempFile = HttpContext.Server.MapPath(@"\Temps");

            //string folderPath = Path.Combine(basePath, assignment.CourseName, assignment.AssignmentName);

            HttpPostedFileBase file = Request.Files["fileU"];


            string LanguageChosen = Request.Form["Projectlanguage"];



            string folder   = null;
            string fullPath = null;

            UnzipFileUpload unzip = new UnzipFileUpload();

            var result = unzip.UnzipFile(file, student.StudentID, basePath, assignment, tempFile, LanguageChosen, out folder);

            if (result == null)
            {
                student.PlagiaResultInfo = "No Plagiatism";
                if (student.PlagiaResultPercent == null)
                {
                    student.PlagiaResultPercent = 0;
                }

                student.CourseFilePath = folder.Trim();

                db.Student.Add(student);
                db.SaveChanges();

                db.Student_Assignment.Add(stud_assignment);
                db.SaveChanges();


                db.Student_Course.Add(stud_course);
                db.SaveChanges();



                return(RedirectToAction("Create", new { assName_parmaters = ass.AssignmentName }));
            }



            foreach (var item in result)
            {
                student.PlagiaResultInfo += item.Item1;
                if (student.PlagiaResultPercent == null)
                {
                    student.PlagiaResultPercent = 0;
                }
                student.PlagiaResultPercent += item.Item2;
                fullPath = item.Item3;
            }


            Sim sim = new Sim();
            var res = sim.FullResult(fullPath, folder);



            student.CourseFilePath      = folder.Trim();
            student.PlagiaResultPercent = student.PlagiaResultPercent / result.Count();
            student.Plagia_Details      = res;


            db.Student.Add(student);
            db.SaveChanges();

            db.Student_Assignment.Add(stud_assignment);
            db.SaveChanges();


            db.Student_Course.Add(stud_course);
            db.SaveChanges();


            //var result = unzip.UnzipFile(file, student.StudentID, basePath, assignment, tempFile, LanguageChosen);

            if (student.PlagiaResultInfo != null && student.PlagiaResultPercent != null)
            {
                ViewBag.ResultInfo       = student.PlagiaResultInfo;
                ViewBag.ResultPercentage = student.PlagiaResultPercent;
                ViewBag.StudentID        = student.StudentID;
            }

            //return RedirectToAction("Details", "Courses", new { nameCourse = assignment.CourseName });
            return(View("Create"));
        }
コード例 #7
0
        public ActionResult AssignmentMarksFromFile(Student_Assignment Stu_Assign)
        {
            var dbContextTransaction = db.Database.BeginTransaction();

            try
            {
                HttpPostedFileBase file = Request.Files["AssignmentMarks"];
                if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName))
                {
                    string fileName        = file.FileName;
                    string fileContentType = file.ContentType;
                    byte[] fileBytes       = new byte[file.ContentLength];
                    var    data            = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength));
                }

                List <Marks> MarkList = new List <Marks>();
                using (var package = new ExcelPackage(file.InputStream))
                {
                    var currentSheet = package.Workbook.Worksheets;
                    var workSheet    = currentSheet.First();
                    var noOfCol      = workSheet.Dimension.End.Column;
                    var noOfRow      = workSheet.Dimension.End.Row;
                    int AssignmentID = Convert.ToInt32(Request.Form["assignment"]);
                    for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
                    {
                        string             UserName = workSheet.Cells[rowIterator, 1].Value.ToString();
                        Student_Assignment stu_assign;
                        try
                        {
                            stu_assign = (from student_assignment in db.Student_Assignment
                                          where student_assignment.AspNetUser.UserName == UserName && student_assignment.AssignmentID == AssignmentID
                                          select student_assignment).First();
                        }
                        catch
                        {
                            ViewBag.ClassID = new SelectList(db.AspNetClasses, "Id", "ClassName");
                            ViewBag.Error   = "There is a problem at row" + rowIterator;

                            return(View("_Assignments_Marks", Stu_Assign));
                        }



                        Marks mark = new Marks();
                        mark.Id      = stu_assign.Id;
                        mark.GotMark = Convert.ToInt32(workSheet.Cells[rowIterator, 2].Value.ToString());
                        MarkList.Add(mark);
                    }
                    foreach (var item in MarkList)
                    {
                        Student_Assignment stu_assign = new Student_Assignment();
                        stu_assign.Id       = item.Id;
                        stu_assign.MarksGot = item.GotMark;


                        var check = db.Student_Assignment.Any(x => x.Id == stu_assign.Id);
                        if (check)
                        {
                            Student_Assignment student_assignment = (from x in db.Student_Assignment
                                                                     where x.Id == stu_assign.Id
                                                                     select x).First();
                            student_assignment.MarksGot = stu_assign.MarksGot;
                        }
                        db.SaveChanges();
                    }
                }
                dbContextTransaction.Commit();
            }
            catch (Exception)
            {
                dbContextTransaction.Dispose();
            }
            return(RedirectToAction("Teacher_Dashboard"));
        }