Example #1
0
        ///////////////////////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));
        }