public object Resolve(object source, Dictionary<String, IResolver> resolvers = null, Boolean recursive = false) { var result = new List<Model.Folder>(); var folders = source.GetPublicInstancePropertyValue("Folders"); if (null == folders) { folders = source.GetPublicInstancePropertyValue("Folder1"); } resolvers = new Dictionary<string, IResolver>(); resolvers.Add($"{typeof(Model.Folder).FullName}.Folders", new FoldersFromSchemaToModelTypeResolver()); resolvers.Add($"{typeof(Model.Folder).FullName}.Security", new SecurityFromSchemaToModelTypeResolver()); if (null != folders) { foreach (var f in ((IEnumerable)folders)) { var targetItem = new Model.Folder(); PnPObjectsMapper.MapProperties(f, targetItem, resolvers, recursive); result.Add(targetItem); } } return (result); }
/// <summary> /// 新建文件夹 /// </summary> /// <param name="FolderName"></param> /// <returns></returns> public ActionResult AddFolder(string FolderName, string FatherFolderID) { Model.Folder folder = new Model.Folder(); if (FatherFolderID != null) { folder = new Model.Folder { FounderID = Convert.ToInt32(Request.Cookies["MyCook"]["UserID"]), Folder_Name = FolderName, FatherFolderID = Convert.ToInt32(FatherFolderID), DeleteState = 0, EstablishTime = DateTime.Now }; } else { folder = new Model.Folder { FounderID = Convert.ToInt32(Request.Cookies["MyCook"]["UserID"]), Folder_Name = FolderName, FatherFolderID = 0, DeleteState = 0, EstablishTime = DateTime.Now }; } int uid = Convert.ToInt32(Request.Cookies["MyCook"]["UserID"]); int jg = 0; if (Home.YanZhenFolderByName(FolderName, Convert.ToInt32(FatherFolderID), uid) == null) { jg = Home.InsertFolder(folder); } return(Json(jg.ToString(), JsonRequestBehavior.AllowGet)); }
public object Resolve(object source, Dictionary <String, IResolver> resolvers = null, Boolean recursive = false) { var result = new List <Model.Folder>(); var folders = source.GetPublicInstancePropertyValue("Folders"); if (null == folders) { folders = source.GetPublicInstancePropertyValue("Folder1"); } resolvers = new Dictionary <string, IResolver>(); resolvers.Add($"{typeof(Model.Folder).FullName}.Folders", new FoldersFromSchemaToModelTypeResolver()); resolvers.Add($"{typeof(Model.Folder).FullName}.Security", new SecurityFromSchemaToModelTypeResolver()); // DefaultColumnValues var defaultColumnValueTypeName = $"{PnPSerializationScope.Current?.BaseSchemaNamespace}.StringDictionaryItem, {PnPSerializationScope.Current?.BaseSchemaAssemblyName}"; var defaultColumnValueType = Type.GetType(defaultColumnValueTypeName, true); var defaultColumnValueKeySelector = CreateSelectorLambda(defaultColumnValueType, "Key"); var defaultColumnValueValueSelector = CreateSelectorLambda(defaultColumnValueType, "Value"); resolvers.Add($"{typeof(Model.Folder).FullName}.DefaultColumnValues", new FromArrayToDictionaryValueResolver <string, string>(defaultColumnValueType, defaultColumnValueKeySelector, defaultColumnValueValueSelector)); if (null != folders) { foreach (var f in ((IEnumerable)folders)) { var targetItem = new Model.Folder(); PnPObjectsMapper.MapProperties(f, targetItem, resolvers, recursive); result.Add(targetItem); } } return(result); }
/// <summary> /// 新增文件夹 /// </summary> /// <param name="folder"></param> /// <returns></returns> public int InsertFolder(Model.Folder folder) { using (var db = new Model.ZKJSkyDriveEntities()) { db.Entry <Model.Folder>(folder).State = System.Data.Entity.EntityState.Added; return(db.SaveChanges()); } }
/// <summary> /// 查询子文件 /// </summary> /// <param name="FolderName"></param> /// <returns></returns> public ActionResult OpenFolder3(string FolderName) { Model.Folder Folder = Home.GetFolderByID(Convert.ToInt32(FolderName), Convert.ToInt32(Request.Cookies["MyCook"]["UserID"])); var list = Home.GetShareDataByID(Folder.Folder_ID); var list1 = list.Select(x => new { x.Store_data_ID, x.Real_FileName, x.File_Size, EstablishTime = x.EstablishTime.ToString("yyyy-MM-dd"), x.icon }); return(Json(list1, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 查询子文件夹 /// </summary> /// <param name="FolderName"></param> /// <returns></returns> public ActionResult OpenFolder2(string FolderName) { Model.Folder Folder = Home.GetFolderByID(Convert.ToInt32(FolderName), Convert.ToInt32(Request.Cookies["MyCook"]["UserID"])); var list = Home.GetFolderByID(Folder.Folder_ID); var list1 = list.Select(x => new { x.Folder_ID, x.Folder_Name, EstablishTime = x.EstablishTime.ToString("yyyy-MM-dd") }); return(Json(list1, JsonRequestBehavior.AllowGet)); }
public static string GetFolder(Model.Folder fd) { string rootFolder = ""; if (fd == Model.Folder.代码生成器) { rootFolder = "CodeMaker"; } return(rootFolder); }
private void ProcessFolderRow(Web web, ListItem listItem, List siteList, ListInstance listInstance, Model.Configuration.Lists.Lists.ExtractQueryConfiguration queryConfig, ProvisioningTemplate template, PnPMonitoredScope scope) { listItem.EnsureProperties(it => it.ParentList.RootFolder.ServerRelativeUrl); string serverRelativeListUrl = listItem.ParentList.RootFolder.ServerRelativeUrl; string folderPath = listItem.FieldValuesAsText["FileRef"].Substring(serverRelativeListUrl.Length).TrimStart(new char[] { '/' }); if (!string.IsNullOrWhiteSpace(folderPath)) { //listItem.EnsureProperties(it => it.Folder.UniqueId); string[] folderSegments = folderPath.Split('/'); Model.Folder pnpFolder = null; for (int i = 0; i < folderSegments.Length; i++) { if (i == 0) { pnpFolder = listInstance.Folders.FirstOrDefault(f => f.Name.Equals(folderSegments[i], StringComparison.CurrentCultureIgnoreCase)); if (pnpFolder == null) { string pathToCurrentFolder = string.Format("{0}/{1}", serverRelativeListUrl, string.Join("/", folderSegments.Take(i + 1))); pnpFolder = ExtractFolderSettings(web, siteList, pathToCurrentFolder, scope, queryConfig); listInstance.Folders.Add(pnpFolder); } } else { var childFolder = pnpFolder.Folders.FirstOrDefault(f => f.Name.Equals(folderSegments[i], StringComparison.CurrentCultureIgnoreCase)); if (childFolder == null) { string pathToCurrentFolder = string.Format("{0}/{1}", serverRelativeListUrl, string.Join("/", folderSegments.Take(i + 1))); childFolder = ExtractFolderSettings(web, siteList, pathToCurrentFolder, scope, queryConfig); pnpFolder.Folders.Add(childFolder); } pnpFolder = childFolder; } } } }
public static Model.Folder FromSchemaToTemplateFolderV201612(this V201612.Folder folder) { Model.Folder result = new Model.Folder(folder.Name, null, folder.Security.FromSchemaToTemplateObjectSecurityV201612()); if (folder.Folder1 != null && folder.Folder1.Length > 0) { result.Folders.AddRange(from child in folder.Folder1 select child.FromSchemaToTemplateFolderV201612()); } return (result); }
public ActionResult Index(FormCollection form) { List <string> paths = new List <string>(); if (Request.Files.Count == 0) { //Directory.CreateDirectory(""); //Request.Files.Count 文件数为0上传不成功 return(View()); } //文件大小不为0 HttpFileCollectionBase files = Request.Files; //取得目标文件夹的路径 string target = Server.MapPath("~/Upload/" + Request.Cookies["MyCook"]["UserID"] + "/"); int cg = 0; int sb = -1; int x = 0; for (int i = 0; i < files.Count; i++) { if (files[i].ContentLength == 0) { //文件大小(以字节为单位)为0时,做一些操作 //失败文件数,失败+1 sb = sb + 1; //return Content("<script>alert('文件大小为0,上传失败')</script>"); } else { string filename = files[i].FileName;//取得文件名字 //判断上传文件是否包含文件夹,含/就是包含文件夹路径的 if (filename.Contains("/")) { //根据/分割,以便将文件名与文件夹路径分开 string[] b2 = filename.Split('/'); //获得文件名 string wenjian = b2[b2.Length - 1]; //将数组转为泛型集合操作 List <string> newb2 = new List <string>(b2); //排除集合最后一个元素,也就是文件名,得到文件夹路径 newb2.Remove(newb2.Last <string>()); //定义一个文件夹路径变量 string lujin = null; //遍历去除文件名的文件路径集合 foreach (var item in newb2) { //拼接文件路径 lujin += item + "\\"; if (x > 0) { Model.Folder folder = new Model.Folder { FounderID = Convert.ToInt32(Request.Cookies["MyCook"]["UserID"]), Folder_Name = item, FatherFolderID = Home.GetNewFolderId(Convert.ToInt32(Request.Cookies["MyCook"]["UserID"])), DeleteState = 0, EstablishTime = DateTime.Now }; if (Home.GetFolderByName(item, Convert.ToInt32(Request.Cookies["MyCook"]["UserID"])) == null) { Home.InsertFolder(folder); x = x + 1; } } else { Model.Folder folder = new Model.Folder { FounderID = Convert.ToInt32(Request.Cookies["MyCook"]["UserID"]), Folder_Name = item, FatherFolderID = 0, DeleteState = 0, EstablishTime = DateTime.Now }; if (Home.GetFolderByName(item, Convert.ToInt32(Request.Cookies["MyCook"]["UserID"])) == null) { Home.InsertFolder(folder); x = x + 1; } } //E:\C#作业\Baidu-pan\Baidu.Web\Upload\文件夹上传测试文档\测试2\5c70e0a0-90a0-4d95-b7c9-c95284f41ee2.txt } //创建文件夹路径 Directory.CreateDirectory(target + lujin); string newfilename = filename; //使用GUID 全球唯一标识符给文件重名称:GUID + 后缀名 newfilename = Guid.NewGuid() + filename.Substring(filename.LastIndexOf(".")); //获取存储的目标地址,也就是文件夹位置 string path = target + lujin + newfilename; //保存文件 files[i].SaveAs(path); //成功上传文件数,成功+1 cg = cg + 1; paths.Add(path); //将文件信息保存到数据库 //覆盖重复文件 Model.Store_data oldStore_data = Home.GetFile(wenjian, Convert.ToInt32(Request.Cookies["MyCook"]["UserID"])); if (oldStore_data != null) { System.IO.File.Delete(oldStore_data.DataRoute); Home.DeleteOldFile(oldStore_data.Store_data_ID); } string[] icon = wenjian.Split('.'); string icons = Server.MapPath("~/Icon/" + icon[icon.Length - 1].ToUpper() + ".png"); Model.Store_data data = null; if (System.IO.File.Exists(icons)) { data = new Model.Store_data { User_ID = Convert.ToInt32(Request.Cookies["MyCook"]["UserID"]), DataRoute = path, Real_FileName = wenjian, File_Size = Home.GetFileSize(files[i].ContentLength), Folder_ID = Home.GetNewFolderId(Convert.ToInt32(Request.Cookies["MyCook"]["UserID"])), EstablishTime = DateTime.Now, DeleteState = 0, SuffixName = filename.Substring(filename.LastIndexOf(".")), icon = "/Icon/" + icon[icon.Length - 1].ToUpper() + ".png" }; } else { data = new Model.Store_data { User_ID = Convert.ToInt32(Request.Cookies["MyCook"]["UserID"]), DataRoute = path, Real_FileName = wenjian, File_Size = Home.GetFileSize(files[i].ContentLength), Folder_ID = Home.GetNewFolderId(Convert.ToInt32(Request.Cookies["MyCook"]["UserID"])), EstablishTime = DateTime.Now, DeleteState = 0, SuffixName = filename.Substring(filename.LastIndexOf(".")), icon = "/Icon/weizhi.png" }; } Home.Insert(data); } else { string newfilename = filename; //使用GUID 全球唯一标识符给文件重名称:GUID + 后缀名 newfilename = Guid.NewGuid() + filename.Substring(filename.LastIndexOf(".")); //获取存储的目标地址,也就是文件夹位置 string path = target + newfilename; files[i].SaveAs(path); cg = cg + 1; paths.Add(path); //将文件信息保存到数据库 //覆盖重复文件 Model.Store_data oldStore_data = Home.GetFile(filename, Convert.ToInt32(Request.Cookies["MyCook"]["UserID"])); if (oldStore_data != null) { System.IO.File.Delete(oldStore_data.DataRoute); Home.DeleteOldFile(oldStore_data.Store_data_ID); } string[] icon = filename.Split('.'); Model.Store_data data = null; if (System.IO.File.Exists(Server.MapPath("~/Icon/" + icon[icon.Length - 1].ToUpper() + ".png"))) { data = new Model.Store_data { User_ID = Convert.ToInt32(Request.Cookies["MyCook"]["UserID"]), DataRoute = path, Real_FileName = filename, File_Size = Home.GetFileSize(files[i].ContentLength), Folder_ID = 0, EstablishTime = DateTime.Now, DeleteState = 0, SuffixName = filename.Substring(filename.LastIndexOf(".")), icon = "/Icon/" + icon[icon.Length - 1].ToUpper() + ".png" }; } else { data = new Model.Store_data { User_ID = Convert.ToInt32(Request.Cookies["MyCook"]["UserID"]), DataRoute = path, Real_FileName = filename, File_Size = Home.GetFileSize(files[i].ContentLength), Folder_ID = 0, EstablishTime = DateTime.Now, DeleteState = 0, SuffixName = filename.Substring(filename.LastIndexOf(".")), icon = "/Icon/weizhi.png" }; } Home.Insert(data); } } } return(RedirectToAction("Index")); //return Content(@"<script> alert('成功" + cg + "个,失败" + sb + "个'); window.location.href = '/Home/Index'; </script>"); }
public Model.Folder ExtractFolderSettings(Web web, List siteList, string serverRelativePathToFolder, PnPMonitoredScope scope, Model.Configuration.Lists.Lists.ExtractQueryConfiguration queryConfig) { Model.Folder pnpFolder = null; try { Microsoft.SharePoint.Client.Folder spFolder = web.GetFolderByServerRelativeUrl(serverRelativePathToFolder); web.Context.Load(spFolder, f => f.Name, f => f.ServerRelativeUrl, f => f.Properties, f => f.ListItemAllFields, f => f.ListItemAllFields.RoleAssignments, f => f.ListItemAllFields.RoleAssignments.Include(r => r.Member, r => r.RoleDefinitionBindings), f => f.ListItemAllFields.HasUniqueRoleAssignments, f => f.ListItemAllFields.ParentList, f => f.ListItemAllFields.ContentType.StringId); web.Context.Load(web, w => w.AssociatedOwnerGroup, w => w.AssociatedMemberGroup, w => w.AssociatedVisitorGroup, w => w.Title, w => w.Url, w => w.RoleDefinitions.Include(r => r.RoleTypeKind, r => r.Name), w => w.ContentTypes.Include(c => c.Id, c => c.Name, c => c.StringId)); web.Context.ExecuteQueryRetry(); pnpFolder = new Model.Folder(spFolder.Name); //export PnPFolder Properties if (spFolder.Properties.FieldValues.Any()) { foreach (var propKey in spFolder.Properties.FieldValues.Keys.Where(k => !k.StartsWith("vti_") && !k.StartsWith("docset_"))) { pnpFolder.PropertyBagEntries.Add(new PropertyBagEntry() { Key = propKey, Value = spFolder.Properties.FieldValues[propKey].ToString() }); } } //export PnPFolder FieldValues if (spFolder.ListItemAllFields.FieldValues.Any()) { var list = spFolder.ListItemAllFields.ParentList; var fields = list.Fields; web.Context.Load(fields, fs => fs.IncludeWithDefaultProperties(f => f.TypeAsString, f => f.InternalName, f => f.Title)); web.Context.ExecuteQueryRetry(); var fieldValues = spFolder.ListItemAllFields.FieldValues; var fieldValuesAsText = spFolder.ListItemAllFields.EnsureProperty(li => li.FieldValuesAsText).FieldValues; #region //**** get correct Content Type string ctId = string.Empty; foreach (var ct in web.ContentTypes.OrderByDescending(c => c.StringId.Length)) { if (spFolder.ListItemAllFields.ContentType.StringId.StartsWith(ct.StringId)) { pnpFolder.ContentTypeID = ct.StringId; break; } } #endregion //**** get correct Content Type var filteredFieldValues = fieldValues.ToList(); if (queryConfig != null && queryConfig.ViewFields != null && queryConfig.ViewFields.Count > 0) { filteredFieldValues = fieldValues.Where(f => queryConfig.ViewFields.Contains(f.Key)).ToList(); } foreach (var fieldValue in filteredFieldValues) { if (fieldValue.Value != null && !string.IsNullOrEmpty(fieldValue.Value.ToString())) { var field = siteList.Fields.FirstOrDefault(fs => fs.InternalName == fieldValue.Key); string value = string.Empty; //ignore read only fields if (!field.ReadOnlyField || WriteableReadOnlyField.Contains(field.InternalName.ToLower())) { value = TokenizeValue(web, field.TypeAsString, fieldValue, fieldValuesAsText[field.InternalName]); } if (fieldValue.Key.Equals("ContentTypeId", StringComparison.CurrentCultureIgnoreCase)) { value = null; //ignore here since already in dataRow } if (fieldValue.Key.Equals("HTML_x0020_File_x0020_Type", StringComparison.CurrentCultureIgnoreCase) && fieldValuesAsText["HTML_x0020_File_x0020_Type"] == "OneNote.Notebook") { pnpFolder.Properties.Add("File_x0020_Type", "OneNote.Notebook"); pnpFolder.Properties.Add(fieldValue.Key, "OneNote.Notebook"); value = null; } // We process real values only if (!string.IsNullOrWhiteSpace(value) && value != "[]") { pnpFolder.Properties.Add(fieldValue.Key, value); } } } } } catch (Exception ex) { scope.LogError(ex, "Extract of Folder {0} failed", serverRelativePathToFolder); } return(pnpFolder); }