コード例 #1
0
        public async Task <IActionResult> AddCoursePhoto(int teacherId, int courseId)
        {
            string auth = Request.Headers["Authorization"]; // get bearer string

            if (AuthHelper.BasicAuth(auth, teacherId, "Teacher") == false)
            {
                return(Unauthorized());
            }

            var files = Request.Form.Files;

            if (files == null)
            {
                return(BadRequest("Request must contain at least a file"));
            }
            // init ava and cover file object
            dynamic         ava             = null;
            int             avaCount        = 0;
            FormFileChecker fileTypeChecker = new FormFileChecker();

            foreach (var file in files)
            {
                if (fileTypeChecker.CheckFileType(file, "image"))
                {
                    if (avaCount < 1)
                    {
                        ava = file;
                    }
                    else
                    {
                        return(BadRequest("Too much Ava to upload"));
                    }
                }
            }

            // create FileUploadHelper reference
            FileUploadHelper fileUpload = new FileUploadHelper(_config);
            // Modify image link if posted data != null
            var courseToUpdate = await _repo.GetCourse(courseId, teacherId);

            try {
                courseToUpdate.AvaUrl = await fileUpload.UploadImage(ava);
            } catch (ImgurException imgurEx) {
                return(BadRequest("Unable to upload image to Imgur: " + imgurEx.Message));
            }

            await _repo.SaveAll();

            var courseToReturn = _mapper.Map <CourseForDetailedDto>(courseToUpdate);

            return(Ok(courseToReturn));
        }
コード例 #2
0
        public async Task <IActionResult> AddVideo(int courseId, int teacherId)
        {
            string auth = Request.Headers["Authorization"]; // get bearer string

            if (AuthHelper.BasicAuth(auth, teacherId, "Teacher") == false)
            {
                return(Unauthorized());
            }

            var files = Request.Form.Files;

            if (files == null)
            {
                return(BadRequest("Request must contain video file"));
            }

            FormFileChecker fileChecker = new FormFileChecker();

            foreach (var file in files)
            {
                if (!fileChecker.CheckFileType(file, "video"))
                {
                    return(BadRequest("Course Video must be type of video"));
                }
            }

            // return Ok(files);

            var videoToReturn = new List <VideoForDetailedDto>();
            FileUploadHelper fileUploadHelper = new FileUploadHelper(_cloudinary);

            foreach (var file in files)
            {
                var uploadResult  = fileUploadHelper.UploadVideo(file);
                var videoToCreate = new VideoForCreateDto
                {
                    CourseId = courseId,
                    VideoUrl = uploadResult.Uri.ToString(),
                    PublicId = uploadResult.PublicId
                };
                var videoToAdd = _mapper.Map <Models.Video>(videoToCreate);
                var videoAdded = await _repo.AddVideo(videoToAdd, courseId);

                await _repo.SaveAll();

                videoToReturn.Add(_mapper.Map <VideoForDetailedDto>(videoAdded));
            }

            return(Ok(videoToReturn));
        }