예제 #1
0
        public async Task <IActionResult> PutTblFiles([FromRoute] int?id, [FromBody] TblFiles tblFiles)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != tblFiles.Id)
            {
                return(BadRequest());
            }

            _context.Entry(tblFiles).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TblFilesExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #2
0
 public DefaultModel()
 {
     Files         = new List <TblFiles>();
     PageInfo      = new Page();
     UpFile        = new TblFiles();
     ActionMessage = "";
     ActionCode    = 0;
 }
예제 #3
0
        public async Task <Guid> AddFile(DBFile file)
        {
            if (file.Id == Guid.Empty)
            {
                file.Id = Guid.NewGuid();
            }
            await TblFiles.Insert(file, false).ExecuteAsync().ConfigureAwait(false);

            return(file.Id);
        }
예제 #4
0
        public async Task <IActionResult> PostTblFiles([FromBody] TblFiles tblFiles)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.TblFiles.Add(tblFiles);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetTblFiles", new { id = tblFiles.Id }, tblFiles));
        }
예제 #5
0
        private static int StoreFolder(string directoryName, int pageRef)
        {
            var f = new TblFiles
                        {
                            Name = Path.GetFileName(directoryName),
                            IsDirectory = true,
                            PageRef = pageRef,
                        };

            ServerModel.DB.Insert(f);

            return f.ID;
        }
예제 #6
0
        private static void StoreFile(int pid, FileSystemInfo file, int pageRef)
        {
            var f = new TblFiles
                        {
                            Name = file.Name,
                            IsDirectory = false,
                            PageRef = pageRef,
                            File = File.ReadAllBytes(file.FullName),
                            PID = pid
                        };

            ServerModel.DB.Insert(f);
        }
예제 #7
0
        private static int StoreFolder(string directoryName, int pageRef)
        {
            var f = new TblFiles
            {
                Name        = Path.GetFileName(directoryName),
                IsDirectory = true,
                PageRef     = pageRef,
            };

            ServerModel.DB.Insert(f);

            return(f.ID);
        }
예제 #8
0
        private static void StoreFile(int pid, FileSystemInfo file, int pageRef)
        {
            var f = new TblFiles
            {
                Name        = file.Name,
                IsDirectory = false,
                PageRef     = pageRef,
                File        = File.ReadAllBytes(file.FullName),
                PID         = pid
            };

            ServerModel.DB.Insert(f);
        }
예제 #9
0
        private static TblFiles StoreFile(XmlNode node, int pageRef, string filePath)
        {
            var reader = new StreamReader(filePath);
            byte[] file = Encoding.Unicode.GetBytes(reader.ReadToEnd());

            var f = new TblFiles
            {
                PageRef = pageRef,
                File = file,
                Name = node.Attributes["href"].Value,
                IsDirectory = false,
            };

            ServerModel.DB.Insert(f);

            return f;
        }
예제 #10
0
        private static TblFiles StoreFile(XmlNode node, int pageRef, string filePath)
        {
            var reader = new StreamReader(filePath);

            byte[] file = Encoding.Unicode.GetBytes(reader.ReadToEnd());

            var f = new TblFiles
            {
                PageRef     = pageRef,
                File        = file,
                Name        = node.Attributes["href"].Value,
                IsDirectory = false,
            };

            ServerModel.DB.Insert(f);

            return(f);
        }
예제 #11
0
        public ActionResult AddFiles(DefaultModel model, HttpPostedFileBase[] uploadFile)
        {
            try
            {
                //处理文件上传
                if (uploadFile != null)
                {
                    foreach (HttpPostedFileBase uf in uploadFile)
                    {
                        TblFiles tf = new TblFiles();
                        tf.Description = model.UpFile.Description;

                        //原始文件名称
                        string filename = uf.FileName;
                        if (filename.IndexOf("\\") > -1)
                        {
                            filename = filename.Substring(filename.LastIndexOf("\\") + 1);
                        }
                        tf.Filename = filename;
                        //通过guid产生不重复的文件名
                        tf.Filepath = Guid.NewGuid().ToString();
                        //获取文件类型和文件大小
                        tf.ContentType = uf.ContentType;
                        tf.Size        = uf.ContentLength;
                        //设置保存文件名
                        string saveName = Server.MapPath(
                            WebMvc.MvcApplication.UploadPath +
                            tf.Filepath);
                        //保存文件
                        uf.SaveAs(saveName);
                        //保存信息到数据库
                        TblFilesDAO.Add(tf);
                    }
                }
                model.ActionCode = 200;
            }
            catch (Exception ex)
            {
                model.ActionCode    = 500;
                model.ActionMessage = ex.Message;
            }
            return(View("ToUpFiles", model));
        }
예제 #12
0
        private static int SearchForResources(XmlNode node, int pageRef, string courseTempPath)
        {
            XmlNode resource = XmlUtility.GetNode(node, "//ns:resource[@identifier='" + node.Attributes["identifierref"].Value + "']");
            string  filePath = resource.Attributes["href"].Value;
            int     fileID   = 0;

            foreach (XmlNode childNode in resource.ChildNodes)
            {
                if (XmlUtility.IsFile(childNode))
                {
                    TblFiles file = StoreFile(childNode, pageRef, Path.Combine(courseTempPath, childNode.Attributes["href"].Value));

                    if (filePath == file.Name)
                    {
                        fileID = file.ID;
                    }
                }
            }

            return(fileID);
        }
예제 #13
0
        public void BinaryDataOperationsTest()
        {
            using (var c = new DataObjectCleaner())
            {
                var fileContent = new byte[] { 13, 13, 13, 13 };
                var file = new TblFiles
                               {
                                   File = new Binary(fileContent),
                               };
                c.Insert(file);
                var id1 = file.ID;

                var loadedFile = ServerModel.DB.Load<TblFiles>(id1);
                Assert.AreEqual(loadedFile.File.ToArray(), fileContent);

                loadedFile.File = null;
                ServerModel.DB.Update(loadedFile);

                loadedFile = ServerModel.DB.Load<TblFiles>(id1);
                Assert.IsNull(loadedFile.File);
            }
        }
예제 #14
0
        public void BinaryDataOperationsTest()
        {
            using (var c = new DataObjectCleaner())
            {
                var fileContent = new byte[] { 13, 13, 13, 13 };
                var file        = new TblFiles
                {
                    File = new Binary(fileContent),
                };
                c.Insert(file);
                var id1 = file.ID;

                var loadedFile = ServerModel.DB.Load <TblFiles>(id1);
                Assert.AreEqual(loadedFile.File.ToArray(), fileContent);

                loadedFile.File = null;
                ServerModel.DB.Update(loadedFile);

                loadedFile = ServerModel.DB.Load <TblFiles>(id1);
                Assert.IsNull(loadedFile.File);
            }
        }
예제 #15
0
 public async Task <IEnumerable <DBFile> > GetFiles(Guid backup)
 {
     return(await TblFiles.Where(f => f.Backup == backup).ExecuteAsync().ConfigureAwait(false));
 }
예제 #16
0
 public async Task <DBFile> GetFile(Guid file)
 {
     return(await TblFiles.Where(f => f.Id == file).FirstOrDefault().ExecuteAsync().ConfigureAwait(false));
 }
예제 #17
0
 public static TblFiles QueryById(TblFiles file)
 {
     return(DBHelper.QueryOneRow(file, @"select * from TblFiles where fid=@p0", file.Fid));
 }
예제 #18
0
 public static int Add(TblFiles file)
 {
     return(DBHelper.Update(
                @"insert into TblFiles(filepath,filename,contentType,size,description) values(@p0,@p1,@p2,@p3,@p4)"
                , file.Filepath, file.Filename, file.ContentType, file.Size, file.Description));
 }
예제 #19
0
        public async Task <long> BackupSize(Guid backupId)
        {
            var files = await TblFiles.Where(f => f.Backup == backupId).Select(f => f.Length).ExecuteAsync().ConfigureAwait(false);

            return(files.Sum());
        }