public void Main(string[] args) { var siteCollectionUrl = "http://your_site_url"; var featureId = "379c069c-c650-451c-8887-aaaf91bf5df8"; using (var ctx = new ClientContext(siteCollectionUrl)) { var web = ctx.Web; // activate feature ctx.Load(web); ctx.Load(web.Features); ctx.ExecuteQuery(); web.Features.Add(new Guid(featureId), false, FeatureDefinitionScope.Site); ; ctx.ExecuteQuery(); } }
2013/11/13
Active site feature
Group operation: create, grant permission and add member using client object model
public void Main(string[] args) { var siteCollectionUrl = "http://your_site_url"; var member = "domain\\account"; using (var ctx = new ClientContext(siteCollectionUrl)) { var web = ctx.Web; ctx.Load(web, w => w.ServerRelativeUrl); ctx.ExecuteQuery(); // Create a new group named 'Contact' var groupInfo = new GroupCreationInformation(); groupInfo.Title = "Contact"; groupInfo.Description = string.Format(@"Use this group to grant people full control permissions to the SharePoint site: {0}", groupInfo.Title); var group = web.SiteGroups.Add(groupInfo); ctx.Load(group); ctx.ExecuteQuery(); // Set group properties group.OnlyAllowMembersViewMembership = false; group.AllowMembersEditMembership = true; group.Update(); ctx.ExecuteQuery(); // Grant group permission var fullControlPermission = web.RoleDefinitions.GetByName("Full Control"); var roleBinding = new RoleDefinitionBindingCollection(ctx); roleBinding.Add(fullControlPermission); web.RoleAssignments.Add(group, roleBinding); ctx.ExecuteQuery(); // Add new member to group var u = web.EnsureUser(member); ctx.Load(u); ctx.ExecuteQuery(); var userInfo = new UserCreationInformation(); userInfo.Email = u.Email; userInfo.Title = u.Title; userInfo.LoginName = u.LoginName; group.Users.Add(userInfo); ctx.ExecuteQuery(); } }
Get file type icon path
/// <summary> /// An item was added. /// </summary> public override void ItemAdded(SPItemEventProperties properties) { var reportItem = properties.ListItem; // icon var icon = SPUtility.MapToIcon(properties.Web, reportItem["URL Path"].ToString(), "", IconSize.Size16); var iconPath = string.Format("/_layouts/15/images/{0}", icon); // do something }
2013/11/03
Sublime Text hotkeys
編輯 | |
Ctrl + X | 刪除行 |
Ctrl + Enter | 插入下一行 |
Ctrl + Shift + Enter | 插入前一行 |
Ctrl + Shift + ↑ | 往上移動一行 |
Ctrl + Shift + ↓ | 往下移動一行 |
Ctrl + L | 選取整行 |
Ctrl + D | 選取單字(可重複選取相同的) |
Alt + F3 | 選取所有已選取的單字 |
Ctrl + M | 跳到最近的括弧 |
Ctrl + Shift + M | 選取括弧內的所有文字 |
Ctrl + K + K | 刪除游標後方所有文字 |
Ctrl + K + Backspace | 刪除游標前方所有文字 |
Ctrl + ] | 向內縮排(通常使用Tab) |
Ctrl + [ | 向外縮排(通常使用Shift + Tab) |
Ctrl + Shift + D | 複製行 |
Ctrl + J | 與下一行結合為同一行 |
Ctrl + / | 註解與移除註解 |
Ctrl + Shift + / | 區域註解 |
Ctrl + Y | 回覆上一步,沒有上一步時重複上個動作 |
Ctrl + Shift + V | 貼上並符合縮排 |
Ctrl + U | 軟回覆(包括選取動作) |
導覽/Goto Anything | |
Ctrl + P | 快速開啟檔案 |
Ctrl + R | 快速到達符號(function, class, etc...) |
Ctrl + G | 快速到達某一行 |
Ctrl + ; | 快速到達變數 |
通用 | |
Ctrl + Shift + P | 命令提示符(包含所有命令) |
Ctrl + K + B | 切換側欄 |
Ctrl + Shift + Alt + P | 切換狀態列 |
搜尋/取代 | |
Ctrl + F | 搜尋 |
Ctrl + H | 取代 |
Ctrl + Shift + F | 檔案間搜尋 |
分頁 | |
Ctrl + Shift + T | 還原最後關閉的分頁 |
Ctrl + PgUp | 換到上一個分頁 |
Ctrl + PgDown | 換到下一個分頁 |
Ctrl + Tab | 切換上一個分頁 |
Alt + [NUM] | 切換到第[NUM]個分頁 |
切割視窗 | |
Alt + Shift + (2, 3, 4) | 垂直分割(2, 3, 4)個視窗 |
Alt + Shift + 1 | 回覆到預設 |
Alt + Shift + 5 | 水平垂直分割 |
Alt + Shift + (8, 9) | 水平分割(2, 3)個視窗 |
書籤 | |
Ctrl + F2 | 切換書籤 |
F2 | 到下一個書籤 |
Shift + F2 | 到上一個書籤 |
Ctrl + Shift + F2 | 清除書籤 |
文字操作 | |
Ctrl + K + U | 轉換為大寫 |
Ctrl + K + L | 轉換為小寫 |