コード例 #1
0
        public int UpdateDataInfoObject(IDataInfo dataInfoObject)
        {
            FolderInfo obj = dataInfoObject as FolderInfo;

            if (String.IsNullOrEmpty(obj.Text) == false && obj.Text.Length > DALConfig.MaxTextFieldSize)
            {
                obj.Text = obj.Text.Substring(0, DALConfig.MaxTextFieldSize);
            }
            if (dataInfoObject == null || obj == null)
            {
                return(0);
            }
            bool     isNew = false;
            FolderDB dbobj = repository.GetFolderDBWithoutFileInfosByPath(obj.Path);

            if (dbobj == null)
            {
                dbobj = new FolderDB();
                isNew = true;
            }
            dbobj.ModifyTime = obj.ModifyTime;
            dbobj.Text       = obj.Text;
            dbobj.Path       = obj.Path;
            dbobj.RTFText    = (String.IsNullOrEmpty(obj.RTFText)) ? null : Encoding.UTF8.GetBytes(obj.RTFText);
            if (isNew)
            {
                return(repository.AddFolderDB(dbobj));
            }
            else
            {
                return(repository.UpdateFolderDB(dbobj));
            }
        }
コード例 #2
0
        /// <summary>
        /// 从文件夹节点所关联的文件集合中删除指定的文件
        /// </summary>
        /// <param name="folderDBPath"></param>
        /// <param name="fileIDs"></param>
        public void DeleteFilesOfFolderDB(String folderDBPath, List <int> fileIDs)
        {
            if (string.IsNullOrEmpty(folderDBPath) || fileIDs == null || fileIDs.Count == 0)
            {
                return;
            }
            using (InfocenterEntities context = new InfocenterEntities(EFConnectionString))
            {
                FolderDB folder = context.FolderDBs.FirstOrDefault(p => p.Path == folderDBPath);
                if (folder == null)
                {
                    return;
                }

                foreach (var file in folder.DiskFiles.ToList())
                {
                    if (fileIDs.IndexOf(file.ID) != -1)
                    {
                        //保证删除FolderAndFile记录
                        folder.DiskFiles.Remove(file);
                        //确保DiskFile删除
                        context.Entry(file).State = EntityState.Deleted;
                    }
                }
                context.SaveChanges();
            }
        }
コード例 #3
0
        /// <summary>
        /// 按照Path提取相应文件夹节点所有的文件信息(是FileInfo对象)
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public ObservableCollection <DBFileInfo> GetFileInfosOfFolderDB(String path)
        {
            if (String.IsNullOrEmpty(path))
            {
                return(null);
            }
            ObservableCollection <DBFileInfo> fileInfos = new ObservableCollection <DBFileInfo>();

            using (InfocenterEntities context = new InfocenterEntities(EFConnectionString))
            {
                var query = from folder in context.FolderDBs
                            where folder.Path == path
                            select folder;
                FolderDB folderObj = query.FirstOrDefault();
                if (folderObj != null)
                {
                    foreach (var file in folderObj.DiskFiles)
                    {
                        fileInfos.Add(new DBFileInfo()
                        {
                            AddTime  = file.AddTime.Value,
                            FilePath = file.FilePath,
                            FileSize = file.FileSize.Value,
                            ID       = file.ID
                        });
                    }
                }
                return(fileInfos);
            }
        }
コード例 #4
0
 /// <summary>
 /// 向数据库中添加一条记录
 /// </summary>
 /// <param name="FolderObj"></param>
 /// <returns></returns>
 public int AddFolderDB(FolderDB FolderObj)
 {
     if (FolderObj == null)
     {
         return 0;
     }
     using (InfocenterEntities context = new InfocenterEntities(DALConfig.ConnectString))
     {
         context.FolderDBs.Add(FolderObj);
         return context.SaveChanges();
     }
 }
コード例 #5
0
 /// <summary>
 /// 向数据库中添加一条记录
 /// </summary>
 /// <param name="FolderObj"></param>
 /// <returns></returns>
 public int AddFolderDB(FolderDB FolderObj)
 {
     if (FolderObj == null)
     {
         return(0);
     }
     using (InfocenterEntities context = new InfocenterEntities(EFConnectionString))
     {
         context.FolderDBs.Add(FolderObj);
         return(context.SaveChanges());
     }
 }
コード例 #6
0
        /// <summary>
        /// 新建一个Folder记录,不包容任何文件
        /// </summary>
        /// <param name="dataInfoObject"></param>
        /// <returns></returns>
        public int Create(IDataInfo dataInfoObject)
        {
            if (dataInfoObject == null || (dataInfoObject as FolderInfo) == null)
            {
                return(0);
            }
            FolderDB dbobj  = FolderHelper.changeToFolderDB(dataInfoObject as FolderInfo);
            int      result = repository.AddFolderDB(dbobj);

            //将数据库生成的ID值传回
            dataInfoObject.ID = dbobj.ID;
            return(0);
        }
コード例 #7
0
        public IDataInfo GetDataInfoObjectByPath(string nodePath)
        {
            FolderDB dbobj = repository.GetFolderDBWithoutFileInfosByPath(nodePath);
            ObservableCollection <DBFileInfo> files = repository.GetFileInfosOfFolderDB(nodePath);

            FolderInfo folderInfo = FolderHelper.changeToFolderInfo(dbobj);

            if (folderInfo != null)
            {
                folderInfo.AttachFiles = files;
            }

            return(folderInfo);
        }
コード例 #8
0
        /// <summary>
        /// 转换为FolderInfo,不理会附属文件集合
        /// </summary>
        /// <param name="dbobj"></param>
        /// <returns></returns>
        public static FolderInfo changeToFolderInfo(FolderDB dbobj)
        {
            if (dbobj == null)
            {
                return(null);
            }
            FolderInfo obj = new FolderInfo()
            {
                Text       = String.IsNullOrEmpty(dbobj.Text) ? "" : dbobj.Text,
                RTFText    = dbobj.RTFText == null ? "" : Encoding.UTF8.GetString(dbobj.RTFText),
                Path       = dbobj.Path,
                ModifyTime = dbobj.ModifyTime.Value,
                ID         = dbobj.ID
            };

            return(obj);
        }
コード例 #9
0
 /// <summary>
 /// 将一个文件加入到文件夹节点的文件集合中
 /// </summary>
 /// <param name="folderDBPath"></param>
 /// <param name="file"></param>
 public int AddFileOfFolderDB(String folderDBPath, DiskFile file)
 {
     if (string.IsNullOrEmpty(folderDBPath) || file == null)
     {
         return(0);
     }
     using (InfocenterEntities context = new InfocenterEntities(EFConnectionString))
     {
         FolderDB folder = context.FolderDBs.FirstOrDefault(p => p.Path == folderDBPath);
         if (folder == null)
         {
             return(0);
         }
         folder.DiskFiles.Add(file);
         return(context.SaveChanges());
     }
 }
コード例 #10
0
 /// <summary>
 /// 更新文件夹节点的信息
 /// </summary>
 /// <param name="folder"></param>
 public int UpdateFolderDB(FolderDB folder)
 {
     if (folder == null)
     {
         return(0);
     }
     using (InfocenterEntities context = new InfocenterEntities(EFConnectionString))
     {
         FolderDB folderToModify = context.FolderDBs.FirstOrDefault(p => p.ID == folder.ID);
         if (folderToModify != null)
         {
             folderToModify.ModifyTime = folder.ModifyTime;
             folderToModify.Text       = folder.Text;
             folderToModify.RTFText    = folder.RTFText;
             return(context.SaveChanges());
         }
     }
     return(0);
 }
コード例 #11
0
 /// <summary>
 /// 将多个文件追加到文件夹节点中
 /// 如果文件夹节点找不到,或者files为空集合,什么也不干,返回
 /// </summary>
 /// <param name="FolderDBPath"></param>
 /// <param name="files"></param>
 public void AddFilesOfFolderDB(String FolderDBPath, List <DiskFile> files)
 {
     if (string.IsNullOrEmpty(FolderDBPath) || files == null || files.Count == 0)
     {
         return;
     }
     using (InfocenterEntities context = new InfocenterEntities(EFConnectionString))
     {
         FolderDB folder = context.FolderDBs.FirstOrDefault(p => p.Path == FolderDBPath);
         if (folder == null)
         {
             return;
         }
         foreach (var file in files)
         {
             folder.DiskFiles.Add(file);
         }
         context.SaveChanges();
     }
 }
コード例 #12
0
        /// <summary>
        /// 转换为FolderDB对象,不理会附属文件集合
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static FolderDB changeToFolderDB(FolderInfo obj)
        {
            if (obj == null)
            {
                return(null);
            }
            //注意数据库中nvarchar最大允许4000个字符
            if (obj.Text != null && obj.Text.Length > DALConfig.MaxTextFieldSize)
            {
                obj.Text = obj.Text.Substring(0, DALConfig.MaxTextFieldSize);
            }

            FolderDB dbObj = new FolderDB()
            {
                ModifyTime = obj.ModifyTime,
                Path       = obj.Path,
                RTFText    = String.IsNullOrEmpty(obj.RTFText) ? null : Encoding.UTF8.GetBytes(obj.RTFText),
                Text       = String.IsNullOrEmpty(obj.Text) ? "" : obj.Text,
                ID         = obj.ID
            };

            return(dbObj);
        }
コード例 #13
0
        /// <summary>
        /// 更新文件夹节点的信息
        /// </summary>
        /// <param name="folder"></param>
        public int UpdateFolderDB(FolderDB folder)
        {
            if (folder == null)
            {
                return 0;
            }
            using (InfocenterEntities context = new InfocenterEntities(DALConfig.ConnectString))
            {
                FolderDB folderToModify = context.FolderDBs.FirstOrDefault(p => p.ID == folder.ID);
                if (folderToModify != null)
                {
                    folderToModify.ModifyTime = folder.ModifyTime;
                    folderToModify.Text = folder.Text;
                    folderToModify.RTFText = folder.RTFText;
                    return context.SaveChanges();

                }
            }
            return 0;
        }