// PUT: api/BusinessDocuments/5 public IHttpActionResult Put(int id, [FromBody] BusinessDocumentViewModel value) { string validationError = null; if (!ValidateModel(value, out validationError)) { return(BadRequest(validationError)); } using (var clientContext = WebAPIHelper.GetClientContext(this.ControllerContext)) { // Get the documents from the Business Documents library List businessDocsLib = clientContext.Web.GetListByUrl("/BusinessDocs"); ListItem businessDocItem = TryGetListItemById(businessDocsLib, id); // If not found, return the appropriate status code if (businessDocItem == null) { return(NotFound()); } // Update the list item properties MapToListItem(value, businessDocItem); businessDocItem.Update(); clientContext.ExecuteQuery(); return(Ok()); } }
public IEnumerable <Item> GetItems() { using (var clientContext = WebAPIHelper.GetClientContext(ControllerContext)) { if (clientContext != null) { List demoList = clientContext.Web.Lists.GetByTitle("WebAPIDemo"); CamlQuery camlQuery = new CamlQuery(); camlQuery.ViewXml = "<View><Query></Query></View>"; ListItemCollection demoItems = demoList.GetItems(camlQuery); clientContext.Load(demoItems); clientContext.ExecuteQuery(); Item[] items = new Item[demoItems.Count]; int i = 0; foreach (ListItem item in demoItems) { items[i] = new Item() { Id = item.Id, Title = item["Title"].ToString() }; i++; } return(items); } else { return(new Item[0]); } } }
// POST: api/BusinessDocuments public IHttpActionResult Post([FromBody] BusinessDocumentViewModel value) { string validationError = null; if (!ValidateModel(value, out validationError)) { return(BadRequest(validationError)); } using (var clientContext = WebAPIHelper.GetClientContext(this.ControllerContext)) { // Get the documents from the Business Documents library List businessDocsLib = clientContext.Web.GetListByUrl("/BusinessDocs"); // Ensure the root folder is loaded Folder rootFolder = businessDocsLib.EnsureProperty(l => l.RootFolder); ListItem newItem = businessDocsLib.CreateDocument(value.Name, rootFolder, DocumentTemplateType.Word); // Update the new document metadata newItem[DocumentPurposeField] = value.Purpose; newItem[InChargeField] = FieldUserValue.FromUser(value.InCharge); newItem.Update(); // Ensure the needed metadata are loaded clientContext.Load(newItem, item => item.Id, item => item[FileLeafRefField], item => item[InChargeField], item => item[DocumentPurposeField]); newItem.File.CheckIn("", CheckinType.MajorCheckIn); clientContext.ExecuteQuery(); BusinessDocumentViewModel viewModel = ListItemToViewModel(newItem); return(Created($"/api/BusinessDocuments/{viewModel.Id}", viewModel)); } }
// GET: api/BusinessDocuments/5 public IHttpActionResult Get(int id) { using (var clientContext = WebAPIHelper.GetClientContext(this.ControllerContext)) { // Get the documents from the Business Documents library List businessDocsLib = clientContext.Web.GetListByUrl("/BusinessDocs"); ListItem businessDocItem = TryGetListItemById(businessDocsLib, id); if (businessDocItem == null) { return(NotFound()); } // Ensure the needed metadata are loaded clientContext.Load(businessDocItem, item => item.Id, item => item[FileLeafRefField], item => item[InChargeField], item => item[DocumentPurposeField]); clientContext.ExecuteQuery(); // Create a view model object from the list item BusinessDocumentViewModel viewModel = ListItemToViewModel(businessDocItem); return(Ok(viewModel)); } }
public IEnumerable <BusinessDocumentViewModel> MyBusinessDocuments() { using (var clientContext = WebAPIHelper.GetClientContext(this.ControllerContext)) { // Get the documents from the Business Documents library List businessDocsLib = clientContext.Web.GetListByUrl("/BusinessDocs"); var camlQuery = new CamlQuery { ViewXml = $@"<View><Query><Where> <Eq> <FieldRef Name='{InChargeField}' LookupId='TRUE' /> <Value Type = 'Integer'><UserID /></Value> </Eq> </Where></Query></View>" }; ListItemCollection businessDocItems = businessDocsLib.GetItems(camlQuery); clientContext.Load(businessDocItems, items => items.Include( item => item.Id, item => item[FileLeafRefField], item => item[InChargeField], item => item[DocumentPurposeField])); clientContext.ExecuteQuery(); // Create collection of view models from list item collection List <BusinessDocumentViewModel> viewModels = businessDocItems.Select(ListItemToViewModel).ToList(); return(viewModels); } }
// DELETE: api/BusinessDocuments/5 public IHttpActionResult Delete(int id) { using (var clientContext = WebAPIHelper.GetClientContext(this.ControllerContext)) { // Get the document from the Business Documents library List businessDocsLib = clientContext.Web.GetListByUrl("/BusinessDocs"); ListItem businessDocItem = TryGetListItemById(businessDocsLib, id); // If not found, return the appropriate status code if (businessDocItem == null) { return(NotFound()); } // Delete the list item businessDocItem.DeleteObject(); clientContext.ExecuteQuery(); return(Ok()); } }
// GET: api/BusinessDocuments public IEnumerable <BusinessDocumentViewModel> Get() { using (var clientContext = WebAPIHelper.GetClientContext(this.ControllerContext)) { // Get the documents from the Business Documents library List businessDocsLib = clientContext.Web.GetListByUrl("/BusinessDocs"); ListItemCollection businessDocItems = businessDocsLib.GetItems(CamlQuery.CreateAllItemsQuery()); clientContext.Load(businessDocItems, items => items.Include( item => item.Id, item => item[FileLeafRefField], item => item[InChargeField], item => item[DocumentPurposeField])); clientContext.ExecuteQuery(); // Create collection of view models from list item collection List <BusinessDocumentViewModel> viewModels = businessDocItems.Select(ListItemToViewModel).ToList(); return(viewModels); } }