Esempio n. 1
0
        public async Task <int> GetMyCounts(SearchRequestVM searchRequestVM)
        {
            try
            {
                searchRequestVM.SearchObject.Filters.FilterByMe = 1;
                var searchObject = searchRequestVM.SearchObject;
                // Encode all fields which are coming from js
                SearchUtility.EncodeSearchDetails(searchObject.Filters, false);
                // Encode Search Term
                searchObject.SearchTerm = (searchObject.SearchTerm != null) ?
                                          WebUtility.HtmlEncode(searchObject.SearchTerm).Replace(ServiceConstants.ENCODED_DOUBLE_QUOTES,
                                                                                                 ServiceConstants.DOUBLE_QUOTE) : string.Empty;

                ClientContext clientContext = null;
                clientContext = spoAuthorization.GetClientContext(searchRequestVM.Client.Url);
                var searchResultsVM = await docRepository.GetDocumentsAsync(searchRequestVM, clientContext);

                return(searchResultsVM.TotalRows);
            }
            catch (Exception ex)
            {
                customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                throw;
            }
        }
        public async Task <IActionResult> Get([FromBody] SearchRequestVM searchRequestVM)
        {
            try
            {
                #region Error Checking
                GenericResponseVM genericResponse = null;
                //Input validation
                if (searchRequestVM == null && searchRequestVM.Client == null && searchRequestVM.SearchObject == null)
                {
                    genericResponse = new GenericResponseVM()
                    {
                        Value   = errorSettings.MessageNoInputs,
                        Code    = HttpStatusCode.BadRequest.ToString(),
                        IsError = true
                    };
                    //If the input validation is failed, send GenericResponseVM which contains the error information
                    return(matterCenterServiceFunctions.ServiceResponse(genericResponse, (int)HttpStatusCode.OK));
                }
                #endregion
                var searchResultsVM = await documentProvision.GetDocumentsAsync(searchRequestVM);

                return(matterCenterServiceFunctions.ServiceResponse(searchResultsVM.DocumentDataList, (int)HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                var errorResponse = customLogger.GenerateErrorResponse(ex);
                return(matterCenterServiceFunctions.ServiceResponse(errorResponse, (int)HttpStatusCode.OK));
            }
        }
Esempio n. 3
0
        public async Task <IActionResult> GetPin([FromBody] SearchRequestVM searchRequestVM)
        {
            try
            {
                #region Error Checking
                //Input validation
                GenericResponseVM genericResponse = null;
                if (searchRequestVM == null)
                {
                    genericResponse = new GenericResponseVM()
                    {
                        Value   = errorSettings.MessageNoInputs,
                        Code    = HttpStatusCode.BadRequest.ToString(),
                        IsError = true
                    };
                    //If the input validation is failed, send GenericResponseVM which contains the error information
                    return(matterCenterServiceFunctions.ServiceResponse(genericResponse, (int)HttpStatusCode.OK));
                }
                #endregion
                ClientContext clientContext = null;
                clientContext = spoAuthorization.GetClientContext(searchRequestVM.Client.Url);
                //Get the documents which are pinned by the user
                var pinResponseVM = await documentProvision.GetPinnedDocumentsAsync(searchRequestVM, clientContext);

                //Return the response with proper http status code
                return(matterCenterServiceFunctions.ServiceResponse(pinResponseVM.DocumentDataList, (int)HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                var errorResponse = customLogger.GenerateErrorResponse(ex);
                return(matterCenterServiceFunctions.ServiceResponse(errorResponse, (int)HttpStatusCode.OK));
            }
        }
Esempio n. 4
0
        public async void Get_Matter_With_SearchTerm()
        {
            var searchRequest = new SearchRequestVM()
            {
                Client = new Client()
                {
                    Id   = "123456",
                    Name = "Microsoft",
                    Url  = "https://msmatter.sharepoint.com/sites/catalog"
                },
                SearchObject = new SearchObject()
                {
                    PageNumber   = 1,
                    ItemsPerPage = 10,
                    SearchTerm   = "M",
                    Filters      = new FilterObject()
                    {
                    },
                    Sort = new SortObject()
                    {
                        ByProperty = "LastModifiedTime",
                        Direction  = 1
                    }
                }
            };

            using (var testClient = testServer.CreateClient().AcceptJson())
            {
                var response = await testClient.PostAsJsonAsync("http://localhost:58775/api/v1/matter/get", searchRequest);

                var result = response.Content.ReadAsJsonAsync <SearchResponseVM>().Result;
                Assert.NotNull(result);
                Assert.NotEmpty(result.SearchResults);
            }
        }
Esempio n. 5
0
        public async Task <int> GetPinnedCounts(SearchRequestVM searchRequestVM)
        {
            try
            {
                var pinResponseVM = await docRepository.GetPinnedRecordsAsync(searchRequestVM);

                return(pinResponseVM.TotalRows);
            }
            catch (Exception ex)
            {
                customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                throw;
            }
        }
Esempio n. 6
0
        /// <summary>
        /// get the documents async
        /// </summary>
        /// <param name="searchRequestVM"></param>
        /// <returns></returns>
        public async Task <SearchResponseVM> GetPinnedDocumentsAsync(SearchRequestVM searchRequestVM, ClientContext clientContext)
        {
            try
            {
                var searchResultsVM = await docRepository.GetPinnedRecordsAsync(searchRequestVM, clientContext);

                return(searchResultsVM);
            }
            catch (Exception exception)
            {
                customLogger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                throw;
            }
        }
Esempio n. 7
0
        /// <summary>
        /// get users
        /// </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> GetUsers([FromBody] SearchRequestVM searchRequestVM)
        {
            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));
                }
                if (searchRequestVM.Client == null)
                {
                    errorResponse = new ErrorResponse()
                    {
                        Message     = errorSettings.MessageNoInputs,
                        ErrorCode   = HttpStatusCode.BadRequest.ToString(),
                        Description = "No input data is passed"
                    };
                    return(matterCenterServiceFunctions.ServiceResponse(errorResponse, (int)HttpStatusCode.BadRequest));
                }
                #endregion
                searchRequestVM.SearchObject.SearchTerm = (!string.IsNullOrWhiteSpace(searchRequestVM.SearchObject.SearchTerm)) ? searchRequestVM.SearchObject.SearchTerm : string.Empty;
                IList <Users> users = await matterRepositoy.GetUsersAsync(searchRequestVM);

                if (users != null && users.Count != 0)
                {
                    return(matterCenterServiceFunctions.ServiceResponse(users, (int)HttpStatusCode.OK));
                }
                else
                {
                    Users noResult = new Users()
                    {
                        Name       = errorSettings.PeoplePickerNoResults,
                        LogOnName  = string.Empty,
                        Email      = string.Empty,
                        EntityType = string.Empty
                    };
                    users.Add(noResult);
                    return(matterCenterServiceFunctions.ServiceResponse(users, (int)HttpStatusCode.OK));
                }
            }
            catch (Exception ex)
            {
                customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                throw;
            }
        }
Esempio n. 8
0
        public async Task <IActionResult> GetUsers([FromBody] SearchRequestVM searchRequestVM)
        {
            try
            {
                #region Error Checking
                GenericResponseVM genericResponse = null;
                if (searchRequestVM.Client == null && string.IsNullOrWhiteSpace(searchRequestVM.Client.Url))
                {
                    genericResponse = new GenericResponseVM()
                    {
                        Value   = errorSettings.MessageNoInputs,
                        Code    = HttpStatusCode.BadRequest.ToString(),
                        IsError = true
                    };
                    return(matterCenterServiceFunctions.ServiceResponse(genericResponse, (int)HttpStatusCode.OK));
                }
                #endregion
                searchRequestVM.SearchObject.SearchTerm = (!string.IsNullOrWhiteSpace(searchRequestVM.SearchObject.SearchTerm)) ?
                                                          searchRequestVM.SearchObject.SearchTerm : string.Empty;
                IList <Users> users = await userRepositoy.GetUsersAsync(searchRequestVM);

                if (users != null && users.Count != 0)
                {
                    return(matterCenterServiceFunctions.ServiceResponse(users, (int)HttpStatusCode.OK));
                }
                else
                {
                    Users noResult = new Users()
                    {
                        Name       = errorSettings.PeoplePickerNoResults,
                        LogOnName  = string.Empty,
                        Email      = string.Empty,
                        EntityType = string.Empty
                    };
                    users.Add(noResult);
                    return(matterCenterServiceFunctions.ServiceResponse(users, (int)HttpStatusCode.OK));
                }
            }
            catch (Exception ex)
            {
                customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                throw;
            }
        }
        public async Task <IActionResult> Get([FromBody] SearchRequestVM searchRequestVM)
        {
            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));
                }

                if (searchRequestVM == null && searchRequestVM.Client == null && searchRequestVM.SearchObject == null)
                {
                    errorResponse = new ErrorResponse()
                    {
                        Message     = errorSettings.MessageNoInputs,
                        ErrorCode   = HttpStatusCode.BadRequest.ToString(),
                        Description = "No input data is passed"
                    };
                    return(matterCenterServiceFunctions.ServiceResponse(errorResponse, (int)HttpStatusCode.NotFound));
                }

                #endregion

                var searchObject = searchRequestVM.SearchObject;
                // Encode all fields which are coming from js
                SearchUtility.EncodeSearchDetails(searchObject.Filters, false);
                // Encode Search Term
                searchObject.SearchTerm = (searchObject.SearchTerm != null) ?
                                          WebUtility.HtmlEncode(searchObject.SearchTerm).Replace(ServiceConstants.ENCODED_DOUBLE_QUOTES, ServiceConstants.DOUBLE_QUOTE) : string.Empty;

                var searchResultsVM = await documentRepositoy.GetDocumentsAsync(searchRequestVM);

                return(matterCenterServiceFunctions.ServiceResponse(searchResultsVM.SearchResults, (int)HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                throw;
            }
        }
Esempio n. 10
0
        public async Task <IActionResult> GetDocumentCounts([FromBody] SearchRequestVM searchRequestVM)
        {
            try
            {
                GenericResponseVM genericResponse = null;
                #region Error Checking
                //Input validation
                if (searchRequestVM == null && searchRequestVM.Client == null && searchRequestVM.SearchObject == null)
                {
                    genericResponse = new GenericResponseVM()
                    {
                        Value   = errorSettings.MessageNoInputs,
                        Code    = HttpStatusCode.BadRequest.ToString(),
                        IsError = true
                    };
                    return(matterCenterServiceFunctions.ServiceResponse(genericResponse, (int)HttpStatusCode.OK));
                }
                #endregion
                //For a given search request entered by the user, this api will get all documents that has been
                //uploaded by him, all documents that are assigned to him and all the documents which are pinned by him
                int allDocumentCounts = await documentProvision.GetAllCounts(searchRequestVM);

                int myDocumentCounts = await documentProvision.GetMyCounts(searchRequestVM);

                int pinnedDocumentCounts = await documentProvision.GetPinnedCounts(searchRequestVM);

                //The object count information that will be sent to the user
                var documentCounts = new
                {
                    AllDocumentCounts    = allDocumentCounts,
                    MyDocumentCounts     = myDocumentCounts,
                    PinnedDocumentCounts = pinnedDocumentCounts,
                };
                //If the input validation is failed, send GenericResponseVM which contains the error information
                return(matterCenterServiceFunctions.ServiceResponse(documentCounts, (int)HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                customLogger.LogError(ex, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, logTables.SPOLogTable);
                throw;
            }
        }
Esempio n. 11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="searchRequestVM"></param>
        /// <returns></returns>
        public async Task <IList <Users> > GetUsersAsync(SearchRequestVM searchRequestVM)
        {
            IList <PeoplePickerUser> foundUsers = await Task.FromResult(search.SearchUsers(searchRequestVM));

            IList <Users> users = new List <Users>();

            if (foundUsers != null && foundUsers.Count != 0)
            {
                foreach (PeoplePickerUser item in foundUsers)
                {
                    Users tempUser = new Users();
                    tempUser.Name      = Convert.ToString(item.DisplayText, CultureInfo.InvariantCulture);
                    tempUser.LogOnName = Convert.ToString(item.Key, CultureInfo.InvariantCulture);
                    tempUser.Email     = string.Equals(item.EntityType, ServiceConstants.PEOPLE_PICKER_ENTITY_TYPE_USER, StringComparison.OrdinalIgnoreCase) ?
                                         Convert.ToString(item.Description, CultureInfo.InvariantCulture) : Convert.ToString(item.EntityData.Email, CultureInfo.InvariantCulture);
                    tempUser.EntityType = Convert.ToString(item.EntityType, CultureInfo.InvariantCulture);
                    users.Add(tempUser);
                }
                return(users);
            }
            return(users);
        }
Esempio n. 12
0
        public async void Get_Users()
        {
            SearchRequestVM searchRequestVM = new SearchRequestVM()
            {
                Client = new Client()
                {
                    Url = "https://msmatter.sharepoint.com/sites/catalog"
                },
                SearchObject = new SearchObject()
                {
                    SearchTerm = "Matter"
                }
            };

            using (var client = testServer.CreateClient().AcceptJson())
            {
                var response = await client.PostAsJsonAsync("http://localhost:44323/api/v1/user/getusers", searchRequestVM);

                var result = response.Content.ReadAsJsonAsync <IList <Users> >().Result;
                Assert.NotNull(result);
            }
        }
Esempio n. 13
0
        public async Task <SearchResponseVM> GetDocumentsAsync(SearchRequestVM searchRequestVM)
        {
            var searchObject = searchRequestVM.SearchObject;

            // Encode all fields which are coming from js
            SearchUtility.EncodeSearchDetails(searchObject.Filters, false);
            // Encode Search Term
            searchObject.SearchTerm = (searchObject.SearchTerm != null) ?
                                      WebUtility.HtmlEncode(searchObject.SearchTerm).Replace(ServiceConstants.ENCODED_DOUBLE_QUOTES, ServiceConstants.DOUBLE_QUOTE) : string.Empty;

            var searchResultsVM = await docRepository.GetDocumentsAsync(searchRequestVM);

            if (searchResultsVM.TotalRows > 0)
            {
                dynamic documentDataList = new List <dynamic>();
                IEnumerable <IDictionary <string, object> > searchResults = searchResultsVM.SearchResults;
                foreach (var searchResult in searchResults)
                {
                    dynamic documentData = new ExpandoObject();
                    foreach (var key in searchResult.Keys)
                    {
                        documentData.Checker = false;
                        ServiceUtility.AddProperty(documentData, "Checker", false);
                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyDocumentClientName.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentClient").Key,
                                                       searchResult[key].ToString());
                        }

                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyFileName.ToString().ToLower())
                        {
                            string fileNameWithOutExt = System.IO.Path.GetFileNameWithoutExtension(searchResult[key].ToString());
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentName").Key,
                                                       fileNameWithOutExt);
                        }

                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyDocumentClientId.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentClientId").Key,
                                                       searchResult[key].ToString());
                        }
                        if (key.ToString().ToLower() == searchSettings.ManagedPropertySiteName.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentClientUrl").Key,
                                                       searchResult[key].ToString());
                        }
                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyDocumentVersion.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentVersion").Key,
                                                       searchResult[key].ToString());
                        }
                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyDocumentMatterName.ToString().ToLower())
                        {
                            if (searchResult[key].ToString() != string.Empty)
                            {
                                ServiceUtility.AddProperty(documentData,
                                                           configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentMatterName").Key,
                                                           searchResult[key].ToString());
                            }
                            else
                            {
                                ServiceUtility.AddProperty(documentData,
                                                           configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentMatterName").Key,
                                                           searchResult["Title"].ToString());
                            }
                        }
                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyDocumentMatterId.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentMatterId").Key,
                                                       searchResult[key].ToString());
                        }
                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyDocumentCheckOutUser.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentCheckoutUser").Key,
                                                       searchResult[key].ToString());
                        }
                        //-------------------------
                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyCreated.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentCreatedDate").Key,
                                                       searchResult[key].ToString());
                        }
                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyFileExtension.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentExtension").Key,
                                                       searchResult[key].ToString());
                            if (searchResult[key].ToString().ToLower() == "csv")
                            {
                                ServiceUtility.AddProperty(documentData,
                                                           configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentIconUrl").Key,
                                                           $"{generalSettings.SiteURL}/_layouts/15/images/generaldocument.png");
                            }
                            else if (searchResult[key].ToString().ToLower() != "pdf")
                            {
                                ServiceUtility.AddProperty(documentData,
                                                           configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentIconUrl").Key,
                                                           $"{generalSettings.SiteURL}/_layouts/15/images/ic{searchResult[key].ToString().ToLower()}.gif");
                            }
                            else
                            {
                                ServiceUtility.AddProperty(documentData,
                                                           configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentIconUrl").Key,
                                                           $"{generalSettings.SiteURL}/_layouts/15/images/ic{searchResult[key].ToString().ToLower()}.png");
                            }
                        }

                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyPath.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentOWAUrl").Key,
                                                       searchResult[key].ToString());
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentUrl").Key,
                                                       searchResult[key].ToString());
                        }
                        if (key.ToString().ToLower() == "serverredirectedurl")
                        {
                            if (searchResult[key] != null)
                            {
                                ServiceUtility.AddProperty(documentData,
                                                           configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentOWAUrl").Key,
                                                           searchResult[key].ToString());
                                ServiceUtility.AddProperty(documentData,
                                                           configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentUrl").Key,
                                                           searchResult[key].ToString());
                            }
                        }
                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyLastModifiedTime.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentModifiedDate").Key,
                                                       searchResult[key].ToString());
                        }

                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyAuthor.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentOwner").Key,
                                                       searchResult[key].ToString());
                        }
                        if (key.ToString().ToLower() == "docid")
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("docId").Key,
                                                       searchResult[key].ToString());
                        }

                        if (key.ToString().ToLower() == searchSettings.ManagedPropertyPracticeGroup.ToString().ToLower())
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentPracticeGroup").Key,
                                                       searchResult[key].ToString());
                        }

                        if (key.ToString().ToLower() == "parentlink")
                        {
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentParentUrl").Key,
                                                       searchResult[key].ToString());
                            string documentUrl = searchResult[key].ToString().Substring(0, searchResult[key].ToString().LastIndexOf("/"));
                            string siteUrl     = searchResult["SiteName"].ToString();
                            string matterGuid  = searchResult[key].ToString().ToLower().Replace(siteUrl, "").Split('/')[1];
                            string matterUrl   = $"{siteUrl}/sitepages/{matterGuid}.aspx";
                            ServiceUtility.AddProperty(documentData,
                                                       configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument").GetSection("documentMatterUrl").Key,
                                                       matterUrl);
                        }
                        ServiceUtility.AddProperty(documentData, "PinType", "Pin");
                        ServiceUtility.AddProperty(documentData, "DocGuid", Guid.NewGuid().ToString());
                    }
                    documentDataList.Add(documentData);
                }
                searchResultsVM.DocumentDataList = documentDataList;
            }
            searchResultsVM.SearchResults = null;
            if (searchRequestVM.SearchObject.IsUnique && searchResultsVM.DocumentDataList != null && !string.IsNullOrWhiteSpace(searchRequestVM.SearchObject.UniqueColumnName))
            {
                searchResultsVM.DocumentDataList = getUniqueResults(searchRequestVM, searchResultsVM);
            }
            return(searchResultsVM);
        }
Esempio n. 14
0
 /// <summary>
 /// This method will try to fetch all the matters that are provisioned by the user
 /// </summary>
 /// <param name="searchRequestVM"></param>
 /// <returns></returns>
 public async Task <SearchResponseVM> GetPinnedRecordsAsync(SearchRequestVM searchRequestVM, ClientContext clientContext)
 {
     return(await Task.FromResult(search.GetPinnedData(searchRequestVM, listNames.UserPinnedDocumentListName,
                                                       searchSettings.PinnedListColumnDocumentDetails, true, clientContext)));
 }
Esempio n. 15
0
 /// <summary>
 /// This method will try to fetch all the matters that are provisioned by the user
 /// </summary>
 /// <param name="searchRequestVM"></param>
 /// <returns></returns>
 public async Task <SearchResponseVM> GetDocumentsAsync(SearchRequestVM searchRequestVM, ClientContext clientContext)
 {
     return(await Task.FromResult(search.GetDocuments(searchRequestVM, clientContext)));
 }
Esempio n. 16
0
        /// <summary>
        /// getting unique results for this.
        /// </summary>
        /// <param name="searchRequestVM"></param>
        /// <param name="searchResultsVM"></param>
        /// <returns></returns>
        public dynamic getUniqueResults(SearchRequestVM searchRequestVM, dynamic searchResultsVM)
        {
            dynamic documentDataList1 = new List <dynamic>();

            var colList = configuration.GetSection("Search").GetSection("SearchColumnsUIPickerForDocument");

            string UniqueColumnName = getuniqueColumnName(searchRequestVM.SearchObject.UniqueColumnName.ToLower().Trim());

            if (!string.IsNullOrWhiteSpace(UniqueColumnName))
            {
                if (UniqueColumnName.Equals(colList.GetSection("documentName").Key))
                {
                    var data = ((IEnumerable <dynamic>)searchResultsVM.DocumentDataList).Where(d => d.documentName.Contains(searchRequestVM.SearchObject.FilterValue));
                    foreach (var dt in data)
                    {
                        dt.documentName = dt.documentName + "." + dt.documentExtension;
                    }

                    data = data.Select(o => o.documentName).Distinct();
                    foreach (var dt in data)
                    {
                        dynamic documentData1 = new ExpandoObject();
                        documentData1.documentName = dt;
                        documentDataList1.Add(documentData1);
                    }
                    searchResultsVM.DocumentDataList = documentDataList1;
                }
                else if (UniqueColumnName.Equals(colList.GetSection("documentMatterName").Key))
                {
                    var data = ((IEnumerable <dynamic>)searchResultsVM.DocumentDataList).Where(d => d.documentMatterName.Contains(searchRequestVM.SearchObject.FilterValue));
                    data = data.Select(o => o.documentMatterName).Distinct();
                    foreach (var dt in data)
                    {
                        dynamic documentData1 = new ExpandoObject();
                        documentData1.documentMatterName = dt;
                        documentDataList1.Add(documentData1);
                    }
                    searchResultsVM.DocumentDataList = documentDataList1;
                }
                else if (UniqueColumnName.Equals(colList.GetSection("documentPracticeGroup").Key))
                {
                    var data = ((IEnumerable <dynamic>)searchResultsVM.DocumentDataList).Where(d => d.documentPracticeGroup.Contains(searchRequestVM.SearchObject.FilterValue));
                    data = data.Select(o => o.documentPracticeGroup).Distinct();
                    foreach (var dt in data)
                    {
                        dynamic documentData1 = new ExpandoObject();
                        documentData1.documentPracticeGroup = dt;
                        documentDataList1.Add(documentData1);
                    }
                    searchResultsVM.DocumentDataList = documentDataList1;
                }
                else if (UniqueColumnName.Equals(colList.GetSection("documentOwner").Key))
                {
                    var data = ((IEnumerable <dynamic>)searchResultsVM.DocumentDataList).Where(d => d.documentOwner.Contains(searchRequestVM.SearchObject.FilterValue));
                    data = data.Select(o => o.documentOwner).Distinct();
                    foreach (var dt in data)
                    {
                        dynamic documentData1 = new ExpandoObject();
                        documentData1.documentOwner = dt;
                        documentDataList1.Add(documentData1);
                    }
                    searchResultsVM.DocumentDataList = documentDataList1;
                }
                else if (UniqueColumnName.Equals(colList.GetSection("documentCheckoutUser").Key))
                {
                    var data = ((IEnumerable <dynamic>)searchResultsVM.DocumentDataList).Where(d => d.documentCheckoutUser.Contains(searchRequestVM.SearchObject.FilterValue));
                    data = data.Select(o => o.documentCheckoutUser).Distinct();
                    foreach (var dt in data)
                    {
                        dynamic documentData1 = new ExpandoObject();
                        documentData1.documentCheckoutUser = dt;
                        documentDataList1.Add(documentData1);
                    }
                    searchResultsVM.DocumentDataList = documentDataList1;
                }
                else if (UniqueColumnName.Equals(colList.GetSection("documentClient").Key))
                {
                    var data = ((IEnumerable <dynamic>)searchResultsVM.DocumentDataList).Where(d => d.documentClient.Contains(searchRequestVM.SearchObject.FilterValue));
                    data = data.Select(o => o.documentClient).Distinct();
                    foreach (var dt in data)
                    {
                        dynamic documentData1 = new ExpandoObject();
                        documentData1.documentClient = dt;
                        documentDataList1.Add(documentData1);
                    }
                    searchResultsVM.DocumentDataList = documentDataList1;
                }
            }

            return(searchResultsVM.DocumentDataList);
        }
Esempio n. 17
0
        /// <summary>
        /// get the documents async
        /// </summary>
        /// <param name="searchRequestVM"></param>
        /// <returns></returns>
        public async Task <SearchResponseVM> GetPinnedDocumentsAsync(SearchRequestVM searchRequestVM)
        {
            var searchResultsVM = await docRepository.GetPinnedRecordsAsync(searchRequestVM);

            return(searchResultsVM);
        }
Esempio n. 18
0
 /// <summary>
 /// This method will try to fetch all the matters that are provisioned by the user
 /// </summary>
 /// <param name="searchRequestVM"></param>
 /// <returns></returns>
 public async Task <SearchResponseVM> GetDocumentsAsync(SearchRequestVM searchRequestVM)
 {
     return(await Task.FromResult(search.GetDocuments(searchRequestVM)));
 }