示例#1
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);
        }
示例#2
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);
        }
示例#3
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);
        }
示例#4
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);
        }
示例#5
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);
        }
示例#6
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);
        }
示例#7
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);
        }
示例#8
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);
        }
示例#9
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);
        }
示例#10
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);
        }