コード例 #1
0
        public ActionResult SaveSupportMaterial(string id)
        {
            using (var tx = new TransactionScope())
            {
                var uploader     = new SupportMaterialUploader(id);
                var uploadResult = uploader.Upload(Request.Files[0]);

                var classRepository = new ClassRepository(_context);
                var klass           = classRepository.GetById(new Guid(id));

                klass.Files.Add(new File
                {
                    PhysicalPath = uploadResult.Message,
                    CreatedAt    = DateTime.Now,
                    Active       = true,
                    Name         = Request.Files[0]?.FileName,
                    Class        = klass
                });

                _context.Save(_loggedUser);

                tx.Complete();
                return(Json(uploadResult));
            }
        }
コード例 #2
0
        public ActionResult ListSupportMaterial(string classId)
        {
            var classRepository = new ClassRepository(_context);
            var klass           = classRepository.GetById(new Guid(classId));

            var files    = new List <dynamic>();
            var uploader = new SupportMaterialUploader(classId);

            foreach (var item in klass.Files)
            {
                files.Add(new
                {
                    item.Name,
                    Size = uploader.GetFileInfo(item.PhysicalPath).Length
                });
            }

            return(Json(new { Files = files }));
        }
コード例 #3
0
        public ActionResult DeleteSupportMaterial(string id, string fileName)
        {
            using (var tx = new TransactionScope())
            {
                var classRepository = new ClassRepository(_context);
                var klass           = classRepository.GetById(new Guid(id));
                var file            = klass.Files.Single(x => x.PhysicalPath == fileName);
                klass.Files.Remove(file);
                classRepository.UpdateWithFiles(klass);
                _context.Save(_loggedUser);

                var uploader = new SupportMaterialUploader(id);
                uploader.DeleteFile(fileName);

                tx.Complete();
            }

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
コード例 #4
0
        public ActionResult Delete(string id)
        {
            var classRepository = new ClassRepository(_context);
            var uploader        = new SupportMaterialUploader(id);
            var klass           = classRepository.GetById(new Guid(id));

            using (var tx = new TransactionScope())
            {
                foreach (var file in klass.Files)
                {
                    uploader.DeleteFile(file.PhysicalPath);
                }

                classRepository.Delete(klass.Id);
                _context.Save(_loggedUser);

                tx.Complete();
            }

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }