Beispiel #1
0
        public string SaveFiles(List <HttpPostedFileBase> files, string userId, string problemId)
        {
            UnitOfWork uow      = new UnitOfWork();
            string     fileHTML = "";

            try
            {
                if (files != null && files.Count > 0)
                {
                    foreach (var file in files)
                    {
                        string fileName = null;
                        fileName = Path.GetFileName(file.FileName);
                        string path = Path.Combine(Server.MapPath("~/Uploads/QuestionFiles/"), fileName);
                        if (System.IO.File.Exists(path))
                        {
                            string[] fileNameSplit = fileName.Split('.');
                            if (fileNameSplit.Count() > 1)
                            {
                                fileName = fileName.Split('.')[0] + "_2." + fileName.Split('.')[1];
                            }
                            else
                            {
                                fileName = fileName + "_2";
                            }
                            path = Path.Combine(Server.MapPath("~/Uploads/QuestionFiles/"), fileName);
                        }
                        file.SaveAs(path);
                        StudentProblemFile problemFile = new StudentProblemFile
                        {
                            ProblemID    = problemId,
                            FileName     = fileName,
                            CreationDate = DateTime.Now,
                            UserID       = userId
                        };
                        uow.StudentProblemFiles.Insert(problemFile);
                        fileHTML += "<br/><a target='_blank' href='/uploads/questionfiles/" + fileName + "'>" + fileName + "</a>";
                    }
                    uow.Save();
                }
            }
            catch (Exception)
            {
            }
            return(fileHTML);
        }
Beispiel #2
0
        public ActionResult CreateProblem(ProblemsModel model, List <HttpPostedFileBase> files)
        {
            Common                common   = new Common();
            UnitOfWork            uow      = new UnitOfWork();
            List <TeacherSubject> subjects = uow.TeacherRepository.GetSubjects(model.TeacherID);

            model.Subjects           = new SelectList(uow.Subjects.Get(), "SubjectID", "SubjectName");
            model.SessionTypes       = GetSessionTypess();
            model.DurationHourList   = new SelectList(common.GetDurationHours());
            model.DurationMinuteList = new SelectList(common.GetMinutes());
            if (Convert.ToInt32(model.DurationHour) < 1 && Convert.ToInt32(model.DurationMinutes) < 30)
            {
                ModelState.AddModelError("classtime-error", Resources.Resources.MsgClassDurationError);
                return(View(model));
            }
            else if (!ModelState.IsValid)
            {
                if (!string.IsNullOrEmpty(model.TeacherID))
                {
                    User selectedTeacher = uow.Users.GetByID(model.TeacherID);
                    ViewBag.TeacherName = selectedTeacher.FirstName + " " + selectedTeacher.LastName;
                }
                //ModelState.AddModelError("error", Resources.Resources.InvalidInfo);
                return(View(model));
            }
            string userId = Session["UserId"].ToString();

            if (Common.UserHasCredits(userId, model.HoursNeeded))
            {
                decimal        classDuration = Math.Round(Convert.ToInt16(model.DurationHour) + (Convert.ToInt16(model.DurationMinutes) / 60m), 2);
                StudentProblem problem       = new StudentProblem
                {
                    ProblemID    = Guid.NewGuid().ToString(),
                    StudentID    = Session["UserId"].ToString(),
                    SubjectID    = model.Subject,
                    CreationDate = DateTime.Now,
                    Description  = model.ProblemDescription,
                    HoursNeeded  = classDuration,
                    Type         = model.Type,
                    //FileName = fileName,
                    TeacherID  = model.TeacherID,
                    Status     = model.TeacherID != null ? (int)ProblemStatus.TeacherSelected : (int)ProblemStatus.Created,
                    ExpireDate = DateTime.ParseExact(model.DeadLine, "dd/MM/yyyy", CultureInfo.InvariantCulture) // need to add datetime datepicker
                };
                uow.StudentProblems.Insert(problem);
                //save problem files(s) in uploads folder
                if (files != null && files.Count > 0)
                {
                    foreach (var file in files)
                    {
                        if (file != null)
                        {
                            string fileName = null;
                            //fileName = Guid.NewGuid().ToString() + Path.GetFileName(file.FileName);
                            fileName = Path.GetFileName(file.FileName);
                            string path = Path.Combine(Server.MapPath("~/Uploads/QuestionFiles/"), fileName);
                            if (System.IO.File.Exists(path))
                            {
                                string[] fileNameSplit = fileName.Split('.');
                                if (fileNameSplit.Count() > 1)
                                {
                                    fileName = fileName.Split('.')[0] + "_2." + fileName.Split('.')[1];
                                }
                                else
                                {
                                    fileName = fileName + "_2";
                                }
                                path = Path.Combine(Server.MapPath("~/Uploads/QuestionFiles/"), fileName);
                            }
                            file.SaveAs(path);
                            //save problem files(s) in database
                            StudentProblemFile problemFile = new StudentProblemFile
                            {
                                ProblemID    = problem.ProblemID,
                                FileName     = fileName,
                                CreationDate = DateTime.Now,
                                UserID       = userId
                            };
                            uow.StudentProblemFiles.Insert(problemFile);
                        }
                    }
                }
                uow.Save();
                //add notification if teacher is selected
                if (!string.IsNullOrEmpty(model.TeacherID))
                {
                    Common.AddNotification(Session["UserName"] + " asked you a question", "", Session["UserId"].ToString(), model.TeacherID, "/tutor/writeproposal?q=" + problem.ProblemID, (int)NotificationType.Question);
                }
                //end
                ModelState.AddModelError("success", Resources.Resources.MsgProblemSubmitedSuccessfully);
                return(View(model));
            }
            else
            {
                model.SessionTypes       = GetSessionTypess();
                model.DurationMinuteList = new SelectList(common.GetMinutes());
                model.DurationHourList   = new SelectList(common.GetDurationHours());
                model.Subjects           = new SelectList(uow.Subjects.Get(), "SubjectID", "SubjectName");
                ModelState.AddModelError("error", Resources.Resources.MsgNoBalance);
                return(View(model));
            }
        }