///////////////////////not sure of the route public async Task <IActionResult> AddTaskSolutionByStudent(int TaskId, int CourseId) { if (Request.Form.Files.Count() < 1 || TaskId < 1 || CourseId < 1) { return(BadRequest()); } var files = new List <IFormFile>(); for (int i = 0; i < Request.Form.Files?.Count(); i++) { files.Add(Request.Form.Files[i]); } var uploader = new Uploader(hostingEnvironment); var AllMaterial = new List <TaskSolution>(); var StudentId = User.Claims.First(c => c.Type == "UserId").Value; var NewTaskSolution = new TaskSolution(); NewTaskSolution.MyUserModelId = StudentId; foreach (IFormFile source in files) { if (source.Length == 0) { continue; } string filename = ContentDispositionHeaderValue.Parse(source.ContentDisposition).FileName.ToString().Trim('"'); filename = uploader.EnsureCorrectFilename(filename); var PathToBeSavedInDB = uploader.GetPathAndFilename(filename); using (FileStream output = System.IO.File.Create(PathToBeSavedInDB)) await source.CopyToAsync(output); NewTaskSolution.TaskId = TaskId; NewTaskSolution.CourseId = CourseId; NewTaskSolution.FileName = filename; NewTaskSolution.TaskSolutionURL = PathToBeSavedInDB; var cm = TaskSolutionManager.AddTaskByStudent(NewTaskSolution); AllMaterial.Add(cm); } return(Ok(AllMaterial)); }
// [Authorize] public async Task <IActionResult> AddMaterial(int CourseId) { var files = new List <IFormFile>(); for (int i = 0; i < Request.Form.Files?.Count(); i++) { files.Add(Request.Form.Files[i]); } var uploader = new Uploader(hostingEnvironment); var AllMaterial = new List <TextMaterial>(); var mat = new TextMaterial(); if (files.Count() == 0 || CourseId <= 0) { return(BadRequest()); } foreach (IFormFile source in files) { if (source.Length == 0) { continue; } //get uploaded file name as in the user pc string filename = ContentDispositionHeaderValue.Parse(source.ContentDisposition).FileName.ToString().Trim('"'); filename = uploader.EnsureCorrectFilename(filename); var PathToBeSavedInDB = uploader.GetPathAndFilename(filename); using (FileStream output = System.IO.File.Create(PathToBeSavedInDB)) await source.CopyToAsync(output); mat.CourseId = CourseId; mat.TextMaterialName = filename; mat.URL = PathToBeSavedInDB; var cm = db.AddMaterial(mat); AllMaterial.Add(cm); } return(Ok(AllMaterial)); }