public bool CheckNormalDocuments(RequestObject requestObject, SyncDetails syncDetails)
        {
            ClientContext clientContext = null;
            bool          response      = false;

            try
            {
                if (null != requestObject && null != syncDetails && ValidationHelperFunctions.CheckRequestValidatorToken())
                {
                    string usersMySite = BriefcaseHelperFunction.GetPersonalURL(requestObject);
                    if (!string.IsNullOrEmpty(usersMySite))
                    {
                        using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(usersMySite), requestObject.RefreshToken))
                        {
                            List <string> sourceURL = BriefcaseHelperFunction.CheckSourceURL(clientContext, syncDetails, 1);
                            if (0 == sourceURL.Count)
                            {
                                response = true;
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
            }
            return(response);
        }
示例#2
0
        public string UploadMail(RequestObject requestObject, Client client, ServiceRequest serviceRequest)
        {
            string message = string.Empty;
            string result  = "True";

            if (null != requestObject && null != client && null != serviceRequest && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                if (UploadHelperFunctions.Upload(requestObject, client, serviceRequest, ServiceConstantStrings.MailSoapRequest, serviceRequest.MailId, true, serviceRequest.Subject, serviceRequest.FolderPath[0], true, ref message, string.Empty).Equals(ConstantStrings.UploadFailed))
                {
                    if (!string.IsNullOrEmpty(message))
                    {
                        result = message;
                    }
                    else
                    {
                        result = "False";
                    }
                }
            }
            else
            {
                result = TextConstants.MessageNoInputs;
            }
            return(result);
        }
示例#3
0
        public string PinDocumentForUser(RequestObject requestObject, Client client, DocumentData documentData)
        {
            string status = string.Empty;

            if (null != requestObject && null != client && null != documentData && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                ////Create document object and populate meta-data
                DocumentData userPinnedDocumentData = new DocumentData()
                {
                    DocumentName         = SearchHelperFunctions.EncodeValues(documentData.DocumentName),
                    DocumentVersion      = SearchHelperFunctions.EncodeValues(documentData.DocumentVersion),
                    DocumentClient       = SearchHelperFunctions.EncodeValues(documentData.DocumentClient),
                    DocumentClientId     = SearchHelperFunctions.EncodeValues(documentData.DocumentClientId),
                    DocumentClientUrl    = SearchHelperFunctions.EncodeValues(documentData.DocumentClientUrl),
                    DocumentMatter       = SearchHelperFunctions.EncodeValues(documentData.DocumentMatter),
                    DocumentMatterId     = SearchHelperFunctions.EncodeValues(documentData.DocumentMatterId),
                    DocumentOwner        = SearchHelperFunctions.EncodeValues(documentData.DocumentOwner),
                    DocumentUrl          = SearchHelperFunctions.EncodeValues(documentData.DocumentUrl),
                    DocumentOWAUrl       = SearchHelperFunctions.EncodeValues(documentData.DocumentOWAUrl),
                    DocumentExtension    = SearchHelperFunctions.EncodeValues(documentData.DocumentExtension),
                    DocumentCreatedDate  = SearchHelperFunctions.EncodeValues(documentData.DocumentCreatedDate),
                    DocumentModifiedDate = SearchHelperFunctions.EncodeValues(documentData.DocumentModifiedDate),
                    DocumentCheckoutUser = SearchHelperFunctions.EncodeValues(documentData.DocumentCheckoutUser),
                    DocumentMatterUrl    = SearchHelperFunctions.EncodeValues(documentData.DocumentMatterUrl),
                    DocumentParentUrl    = SearchHelperFunctions.EncodeValues(documentData.DocumentParentUrl),
                    DocumentID           = SearchHelperFunctions.EncodeValues(documentData.DocumentID)
                };
                status = SearchHelperFunctions.PopulateMetadeta(requestObject, client, null, userPinnedDocumentData);
            }
            else
            {
                status = TextConstants.MessageNoInputs;
            }
            return(status);
        }
示例#4
0
        public string PinMatterForUser(RequestObject requestObject, Client client, MatterData matterData)
        {
            string status = string.Empty;

            if (null != requestObject && null != client && null != matterData && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                ////Create matter object and populate meta-data
                MatterData userPinnedMatterData = new MatterData()
                {
                    MatterName                = SearchHelperFunctions.EncodeValues(matterData.MatterName),
                    MatterDescription         = SearchHelperFunctions.EncodeValues(matterData.MatterDescription),
                    MatterCreatedDate         = SearchHelperFunctions.EncodeValues(matterData.MatterCreatedDate),
                    MatterUrl                 = SearchHelperFunctions.EncodeValues(matterData.MatterUrl),
                    MatterPracticeGroup       = SearchHelperFunctions.EncodeValues(matterData.MatterPracticeGroup),
                    MatterAreaOfLaw           = SearchHelperFunctions.EncodeValues(matterData.MatterAreaOfLaw),
                    MatterSubAreaOfLaw        = SearchHelperFunctions.EncodeValues(matterData.MatterSubAreaOfLaw),
                    MatterClientUrl           = SearchHelperFunctions.EncodeValues(matterData.MatterClientUrl),
                    MatterClient              = SearchHelperFunctions.EncodeValues(matterData.MatterClient),
                    MatterClientId            = SearchHelperFunctions.EncodeValues(matterData.MatterClientId),
                    HideUpload                = SearchHelperFunctions.EncodeValues(matterData.HideUpload),
                    MatterID                  = SearchHelperFunctions.EncodeValues(matterData.MatterID),
                    MatterResponsibleAttorney = SearchHelperFunctions.EncodeValues(matterData.MatterResponsibleAttorney),
                    MatterModifiedDate        = SearchHelperFunctions.EncodeValues(matterData.MatterModifiedDate),
                    MatterGuid                = SearchHelperFunctions.EncodeValues(matterData.MatterGuid)
                };
                status = SearchHelperFunctions.PopulateMetadeta(requestObject, client, userPinnedMatterData, null);
            }
            else
            {
                status = TextConstants.MessageNoInputs;
            }
            return(status);
        }
        public string DiscardCheckOutChanges(RequestObject requestObject, MailAttachmentDetails mailAttachmentDetails)
        {
            string result = null;

            try
            {
                if (null != requestObject && null != mailAttachmentDetails && ValidationHelperFunctions.CheckRequestValidatorToken())
                {
                    ///// full URL, relative URL
                    string[] allAttachmentUrl = mailAttachmentDetails.FullUrl.Split(';');

                    foreach (string attachmentUrl in allAttachmentUrl)
                    {
                        if (!string.IsNullOrWhiteSpace(attachmentUrl))
                        {
                            MailAttachmentDetails sendDocumentUrl = new MailAttachmentDetails();
                            sendDocumentUrl.FullUrl = attachmentUrl;
                            result = BriefcaseHelperFunction.DiscardCheckout(requestObject, sendDocumentUrl);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                result = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, ServiceUtility.RemoveEscapeCharacter(exception.Message));
            }
            return(result);
        }
示例#6
0
        public string RemovePinnedDocument(RequestObject requestObject, Client client, DocumentData documentData)
        {
            string status = string.Empty;

            if (null != requestObject && null != client && null != documentData && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                status = SearchHelperFunctions.UnpinItem(requestObject, client, null, documentData);
            }
            else
            {
                status = TextConstants.MessageNoInputs;
            }
            return(status);
        }
        public string GetFileRelativeLocation(RequestObject requestObject, string listId, string[] listItemId, string currentLocation)
        {
            string response  = string.Empty;
            bool   hasFolder = false;

            try
            {
                if (null != requestObject && null != listId && null != listItemId && ValidationHelperFunctions.CheckRequestValidatorToken())
                {
                    ClientContext clientContext = null;
                    using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(currentLocation), requestObject.RefreshToken))
                    {
                        List list = clientContext.Web.Lists.GetById(new Guid(listId));
                        int  iterator = 0, length = listItemId.Length;
                        for (iterator = 0; iterator < length; iterator++)
                        {
                            ListItem listItem = list.GetItemById(listItemId[iterator]);
                            clientContext.Load(listItem, item => item.File.ServerRelativeUrl, item => item.FileSystemObjectType);
                            clientContext.ExecuteQuery();
                            if (listItem.FileSystemObjectType == FileSystemObjectType.File)
                            {
                                response += currentLocation + ConstantStrings.DOLLAR + listItem.File.ServerRelativeUrl;
                                if (iterator < length - 1)
                                {
                                    response += ConstantStrings.Semicolon;
                                }
                            }
                            else
                            {
                                hasFolder = true;
                                break;
                            }
                        }

                        if (hasFolder)
                        {
                            response = ConstantStrings.FALSE;
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                ////Generic Exception
                response = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
            }

            return(response);
        }
        public Stream SaveEmail(RequestObject requestObject, MailAttachmentDetails mailAttachmentDetails)
        {
            Stream result = null;

            try
            {
                if (null != requestObject && null != mailAttachmentDetails && ValidationHelperFunctions.CheckRequestValidatorToken())
                {
                    ///// filename, stream
                    Dictionary <string, Stream> collectionOfAttachments = new Dictionary <string, Stream>();
                    ///// full URL, relative URL
                    string[]      allAttachmentUrl = mailAttachmentDetails.FullUrl.Split(';');
                    ClientContext clientContext;
                    bool          attachmentFlag = mailAttachmentDetails.IsAttachmentCall;
                    if (attachmentFlag)
                    {
                        foreach (string attachmentUrl in allAttachmentUrl)
                        {
                            if (!string.IsNullOrWhiteSpace(attachmentUrl))
                            {
                                // Do not use 'using' to generate client context here since it will dispose the object before other functions get executed
                                clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken);
                                Microsoft.SharePoint.Client.File file       = clientContext.Web.GetFileByServerRelativeUrl(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1]);
                                ClientResult <System.IO.Stream>  fileStream = file.OpenBinaryStream();
                                ///// Load the Stream data for the file
                                clientContext.Load(file);
                                clientContext.ExecuteQuery();

                                ///// In order to allow for multiple files with the same name, we provide a GUID tag to ensure unique keys in the dictionary
                                string uniqueKeyWithDate = attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1].Substring(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1].LastIndexOf(Convert.ToChar(ConstantStrings.BackwardSlash, CultureInfo.InvariantCulture)) + 1) + ConstantStrings.DOLLAR + Guid.NewGuid();
                                collectionOfAttachments.Add(uniqueKeyWithDate, fileStream.Value);
                            }
                        }
                    }

                    result = MailHelperFunctions.GenerateEmail(collectionOfAttachments, allAttachmentUrl, attachmentFlag);
                }
                else
                {
                    result = BriefcaseHelperFunction.ReturnErrorFile(TextConstants.MessageNoInputs);
                }
            }
            catch (Exception exception)
            {
                Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                result = BriefcaseHelperFunction.ReturnErrorFile(string.Concat(ConstantStrings.ServiceResponse, exception.HResult, exception.Message));
            }
            return(result);
        }
示例#9
0
        public string UploadAttachment(RequestObject requestObject, Client client, ServiceRequest serviceRequest)
        {
            string resultFlag = string.Empty;

            if (null != requestObject && null != client && null != serviceRequest && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                ///// check if folder path and attachment length are same
                if (serviceRequest.FolderPath.Count == serviceRequest.Attachments.Count)
                {
                    bool result = true;
                    ///// StringBuilder builder = new StringBuilder();
                    int    attachmentCount = 0;
                    string message         = string.Empty;
                    foreach (AttachmentDetails attachment in serviceRequest.Attachments)
                    {
                        if (UploadHelperFunctions.Upload(requestObject, client, serviceRequest, ServiceConstantStrings.AttachmentSoapRequest, attachment.id, false, attachment.name, serviceRequest.FolderPath[attachmentCount], true, ref message, attachment.originalName).Equals(ConstantStrings.UploadFailed))
                        {
                            result = false;
                            break;
                        }

                        attachmentCount++;
                    }

                    if (result)
                    {
                        resultFlag = "True";
                    }
                    else if (!string.IsNullOrEmpty(message))
                    {
                        resultFlag = message;
                    }
                    else
                    {
                        resultFlag = "False";
                    }
                }
                else
                {
                    resultFlag = "False";
                }
            }
            else
            {
                resultFlag = TextConstants.MessageNoInputs;
            }
            return(resultFlag);
        }
示例#10
0
        public string FindUserPinnedDocument(RequestObject requestObject, Client client)
        {
            string result = string.Empty;

            if (null != requestObject && null != client && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                result = SearchHelperFunctions.ShowPinData(requestObject, client, ServiceConstantStrings.UserPinnedDocumentListName, ServiceConstantStrings.PinnedListColumnDocumentDetails, true);
                // Decode pinned documents
                result = HttpUtility.HtmlDecode(result);
            }
            else
            {
                result = TextConstants.MessageNoInputs;
            }

            return(result);
        }
示例#11
0
        public string FindUserPinnedMatter(RequestObject requestObject, Client client)
        {
            string result = string.Empty;

            if (null != requestObject && null != client && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                result = SearchHelperFunctions.ShowPinData(requestObject, client, ServiceConstantStrings.UserPinnedMatterListName, ServiceConstantStrings.PinnedListColumnMatterDetails, false);
                // Decode pinned documents
                result = HttpUtility.HtmlDecode(result);
            }
            else
            {
                result = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, string.Empty, TextConstants.MessageNoInputs);
            }

            return(result);
        }
示例#12
0
        public string SyncBriefcase(RequestObject requestObject, SyncDetails syncDetails)
        {
            CommonResponse commonResponse = new CommonResponse();

            try
            {
                if (null != requestObject && null != syncDetails && ValidationHelperFunctions.CheckRequestValidatorToken())
                {
                    string        usersMySite   = string.Empty;
                    ClientContext clientContext = null;
                    usersMySite = BriefcaseHelperFunction.GetPersonalURL(requestObject);
                    if (!string.IsNullOrEmpty(usersMySite))
                    {
                        using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(usersMySite), requestObject.RefreshToken))
                        {
                            string        status    = string.Empty;
                            List <string> sourceURL = BriefcaseHelperFunction.CheckSourceURL(clientContext, syncDetails, 1);
                            if (sourceURL.Count != 0)
                            {
                                return(BriefcaseHelperFunction.GetNotSupportedMessage(sourceURL));
                            }

                            GetContextInList(requestObject, syncDetails, ref commonResponse, clientContext, ref status);
                        }
                    }
                    else
                    {
                        commonResponse.ErrorMessage = ServiceConstantStrings.UserMySiteNotPresent;
                    }
                }
                else
                {
                    commonResponse.Status.Add(false);
                    commonResponse.ErrorMessage = TextConstants.InvalidParametersMessage;
                }
            }
            catch (Exception exception)
            {
                commonResponse.Status.Add(false);
                commonResponse.ErrorMessage = ServiceUtility.RemoveEscapeCharacter(exception.Message);
            }

            return(BriefcaseHelperFunction.GetSerializeResponse(commonResponse));
        }
示例#13
0
        public string GetDocumentAssets(RequestObject requestObject, Client client)
        {
            string result = string.Empty;

            if (null != requestObject && null != client && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                try
                {
                    using (ClientContext clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(client.Url), requestObject.RefreshToken))
                    {
                        result = SearchHelperFunctionsUtility.GetDocumentAndClientGUID(client, clientContext);
                    }
                }
                catch (Exception exception)
                {
                    result = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                }
            }
            return(result);
        }
示例#14
0
        public string CheckOutDocument(RequestObject requestObject, MailAttachmentDetails mailAttachmentDetails)
        {
            string returnFlag = ConstantStrings.FALSE;

            if (null != requestObject && null != mailAttachmentDetails && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                string        result = ConstantStrings.FALSE;
                ClientContext clientContext;
                try
                {
                    using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(mailAttachmentDetails.FullUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken))
                    {
                        Microsoft.SharePoint.Client.File file = clientContext.Web.GetFileByServerRelativeUrl(mailAttachmentDetails.FullUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1].TrimEnd(ConstantStrings.Semicolon[0]));
                        clientContext.Load(file);
                        clientContext.ExecuteQuery();
                        if (file.CheckOutType == CheckOutType.None)
                        {
                            file.CheckOut();
                            result = string.Concat(ConstantStrings.TRUE, ConstantStrings.Comma, ConstantStrings.Space, file.Name);
                        }
                        else
                        {
                            result = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ServiceConstantStrings.AlreadyCheckOut);
                        }
                        clientContext.ExecuteQuery();
                        returnFlag = result;
                    }
                }
                catch (Exception exception)
                {
                    Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                    returnFlag = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, ServiceUtility.RemoveEscapeCharacter(exception.Message));
                }
            }
            else
            {
                returnFlag = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, TextConstants.InvalidParametersMessage);
            }
            return(returnFlag);
        }
示例#15
0
        public string GetFolderHierarchy(RequestObject requestObject, MatterData matterData)
        {
            string result = string.Empty;

            if (null != requestObject && null != matterData && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                try
                {
                    if (!string.IsNullOrWhiteSpace(matterData.MatterName) && !string.IsNullOrWhiteSpace(matterData.MatterUrl))
                    {
                        using (ClientContext clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(matterData.MatterUrl), requestObject.RefreshToken))
                        {
                            List list = clientContext.Web.Lists.GetByTitle(matterData.MatterName);
                            clientContext.Load(list.RootFolder);
                            ListItemCollection listItems  = Lists.GetData(clientContext, matterData.MatterName, string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.AllFoldersQuery, matterData.MatterName));
                            List <FolderData>  allFolders = new List <FolderData>();
                            allFolders = SearchHelperFunctions.GetFolderAssignment(list, listItems, allFolders);

                            result = JsonConvert.SerializeObject(allFolders);
                        }
                    }
                    else
                    {
                        result = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, 0, TextConstants.MessageNoInputs);
                    }
                }
                catch (Exception exception)
                {
                    result = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                }
            }
            else
            {
                result = TextConstants.MessageNoInputs;
            }
            return(result);
        }
示例#16
0
        public string FindDocument(RequestObject requestObject, Client client, SearchObject searchObject)
        {
            string result = string.Empty;

            if (null != requestObject && null != client & null != searchObject && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                try
                {
                    // Encode all fields which are coming from js
                    SearchHelperFunctions.EncodeSearchDetails(searchObject.Filters, false);
                    // Encode Search Term
                    searchObject.SearchTerm = (null != searchObject.SearchTerm) ? Encoder.HtmlEncode(searchObject.SearchTerm).Replace(ConstantStrings.ENCODEDDOUBLEQUOTES, ConstantStrings.DoubleQuote) : string.Empty;

                    using (ClientContext clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(client.Url), requestObject.RefreshToken))
                    {
                        KeywordQuery keywordQuery = new KeywordQuery(clientContext);
                        if (string.IsNullOrWhiteSpace(searchObject.SearchTerm))
                        {
                            searchObject.SearchTerm = ConstantStrings.Asterisk;
                        }

                        if (null != searchObject.Filters)
                        {
                            if (1 == searchObject.Filters.FilterByMe)
                            {
                                // Get the current logged in User
                                clientContext.Load(clientContext.Web.CurrentUser);
                                clientContext.ExecuteQuery();
                                string currentLoggedInUser = clientContext.Web.CurrentUser.Title;
                                searchObject.SearchTerm = String.Concat(searchObject.SearchTerm, ConstantStrings.Space, ConstantStrings.OperatorAnd, ConstantStrings.Space, SearchConstants.ManagedPropertyAuthor, ConstantStrings.COLON, currentLoggedInUser);
                            }
                            keywordQuery = SearchHelperFunctions.FilterDocuments(searchObject, keywordQuery);
                        }

                        keywordQuery = SearchHelperFunctions.KeywordQueryMetrics(client, searchObject, keywordQuery, ConstantStrings.DocumentItemFilterCondition, SearchConstants.ManagedPropertyIsDocument, false);

                        //// Create a list of managed properties which are required to be present in search results
                        List <string> managedProperties = new List <string>();
                        managedProperties.Add(SearchConstants.ManagedPropertyFileName);
                        managedProperties.Add(SearchConstants.ManagedPropertyTitle);
                        managedProperties.Add(SearchConstants.ManagedPropertyCreated);
                        managedProperties.Add(SearchConstants.ManagedPropertyUIVersionStringOWSTEXT);
                        managedProperties.Add(SearchConstants.ManagedPropertyServerRelativeUrl);
                        managedProperties.Add(SearchConstants.ManagedPropertyFileExtension);
                        managedProperties.Add(SearchConstants.ManagedPropertyDocumentMatterId);
                        managedProperties.Add(SearchConstants.ManagedPropertyDocumentLastModifiedTime);
                        managedProperties.Add(SearchConstants.ManagedPropertySiteTitle);
                        managedProperties.Add(SearchConstants.ManagedPropertyDocumentClientId);
                        managedProperties.Add(SearchConstants.ManagedPropertyDocumentClientName);
                        managedProperties.Add(SearchConstants.ManagedPropertyDocumentMatterName);
                        managedProperties.Add(SearchConstants.ManagedPropertyDocumentId);
                        managedProperties.Add(SearchConstants.ManagedPropertyCheckOutByUser);
                        managedProperties.Add(SearchConstants.ManagedPropertySiteName);
                        managedProperties.Add(SearchConstants.ManagedPropertySPWebUrl);
                        managedProperties.Add(SearchConstants.ManagedPropertyDocumentVersion);
                        managedProperties.Add(SearchConstants.ManagedPropertyDocumentCheckOutUser);
                        managedProperties.Add(SearchConstants.ManagedPropertySPWebUrl);
                        managedProperties.Add(SearchConstants.ManagedPropertyAuthor);

                        //Filter on Result source to fetch only Matter Center specific results
                        keywordQuery.SourceId = new Guid(SearchConstants.SearchResultSourceID);

                        keywordQuery = SearchHelperFunctions.AssignKeywordQueryValues(keywordQuery, managedProperties);

                        result = SearchHelperFunctions.FillResultData(clientContext, keywordQuery, searchObject, false, managedProperties);
                    }
                }
                catch (Exception exception)
                {
                    result = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                }
            }
            else
            {
                result = TextConstants.MessageNoInputs;
            }
            return(result);
        }
示例#17
0
        public string FindMatter(RequestObject requestObject, Client client, SearchObject searchObject)
        {
            string result = string.Empty;

            if (null != requestObject && null != client & null != searchObject && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                try
                {
                    // Encode all fields which are coming from js
                    SearchHelperFunctions.EncodeSearchDetails(searchObject.Filters, true);
                    // Encode Search Term
                    searchObject.SearchTerm = (null != searchObject.SearchTerm) ? Encoder.HtmlEncode(searchObject.SearchTerm).Replace(ConstantStrings.ENCODEDDOUBLEQUOTES, ConstantStrings.DoubleQuote) : string.Empty;

                    using (ClientContext clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(client.Url), requestObject.RefreshToken))
                    {
                        KeywordQuery keywordQuery = new KeywordQuery(clientContext);
                        if (string.IsNullOrWhiteSpace(searchObject.SearchTerm))
                        {
                            searchObject.SearchTerm = ConstantStrings.Asterisk;
                        }

                        if (null != searchObject.Filters)
                        {
                            if (1 == searchObject.Filters.FilterByMe)
                            {
                                ////Get logged in user alias
                                Users  currentUserDetail = UIUtility.GetLoggedInUserDetails(clientContext);
                                string userTitle         = currentUserDetail.Name;
                                searchObject.SearchTerm = string.Concat(searchObject.SearchTerm, ConstantStrings.Space, ConstantStrings.OperatorAnd, ConstantStrings.Space, ConstantStrings.OpeningBracket, SearchConstants.ManagedPropertyResponsibleAttorney, ConstantStrings.COLON, ConstantStrings.Space, ConstantStrings.DoubleQuote, userTitle, ConstantStrings.DoubleQuote, ConstantStrings.Space, ConstantStrings.OperatorOR, ConstantStrings.Space, SearchConstants.ManagedPropertyTeamMembers, ConstantStrings.COLON, ConstantStrings.Space, ConstantStrings.DoubleQuote, userTitle, ConstantStrings.DoubleQuote, ConstantStrings.Space, ConstantStrings.ClosingBracket);
                            }

                            keywordQuery = SearchHelperFunctions.FilterMatters(searchObject, keywordQuery);
                        }

                        keywordQuery = SearchHelperFunctions.KeywordQueryMetrics(client, searchObject, keywordQuery, ConstantStrings.DocumentLibraryFilterCondition, SearchConstants.ManagedPropertyIsMatter, true);

                        // Create a list of managed properties which are required to be present in search results
                        List <string> managedProperties = new List <string>();
                        managedProperties.Add(SearchConstants.ManagedPropertyTitle);
                        managedProperties.Add(SearchConstants.ManagedPropertyName);
                        managedProperties.Add(SearchConstants.ManagedPropertyDescription);
                        managedProperties.Add(SearchConstants.ManagedPropertySiteName);
                        managedProperties.Add(SearchConstants.ManagedPropertyLastModifiedTime);
                        managedProperties.Add(SearchConstants.ManagedPropertyPracticeGroup);
                        managedProperties.Add(SearchConstants.ManagedPropertyAreaOfLaw);
                        managedProperties.Add(SearchConstants.ManagedPropertySubAreaOfLaw);
                        managedProperties.Add(SearchConstants.ManagedPropertyMatterId);
                        managedProperties.Add(SearchConstants.ManagedPropertyCustomTitle);
                        managedProperties.Add(SearchConstants.ManagedPropertyPath);
                        managedProperties.Add(SearchConstants.ManagedPropertyMatterName);
                        managedProperties.Add(SearchConstants.ManagedPropertyOpenDate);
                        managedProperties.Add(SearchConstants.ManagedPropertyClientName);
                        managedProperties.Add(SearchConstants.ManagedPropertyBlockedUploadUsers);
                        managedProperties.Add(SearchConstants.ManagedPropertyResponsibleAttorney);
                        managedProperties.Add(SearchConstants.ManagedPropertyClientID);
                        managedProperties.Add(SearchConstants.ManagedPropertyMatterGuid);

                        //Filter on Result source to fetch only Matter Center specific results
                        keywordQuery.SourceId = new Guid(SearchConstants.SearchResultSourceID);

                        keywordQuery = SearchHelperFunctions.AssignKeywordQueryValues(keywordQuery, managedProperties);

                        keywordQuery.BypassResultTypes = true;

                        result = SearchHelperFunctions.FillResultData(clientContext, keywordQuery, searchObject, true, managedProperties);
                    }
                }
                catch (Exception exception)
                {
                    result = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                }
            }
            else
            {
                result = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, string.Empty, TextConstants.MessageNoInputs);
            }
            return(result);
        }
示例#18
0
        public string UrlExists(RequestObject requestObject, Client client, string requestedUrl, string requestedPageUrl)
        {
            string result = string.Empty;

            if (null != requestObject && null != client && null != requestedUrl && null != requestedPageUrl && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                try
                {
                    using (ClientContext clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(client.Url), requestObject.RefreshToken))
                    {
                        // Check if the OneNote exists
                        string oneNoteExists = SearchHelperFunctions.PageExists(requestedUrl, clientContext);
                        // Check if the Matter Landing Page exists
                        string matterLandingExists = SearchHelperFunctions.PageExists(requestedPageUrl, clientContext);
                        // Finally return the result of the two operations
                        result = oneNoteExists + ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR + matterLandingExists;
                    }
                }
                catch (Exception exception)
                {
                    // In case of a general exception, return false values for both cases
                    Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                    result = ConstantStrings.FALSE + ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR + ConstantStrings.FALSE;
                }
            }
            else
            {
                result = TextConstants.MessageNoInputs;
            }
            return(result);
        }
示例#19
0
        public string SendToBriefcase(RequestObject requestObject, MailAttachmentDetails mailAttachmentDetails, bool doCheckOut)
        {
            string status = ConstantStrings.FALSE;
            string result = string.Empty;

            try
            {
                if (null != requestObject && null != mailAttachmentDetails && ValidationHelperFunctions.CheckRequestValidatorToken())
                {
                    Dictionary <string, Stream> collectionOfAttachments         = new Dictionary <string, Stream>();
                    Dictionary <string, string> collectionOfOriginalAttachments = new Dictionary <string, string>();
                    string[]      allAttachmentUrl = mailAttachmentDetails.FullUrl.Split(ConstantStrings.Semicolon[0]);
                    ClientContext clientContext    = null;
                    string        usersMySite      = string.Empty;
                    usersMySite = BriefcaseHelperFunction.GetPersonalURL(requestObject);
                    if (!usersMySite.ToUpperInvariant().Contains(ServiceConstantStrings.OneDriveNotSetupUrl.ToUpperInvariant()))
                    {
                        foreach (string attachmentUrl in allAttachmentUrl)
                        {
                            if (!string.IsNullOrWhiteSpace(attachmentUrl))
                            {
                                // Do not use 'using' to generate client context here since it will dispose the object before other functions get executed
                                clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken);
                                Microsoft.SharePoint.Client.File file = clientContext.Web.GetFileByServerRelativeUrl(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1]);
                                ClientResult <System.IO.Stream>  clientResultStream = file.OpenBinaryStream();
                                ///// Load the Stream data for the file
                                clientContext.Load(file);
                                clientContext.ExecuteQuery();
                                Guid uniqueKey = Guid.NewGuid();
                                collectionOfAttachments.Add(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1].Substring(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1].LastIndexOf(Convert.ToChar(ConstantStrings.ForwardSlash, CultureInfo.InvariantCulture)) + 1) + ConstantStrings.DOLLAR + uniqueKey, clientResultStream.Value);
                                collectionOfOriginalAttachments.Add(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1].Substring(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1].LastIndexOf(Convert.ToChar(ConstantStrings.ForwardSlash, CultureInfo.InvariantCulture)) + 1) + ConstantStrings.DOLLAR + uniqueKey, attachmentUrl);
                                MailAttachmentDetails sendDocumentUrl = new MailAttachmentDetails();
                                sendDocumentUrl.FullUrl = attachmentUrl;
                                if (doCheckOut)
                                {
                                    this.CheckOutDocument(requestObject, sendDocumentUrl);
                                }
                            }
                        }
                        status = BriefcaseHelperFunction.UploadtoBriefcase(requestObject, collectionOfAttachments, collectionOfOriginalAttachments, usersMySite, allAttachmentUrl, mailAttachmentDetails.IsOverwrite);
                        //// If error not occurred while sending documents to OneDrive
                        if (!status.Contains(ConstantStrings.Code) && !status.Contains(ConstantStrings.Value))
                        {
                            status = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, 0, status);
                        }
                    }
                    else
                    {
                        status = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, TextConstants.ErrorCodeOneDriveNotConfigured, usersMySite);
                    }
                    result = status;
                }
                else
                {
                    result = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, 0, status);
                }
            }
            catch (Exception exception)
            {
                result = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
            }
            return(result);
        }
示例#20
0
        public string GetVersion(RequestObject requestObject, SyncDetails syncDetails)
        {
            string         response       = string.Empty;
            VersionDetails versionDetails = new VersionDetails();

            try
            {
                if (null != requestObject && null != syncDetails && ValidationHelperFunctions.CheckRequestValidatorToken())
                {
                    versionDetails.Status = false;
                    ClientContext clientContext = null;
                    string        usersMySite   = BriefcaseHelperFunction.GetPersonalURL(requestObject);
                    if (!string.IsNullOrEmpty(usersMySite))
                    {
                        using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(usersMySite), requestObject.RefreshToken))
                        {
                            List <string> sourceURL = BriefcaseHelperFunction.CheckSourceURL(clientContext, syncDetails, 1);

                            if (sourceURL.Count != 0)
                            {
                                return(BriefcaseHelperFunction.GetNotSupportedMessage(sourceURL));
                            }

                            sourceURL = BriefcaseHelperFunction.CheckSourceURL(clientContext, syncDetails, 2);
                            List <string> relativeURLList = BriefcaseHelperFunction.CheckSourceURL(clientContext, syncDetails, 3);
                            versionDetails.RelativeURL = relativeURLList;
                            for (int iterator = 0; iterator < sourceURL.Count; iterator++)
                            {
                                string url         = sourceURL[iterator];
                                string relativeURL = Convert.ToString(url.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1], CultureInfo.InvariantCulture);
                                using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(url.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken))
                                {
                                    Microsoft.SharePoint.Client.File file = clientContext.Web.GetFileByServerRelativeUrl(relativeURL);
                                    string documentLibraryName            = BriefcaseHelperFunction.getLibraryName(clientContext, file);
                                    List   docLib = clientContext.Web.Lists.GetByTitle(documentLibraryName);
                                    clientContext.Load(docLib);
                                    clientContext.ExecuteQuery();
                                    versionDetails.IsMajorVersion.Add(docLib.EnableVersioning);
                                    versionDetails.IsMinorVersion.Add(docLib.EnableMinorVersions);
                                    versionDetails.Status = true;
                                    if (versionDetails.IsMajorVersion[iterator] || versionDetails.IsMinorVersion[iterator])
                                    {
                                        versionDetails.CurrentMajorVersion.Add(Convert.ToString(file.MajorVersion, CultureInfo.InvariantCulture));

                                        if (file.CheckOutType != CheckOutType.None)
                                        {
                                            if (0 == file.MinorVersion)
                                            {
                                                versionDetails.CurrentMinorVersion.Add(Convert.ToString(file.MinorVersion, CultureInfo.InvariantCulture));
                                            }
                                            else
                                            {
                                                int currentMinorVersion = file.MinorVersion - 1;
                                                versionDetails.CurrentMinorVersion.Add(Convert.ToString(currentMinorVersion, CultureInfo.InvariantCulture));
                                            }

                                            clientContext.Load(file.CheckedOutByUser);
                                            clientContext.ExecuteQuery();
                                            User user = clientContext.Web.CurrentUser;
                                            clientContext.Load(user);
                                            clientContext.ExecuteQuery();
                                            if (user.Title == file.CheckedOutByUser.Title)
                                            {
                                                versionDetails.CheckOutStatus.Add(Convert.ToString(file.CheckedOutByUser.Title, CultureInfo.InvariantCulture));
                                            }
                                            else
                                            {
                                                versionDetails.Status       = false;
                                                versionDetails.ErrorMessage = ServiceConstantStrings.AlreadyCheckOut;
                                            }
                                        }
                                        else
                                        {
                                            versionDetails.CurrentMinorVersion.Add(Convert.ToString(file.MinorVersion, CultureInfo.InvariantCulture));
                                            versionDetails.CheckOutStatus.Add(ConstantStrings.Space);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        versionDetails.ErrorMessage = ServiceConstantStrings.UserMySiteNotPresent;
                    }
                }
                else
                {
                    versionDetails.Status       = false;
                    versionDetails.ErrorMessage = TextConstants.MessageNoInputs;
                }
            }
            catch (Exception exception)
            {
                versionDetails.Status        = false;
                versionDetails.ErrorMessage += ServiceUtility.RemoveEscapeCharacter(exception.Message);
                Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
            }

            response = BriefcaseHelperFunction.GetSerializeResponse(versionDetails);
            return(response);
        }
示例#21
0
        public string FetchContextualHelpContent(RequestObject requestObject, Client client, string selectedPage)
        {
            // Basic initialization
            string         result = string.Empty, cacheKey = string.Empty;
            string         selectedSectionIDs = string.Empty;
            IList <string> sectionID          = new List <string>();

            if (null != requestObject && null != client && null != selectedPage && !string.IsNullOrWhiteSpace(selectedPage) && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                List <ContextHelpData> contextHelpCollection = new List <ContextHelpData>();
                try
                {
                    using (ClientContext clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(client.Url), requestObject.RefreshToken))
                    {
                        string[] pageNames = ServiceConstantStrings.MatterCenterPages.Split(';');
                        switch (selectedPage)
                        {
                        case "1": selectedPage = pageNames[1];
                            break;

                        case "2": selectedPage = pageNames[2];
                            break;

                        case "4": selectedPage = pageNames[4];
                            break;

                        default: selectedPage = pageNames[0];
                            break;
                        }

                        cacheKey = string.Concat(selectedPage, ConstantStrings.LINKS_STATIC_STRING);
                        result   = ServiceUtility.GetOrSetCachedValue(cacheKey);
                        if (result.Equals(ConstantStrings.FALSE))
                        {
                            //Object to store all the list items retrieved from SharePoint list
                            ListItemCollection contextualHelpSectionListItems;

                            // Get MatterCenterHelpSection list data
                            contextualHelpSectionListItems = Lists.GetData(clientContext, ServiceConstantStrings.MatterCenterHelpSectionListName, String.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.RetrieveContextualHelpSectionsQuery, selectedPage));

                            //If these exists any content for contextual help flyout
                            if (null != contextualHelpSectionListItems && 0 < contextualHelpSectionListItems.Count)
                            {
                                SearchHelperFunctions.FetchContextualHelpContentUtility(ref result, ref selectedSectionIDs, sectionID, ref contextHelpCollection, clientContext, contextualHelpSectionListItems);
                                if (!ServiceUtility.CheckValueHasErrors(result))
                                {
                                    ServiceUtility.GetOrSetCachedValue(cacheKey, result);
                                }
                            }
                        }
                    }
                }
                catch (Exception exception)
                {
                    result = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                }
            }
            return(result);
        }
示例#22
0
        public string[] CheckedOutDocumentByUser(RequestObject requestObject, MailAttachmentDetails mailAttachmentDetails)
        {
            string[] result = null;
            if (null != requestObject && null != mailAttachmentDetails && ValidationHelperFunctions.CheckRequestValidatorToken())
            {
                string fileException;
                User   checkedOutByUser = null;
                try
                {
                    List <string> checkedOutByUserTitle = new List <string>();
                    if (null != requestObject && null != mailAttachmentDetails)
                    {
                        // full URL, relative URL
                        string[]      allAttachmentUrl = mailAttachmentDetails.FullUrl.Split(ConstantStrings.Semicolon[0]);
                        ClientContext clientContext;
                        foreach (string attachmentUrl in allAttachmentUrl)
                        {
                            try // To continue retrieve the document status for all documents even if one of the document is not present
                            {
                                if (!string.IsNullOrWhiteSpace(attachmentUrl))
                                {
                                    using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken))
                                    {
                                        string         relativePath = attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1];
                                        string[]       folderPath   = relativePath.Split(Convert.ToChar(ConstantStrings.ForwardSlash, CultureInfo.InvariantCulture));
                                        bool           checkExists  = false;
                                        Folder         folder       = clientContext.Web.GetFolderByServerRelativeUrl(relativePath.Substring(0, relativePath.Length - folderPath[folderPath.Length - 1].Length - 1));
                                        FileCollection files        = folder.Files;
                                        clientContext.Load(folder);
                                        clientContext.Load(files);
                                        clientContext.ExecuteQuery();
                                        foreach (Microsoft.SharePoint.Client.File file in files)
                                        {
                                            if (file.Name.ToUpperInvariant() == folderPath[folderPath.Length - 1].ToUpperInvariant())
                                            {
                                                checkExists = true;
                                                break;
                                            }
                                        }

                                        if (checkExists)
                                        {
                                            Microsoft.SharePoint.Client.File file = clientContext.Web.GetFileByServerRelativeUrl(attachmentUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1]);
                                            clientContext.Load(file);
                                            clientContext.ExecuteQuery();
                                            if (file.CheckOutType == CheckOutType.None)
                                            {
                                                checkedOutByUserTitle.Add(string.Empty);
                                            }
                                            else
                                            {
                                                clientContext.ExecuteQuery();
                                                checkedOutByUser = file.CheckedOutByUser;
                                                clientContext.Load(checkedOutByUser);
                                                clientContext.ExecuteQuery();
                                                checkedOutByUserTitle.Add(checkedOutByUser.Title);
                                            }
                                        }
                                        else
                                        {
                                            checkedOutByUserTitle.Add(TextConstants.FileNotAvailableMessage);
                                        }
                                    }
                                }
                            }
                            catch (Exception exception)
                            {
                                fileException = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                                checkedOutByUserTitle.Add(fileException);
                            }
                        }
                    }
                    result = checkedOutByUserTitle.ToArray();
                }
                catch (Exception exception)
                {
                    fileException = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                    result        = new[] { fileException };
                }
            }
            else
            {
                result = new[] { TextConstants.MessageNoInputs };
            }
            return(result);
        }
示例#23
0
        public string SendToMatter(RequestObject requestObject, BriefcaseDetails[] briefcaseDetails, int versionInfo, string comments, bool retainCheckout, bool convenienceCopy)
        {
            CommonResponse checkInResponse = new CommonResponse();
            string         status          = string.Empty;

            try
            {
                if (null != requestObject && null != briefcaseDetails && ValidationHelperFunctions.CheckRequestValidatorToken())
                {
                    ClientContext clientContext = null;
                    string        usersMySite   = BriefcaseHelperFunction.GetPersonalURL(requestObject);
                    if (!string.IsNullOrEmpty(usersMySite))
                    {
                        for (int iterator = 0; iterator < briefcaseDetails.Length; iterator++)
                        {
                            if (!string.IsNullOrWhiteSpace(briefcaseDetails[iterator].DocumentUrl) && !string.IsNullOrWhiteSpace(briefcaseDetails[iterator].DocumentId))
                            {
                                using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(usersMySite), requestObject.RefreshToken))
                                {
                                    ClientResult <System.IO.Stream> data  = Lists.GetStreamFromFile(clientContext, briefcaseDetails[iterator].DocumentUrl);
                                    string             briefcaseItemQuery = string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.SendToMatterQuery, ServiceConstantStrings.OneDriveSiteColumn, briefcaseDetails[iterator].DocumentId);
                                    ListItemCollection listItems          = Lists.GetData(clientContext, ServiceConstantStrings.OneDriveDocumentLibraryTitle, briefcaseItemQuery);
                                    string             sourceUrl          = string.Empty;
                                    foreach (var listItem in listItems)
                                    {
                                        sourceUrl = Convert.ToString(listItem[ServiceConstantStrings.OneDriveSiteColumn], CultureInfo.InvariantCulture);
                                    }
                                    if (!string.IsNullOrWhiteSpace(sourceUrl))
                                    {
                                        status = BriefcaseHelperFunction.UploadtoMatter(requestObject, sourceUrl, data.Value, versionInfo, comments, retainCheckout);
                                        checkInResponse.Status.Add(Convert.ToBoolean(status.Split(ConstantStrings.Comma[0])[0], CultureInfo.InvariantCulture));
                                        if (checkInResponse.Status[iterator])
                                        {
                                            checkInResponse.FileNames.Add(status.Split(ConstantStrings.Comma[0])[1]);
                                            if (!retainCheckout)
                                            {
                                                if (!convenienceCopy)
                                                {
                                                    foreach (var listitem in listItems)
                                                    {
                                                        listitem.DeleteObject();
                                                        clientContext.ExecuteQuery();
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            checkInResponse.ErrorMessage += ConstantStrings.Space + status.Split(ConstantStrings.Comma[0])[1];
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        checkInResponse.ErrorMessage = ServiceConstantStrings.UserMySiteNotPresent;
                    }
                }
                else
                {
                    checkInResponse.Status.Add(false);
                    checkInResponse.ErrorMessage += ConstantStrings.Space + TextConstants.MissingParametersMessage;
                }
            }
            catch (Exception exception)
            {
                Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
                checkInResponse.Status.Add(false);
                checkInResponse.ErrorMessage += ConstantStrings.Space + ServiceUtility.RemoveEscapeCharacter(exception.Message);
            }
            return(BriefcaseHelperFunction.GetSerializeResponse(checkInResponse));
        }
        /// <summary>
        /// Gets the hierarchy of terms along with the specific custom properties of each term from term store.
        /// </summary>
        /// <param name="client">Client object containing Client data</param>
        /// <param name="details">Term Store object containing Term store data</param>
        /// <returns>Returns JSON object to the client</returns>
        ///
        public async Task <IActionResult> GetTaxonomy([FromBody] TermStoreViewModel termStoreViewModel)
        {
            try
            {
                spoAuthorization.AccessToken = HttpContext.Request.Headers["Authorization"];
                #region Error Checking
                ErrorResponse errorResponse = null;
                //if the token is not valid, immediately return no authorization error to the user
                if (errorResponse != null && !errorResponse.IsTokenValid)
                {
                    return(matterCenterServiceFunctions.ServiceResponse(errorResponse, (int)HttpStatusCode.Unauthorized));
                }

                ValidationHelperFunctions.ErrorSettings = errorSettings;
                errorResponse = ValidationHelperFunctions.TaxonomyValidation(termStoreViewModel.Client);
                if (errorResponse != null && !String.IsNullOrWhiteSpace(errorResponse.Message))
                {
                    return(matterCenterServiceFunctions.ServiceResponse(errorResponse, (int)HttpStatusCode.BadRequest));
                }
                #endregion

                string cacheValue = string.Empty;
                string key        = string.Empty;
                var    details    = termStoreViewModel.TermStoreDetails;
                if (details.TermSetName == taxonomySettings.PracticeGroupTermSetName)
                {
                    key = ServiceConstants.CACHE_MATTER_TYPE;
                }
                else if (details.TermSetName == taxonomySettings.ClientTermSetName)
                {
                    key = ServiceConstants.CACHE_CLIENTS;
                }

                ServiceUtility.GeneralSettings = generalSettings;
                //cacheValue = ServiceUtility.GetDataFromAzureRedisCache(key);
                TaxonomyResponseVM taxonomyRepositoryVM = null;
                if (String.IsNullOrEmpty(cacheValue))
                {
                    taxonomyRepositoryVM = await taxonomyRepository.GetTaxonomyHierarchyAsync(termStoreViewModel);

                    if (termStoreViewModel.TermStoreDetails.TermSetName == taxonomySettings.PracticeGroupTermSetName && taxonomyRepositoryVM.TermSets != null)
                    {
                        ServiceUtility.SetDataIntoAzureRedisCache <TermSets>(key, taxonomyRepositoryVM.TermSets);
                        return(matterCenterServiceFunctions.ServiceResponse(taxonomyRepositoryVM.TermSets, (int)HttpStatusCode.OK));
                    }
                    if (termStoreViewModel.TermStoreDetails.TermSetName == taxonomySettings.ClientTermSetName && taxonomyRepositoryVM.ClientTermSets != null)
                    {
                        ServiceUtility.SetDataIntoAzureRedisCache <ClientTermSets>(key, taxonomyRepositoryVM.ClientTermSets);
                        return(matterCenterServiceFunctions.ServiceResponse(taxonomyRepositoryVM.ClientTermSets, (int)HttpStatusCode.OK));
                    }
                }
                else
                {
                    if (termStoreViewModel.TermStoreDetails.TermSetName == taxonomySettings.PracticeGroupTermSetName)
                    {
                        var pgTermSets = JsonConvert.DeserializeObject <TermSets>(cacheValue);
                        if (pgTermSets == null)
                        {
                            errorResponse = new ErrorResponse()
                            {
                                Message     = errorSettings.MessageNoResult,
                                ErrorCode   = "404",
                                Description = "No data is present for the given passed input"
                            };
                            return(matterCenterServiceFunctions.ServiceResponse(errorResponse, (int)HttpStatusCode.NotFound));
                        }
                        return(matterCenterServiceFunctions.ServiceResponse(pgTermSets, (int)HttpStatusCode.OK));
                    }
                    if (termStoreViewModel.TermStoreDetails.TermSetName == taxonomySettings.ClientTermSetName)
                    {
                        var clientTermSets = JsonConvert.DeserializeObject <ClientTermSets>(cacheValue);
                        if (clientTermSets == null)
                        {
                            errorResponse = new ErrorResponse()
                            {
                                Message     = errorSettings.MessageNoResult,
                                ErrorCode   = "404",
                                Description = "No data is present for the given passed input"
                            };
                            return(matterCenterServiceFunctions.ServiceResponse(errorResponse, (int)HttpStatusCode.NotFound));
                        }
                        return(matterCenterServiceFunctions.ServiceResponse(clientTermSets, (int)HttpStatusCode.OK));
                    }
                }
                //If all the above condition fails, return validation error object
                errorResponse = new ErrorResponse()
                {
                    Message     = errorSettings.MessageNoResult,
                    ErrorCode   = "404",
                    Description = "No data is present for the given passed input"
                };
                return(matterCenterServiceFunctions.ServiceResponse(errorResponse, (int)HttpStatusCode.NotFound));
            }
            catch (Exception ex)
            {
                customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                throw;
            }
        }