private void DeleteFile(SubmitFileDTO file)
        {
            if (file == null)
            {
                return;
            }

            string fullPath = Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath("~/Files/Assignments"), file.FileGuid);

            if (System.IO.File.Exists(fullPath))
            {
                System.IO.File.Delete(fullPath);
            }
        }
Пример #2
0
        public void DeleteFileFromFSandDBIfExists(SubmitFileDTO dto)
        {
            if (dto == null)
            {
                throw new ArgumentNullException();
            }
            var submitFileEntity = mapper.Map <SubmitFileDTO, SubmitFile>(dto);

            if (submitFileEntity != null)
            {
                DeleteFile(submitFileEntity);
            }
            submitFileService.Delete(dto);
        }
        public async Task UploadFileAsync(Controller controller, HttpPostedFileBase file, int assignmentId, string studentId)
        {
            SubmissionDTO submission = await service.GetByCompositeKeysAsync(assignmentId, studentId);

            if (submission == null)
            {
                throw new Exception();
            }
            if (file != null && file.ContentLength > 0)
            {
                try
                {
                    if (submission.Completed)
                    {
                        controller.ViewBag.FileStatus = "This assignment is already complete!You cannot updload a file to this assignment.";
                        return;
                    }

                    SubmitFileDTOBuilderData builderData   = new SubmitFileDTOBuilderData(file);
                    SubmitFileDTO            newSubmitFile = dtoFactory.CreateDTO <SubmitFileDTOBuilderData, SubmitFileDTO>(builderData);

                    string path = Path.Combine(controller.Server.MapPath("~/Files/Assignments"), newSubmitFile.FileGuid);
                    file.SaveAs(path);

                    service.DeleteFileFromFSandDBIfExists(submission.SubmitFile);

                    submission.SubmitFile = newSubmitFile;
                    submission.Submitted  = DateTime.Now;

                    await service.SaveChangesAsync();
                }
                catch (Exception)
                {
                    controller.ViewBag.FileStatus = "Error while file uploading.";
                }
            }
            else
            {
                controller.ModelState.AddModelError("", "Upload file is not selected!");
            }
            return;
        }