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)); } }
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)); } }
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); } }
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; } }
/// <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; } }
/// <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; } }
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; } }
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; } }
/// <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); }
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); } }
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); }
/// <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))); }
/// <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))); }
/// <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); }
/// <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); }
/// <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))); }