public File SaveFile(File file, Stream fileStream) { if (fileStream == null) { throw new ArgumentNullException("fileStream"); } if (file.ID != null) { var sharePointFile = ProviderInfo.CreateFile((string)file.ID, fileStream); var resultFile = ProviderInfo.ToFile(sharePointFile); if (!sharePointFile.Name.Equals(file.Title)) { var folder = ProviderInfo.GetFolderById(file.FolderID); file.Title = GetAvailableTitle(file.Title, folder, IsExist); var id = ProviderInfo.RenameFile(SharePointDaoSelector.ConvertId(resultFile.ID).ToString(), file.Title); return(GetFile(SharePointDaoSelector.ConvertId(id))); } return(resultFile); } if (file.FolderID != null) { var folder = ProviderInfo.GetFolderById(file.FolderID); file.Title = GetAvailableTitle(file.Title, folder, IsExist); return(ProviderInfo.ToFile(ProviderInfo.CreateFile(folder.ServerRelativeUrl + "/" + file.Title, fileStream))); } return(null); }
public Folder <int> CopyFolder(string folderId, int toFolderId, CancellationToken?cancellationToken) { var moved = CrossDao.PerformCrossDaoFolderCopy( folderId, this, SharePointDaoSelector.GetFileDao(folderId), SharePointDaoSelector.ConvertId, toFolderId, FolderDao, FileDao, r => r, false, cancellationToken); return(moved); }
public object RenameFolder(object folderId, string newTitle) { var oldId = ProviderInfo.MakeId((string)folderId); var newFolderId = oldId; if (ProviderInfo.SpRootFolderId.Equals(folderId)) { //It's root folder SharePointDaoSelector.RenameProvider(ProviderInfo, newTitle); //rename provider customer title } else { newFolderId = (string)ProviderInfo.RenameFolder(folderId, newTitle); } UpdatePathInDB(oldId, newFolderId); return(newFolderId); }
public SharePointFileDao( IServiceProvider serviceProvider, UserManager userManager, TenantManager tenantManager, TenantUtil tenantUtil, DbContextManager <FilesDbContext> dbContextManager, SetupInfo setupInfo, IOptionsMonitor <ILog> monitor, FileUtility fileUtility, CrossDao crossDao, SharePointDaoSelector sharePointDaoSelector, IFileDao <int> fileDao) : base(serviceProvider, userManager, tenantManager, tenantUtil, dbContextManager, setupInfo, monitor, fileUtility) { CrossDao = crossDao; SharePointDaoSelector = sharePointDaoSelector; FileDao = fileDao; }
public SharePointDaoBase(SharePointProviderInfo sharePointInfo, SharePointDaoSelector sharePointDaoSelector) { ProviderInfo = sharePointInfo; SharePointDaoSelector = sharePointDaoSelector; }
public SharePointSecurityDao(SharePointProviderInfo sharePointInfo, SharePointDaoSelector sharePointDaoSelector) : base(sharePointInfo, sharePointDaoSelector) { }
public IEnumerable <Tag> GetNewTags(Guid subject, Folder parentFolder, bool deepSearch) { using (var dbManager = new DbManager(FileConstant.DatabaseId)) { var folderId = SharePointDaoSelector.ConvertId(parentFolder.ID); var fakeFolderId = parentFolder.ID.ToString(); var entryIDs = dbManager.ExecuteList(Query("files_thirdparty_id_mapping") .Select("hash_id") .Where(Exp.Like("id", fakeFolderId, SqlLike.StartWith))) .ConvertAll(x => x[0]); if (!entryIDs.Any()) { return(new List <Tag>()); } var sqlQuery = new SqlQuery("files_tag ft") .Select("ft.name", "ft.flag", "ft.owner", "ftl.entry_id", "ftl.entry_type", "ftl.tag_count", "ft.id") .Distinct() .LeftOuterJoin("files_tag_link ftl", Exp.EqColumns("ft.tenant_id", "ftl.tenant_id") & Exp.EqColumns("ft.id", "ftl.tag_id")) .Where(Exp.Eq("ft.tenant_id", TenantID) & Exp.Eq("ftl.tenant_id", TenantID) & Exp.Eq("ft.flag", (int)TagType.New) & Exp.In("ftl.entry_id", entryIDs)); if (subject != Guid.Empty) { sqlQuery.Where(Exp.Eq("ft.owner", subject)); } var tags = dbManager.ExecuteList(sqlQuery).ConvertAll(r => new Tag { TagName = Convert.ToString(r[0]), TagType = (TagType)r[1], Owner = new Guid(r[2].ToString()), EntryId = MappingID(r[3]), EntryType = (FileEntryType)r[4], Count = Convert.ToInt32(r[5]), Id = Convert.ToInt32(r[6]) }); if (deepSearch) { return(tags); } var folderFileIds = new[] { fakeFolderId } .Concat(ProviderInfo.GetFolderFolders(folderId).Select(x => ProviderInfo.MakeId(x.ServerRelativeUrl))) .Concat(ProviderInfo.GetFolderFiles(folderId).Select(x => ProviderInfo.MakeId(x.ServerRelativeUrl))); return(tags.Where(tag => folderFileIds.Contains(tag.EntryId.ToString()))); } }
public SharePointFolderDao(SharePointProviderInfo sharePointInfo, SharePointDaoSelector sharePointDaoSelector) : base(sharePointInfo, sharePointDaoSelector) { }