Example #1
0
        /// <summary>
        /// Allows the student to turn in the assignment.
        /// </summary>
        /// <param name="submitAssignment"></param>
        /// <returns></returns>
        public async Task <string> SubmitAssignmentAsync(SubmitAssignmentDTO submitAssignment)
        {
            var currentStudent = await _studentRepository.GetFirstOrDefaultAsync(i => i.AppUser.UserName == _loggedUser).ConfigureAwait(false);

            string basePath = GlobalConstants.DocumentLibraryPath;

            FormFileOperations.FilesFolderNameCreator assignmentFolderNameCreator = (Type type) => type.Name + "Assignment";

            var maxFileLength = 140000000;

            var allowedFileExtensions = GlobalConstants.AllowedFileExtensions.Find(i => i.FileType == FileType.Compressed.ToString()).AllowedExtensions;

            var validationResult = submitAssignment.Assignment.ValidateFile(maxFileLength, allowedFileExtensions, FileType.Compressed);

            var path = await submitAssignment.Assignment.SaveFileToPathAsync(submitAssignment, basePath, assignmentFolderNameCreator, "Id").ConfigureAwait(false);

            await submitAssignment.Assignment.OpenReadStream().DisposeAsync().ConfigureAwait(false);

            await _milvaMailSender.MilvaSendMailAsync(currentStudent.Mentor.AppUser.Email, Helpers.Enums.MailSubject.Information, currentStudent.Name + currentStudent.Surname + " isimli öğrencinin ödevini gönderdi.");

            return(path);
        }
Example #2
0
        public async Task<IActionResult> SubmitAssignment([FromBody] SubmitAssignmentDTO submitAssignment)
        {
            var path = await _assigmentService.SubmitAssignmentAsync(submitAssignment).ConfigureAwait(false);

            return Ok(path);
        }