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); }
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)); } }