コード例 #1
0
        /// <summary>
        /// Gets and sets default content type of the list.
        /// </summary>
        /// <param name="requestObject">RequestObject object</param>
        /// <param name="clientContext">ClientContext object</param>
        /// <param name="url">SourceURL of the OneDrive document</param>
        /// <param name="contentTypeId">Content Type Id</param>
        /// <param name="operationType">Operation type specifies either get or set Content type operation</param>
        /// <param name="documentLibraryName">Name of the document library</param>
        /// <returns>Returns Content Type Id</returns>
        internal static string GetContentTypeList(RequestObject requestObject, ClientContext clientContext, string url, string contentTypeId, int operationType, string documentLibraryName)
        {
            try
            {
                using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(url.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken))
                {
                    List docLib = clientContext.Web.Lists.GetByTitle(documentLibraryName);
                    clientContext.Load(docLib);
                    clientContext.ExecuteQuery();
                    Microsoft.SharePoint.Client.Folder folder = docLib.RootFolder;
                    IList <ContentTypeId> list = new List <ContentTypeId>();
                    clientContext.Load(folder, item => item.ContentTypeOrder, item => item.UniqueContentTypeOrder);
                    clientContext.ExecuteQuery();
                    list = folder.ContentTypeOrder;
                    ServiceConstantStrings.OperationTypes type = (ServiceConstantStrings.OperationTypes)operationType;
                    switch (type)
                    {
                    case ServiceConstantStrings.OperationTypes.Update:
                        contentTypeId = list[0].StringValue;
                        break;

                    case ServiceConstantStrings.OperationTypes.Checkout:
                        int iterator = 0, index = 0;
                        for (iterator = 0; iterator < list.Count; iterator++)
                        {
                            if (list[iterator].StringValue == contentTypeId)
                            {
                                index = iterator;
                                break;
                            }
                        }
                        ContentTypeId currentContentTypeID = list[index];
                        list.RemoveAt(index);
                        list.Insert(0, currentContentTypeID);
                        folder.UniqueContentTypeOrder = list;
                        folder.Update();
                        clientContext.ExecuteQuery();
                        break;
                    }
                }
            }
            catch (Exception exception)
            {
                Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
            }
            return(contentTypeId);
        }
コード例 #2
0
        /// <summary>
        /// Updates the content type of the list item and returns the updated content type based on briefcase operation.
        /// </summary>
        /// <param name="requestObject">Request object</param>
        /// <param name="clientContext">ClientContext object</param>
        /// <param name="documentName">Document Name</param>
        /// <param name="url">URL parameter</param>
        /// <param name="operationType">Specifies the type of operation</param>
        /// <param name="contentTypeId">String form of Content type ID</param>
        /// <param name="documentLibraryName">Name of the document library</param>
        /// <returns>List item Content Type Id</returns>
        internal static string ContentTypeByName(RequestObject requestObject, ClientContext clientContext, string documentName, string url, int operationType, string contentTypeId, string documentLibraryName)
        {
            string response = string.Empty;

            try
            {
                using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(url.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken))
                {
                    string             itemQuery = string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.GetItemByNameQuery, documentName);
                    ListItemCollection listItems = Lists.GetData(clientContext, documentLibraryName, itemQuery);
                    ServiceConstantStrings.OperationTypes type = (ServiceConstantStrings.OperationTypes)operationType;
                    switch (type)
                    {
                    case ServiceConstantStrings.OperationTypes.Update:
                        foreach (var listitem in listItems)
                        {
                            response = Convert.ToString(listitem[ConstantStrings.OneDriveContentTypeProperty], CultureInfo.InvariantCulture);
                        }
                        break;

                    case ServiceConstantStrings.OperationTypes.Checkout:
                        foreach (var listitem in listItems)
                        {
                            listitem[ConstantStrings.OneDriveContentTypeProperty] = contentTypeId;
                            listitem.Update();
                            clientContext.ExecuteQuery();
                            response = ConstantStrings.TRUE;
                        }
                        break;

                    default:
                        response = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, TextConstants.InvalidParametersMessage);
                        break;
                    }
                }
            }
            catch (Exception exception)
            {
                Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                response = string.Concat(CultureInfo.InvariantCulture, ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, ServiceUtility.RemoveEscapeCharacter(exception.Message));
            }
            return(response);
        }
コード例 #3
0
        /// <summary>
        /// Helper function to perform Check Out, Detach, and Update document functionality.
        /// </summary>
        /// <param name="requestObject">The Web request object.</param>
        /// <param name="syncDetails">SyncDetails object</param>
        /// <param name="commonResponse">Holds response for briefcase detach operation</param>
        /// <param name="clientContext">Client context object for connection between SP & client</param>
        /// <param name="status">Sets status for send to briefcase operation</param>
        private void GetContextInList(RequestObject requestObject, SyncDetails syncDetails, ref CommonResponse commonResponse, ClientContext clientContext, ref string status)
        {
            List list = clientContext.Web.Lists.GetById(new Guid(syncDetails.ListId));

            foreach (int itemid in syncDetails.ItemId)
            {
                ListItemCollection    listItems                     = BriefcaseHelperFunction.GetListItemCollection(clientContext, itemid);
                MailAttachmentDetails mailattachmentDetails         = new MailAttachmentDetails();
                ServiceConstantStrings.OperationTypes operationType = (ServiceConstantStrings.OperationTypes)syncDetails.Operation;
                if (operationType == ServiceConstantStrings.OperationTypes.Detach)
                {
                    commonResponse = BriefcaseHelperFunction.DetachOperation(commonResponse, clientContext, list, listItems);
                }
                else
                {
                    foreach (var listItem in listItems)
                    {
                        mailattachmentDetails.FullUrl     = Convert.ToString(listItem[ServiceConstantStrings.OneDriveSiteColumn], CultureInfo.InvariantCulture);
                        mailattachmentDetails.IsOverwrite = 1;
                    }

                    switch (operationType)
                    {
                    case ServiceConstantStrings.OperationTypes.Update:
                        status         = this.SendToBriefcase(requestObject, mailattachmentDetails, false);
                        commonResponse = BriefcaseHelperFunction.UpdateOperationStatus(commonResponse, status);
                        break;

                    case ServiceConstantStrings.OperationTypes.Checkout:
                        status         = this.CheckOutDocument(requestObject, mailattachmentDetails);
                        commonResponse = BriefcaseHelperFunction.CheckoutOperationStatus(commonResponse, status);
                        commonResponse.Status.Add(Convert.ToBoolean(status.Split(',')[0], CultureInfo.InvariantCulture));
                        break;
                    }
                }
            }
        }