Exemplo n.º 1
0
        public ActionResult CreateDocumentSet()
        {
            AddDocumentSetViewModel model = new AddDocumentSetViewModel()
            {
                ContentTypeName = CONTENTTYPENAME,
                DocumentLibName = DOCUMENTLIBNAME
            };

            for (int i = 0; i < 5; i++)
            {
                model.FieldNames.Add(String.Format("{0}{1}", FIELDNAME, i + 1));
            }
            return(View("AddDocumentSet", model));
        }
Exemplo n.º 2
0
        public ActionResult CreateDocumentSet([Bind(Include = "DocumentLibName,FieldNames,ContentTypeName")] AddDocumentSetViewModel model)
        {
            var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);

            using (var clientContext = spContext.CreateUserClientContextForSPHost())
            {
                List <Field> fields = new List <Field>();
                foreach (string fieldName in model.FieldNames)
                {
                    Field field = CreateDocumentSetField(clientContext, fieldName);
                    fields.Add(field);
                }

                ContentType         ctTestSow      = CreateDocumentSetContentType(clientContext, model.ContentTypeName, fields);
                DocumentSetTemplate docSetTemplate = DocumentSetTemplate.GetDocumentSetTemplate(clientContext, ctTestSow);
                clientContext.Load(docSetTemplate, d => d.SharedFields, d => d.WelcomePageFields);
                clientContext.ExecuteQuery();

                if (!docSetTemplate.SharedFields.Contains(fields[0]))
                {
                    docSetTemplate.SharedFields.Add(fields[0]);
                    docSetTemplate.Update(true);
                    clientContext.ExecuteQuery();
                }
                if (!docSetTemplate.WelcomePageFields.Contains(fields[0]))
                {
                    docSetTemplate.WelcomePageFields.Add(fields[0]);
                    docSetTemplate.Update(true);
                    clientContext.ExecuteQuery();
                }

                //
                List listTestDoc = GetTestDocDocumentLibrary(clientContext, ctTestSow, model.DocumentLibName);
                clientContext.Load(listTestDoc.RootFolder);
                clientContext.ExecuteQuery();

                ClientResult <string> result = DocumentSet.Create(clientContext, listTestDoc.RootFolder, DOCUMENTSETNAME, ctTestSow.Id);
                clientContext.ExecuteQuery();
            }
            return(RedirectToAction("Index", new { SPHostUrl = SharePointContext.GetSPHostUrl(HttpContext.Request).AbsoluteUri }));
        }