Пример #1
0
        // 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());
            }
        }
Пример #2
0
        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]);
                }
            }
        }
Пример #3
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));
            }
        }
Пример #4
0
        // 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));
            }
        }
Пример #5
0
        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);
            }
        }
Пример #6
0
        // 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());
            }
        }
Пример #7
0
        // 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);
            }
        }