Exemple #1
0
        public IEnumerable <DocumentDTO> Find(SearchRequestDTO searchRequest)
        {
            var query = searchRequest.SearchQuery.ToLower();
            var dates = ExtractDatePatterns(ref query);

            searchRequest.SearchQuery = query;

            // Поиск по ключевым словам
            var documents = SearchByKeywords(searchRequest);

            // Поиск по датам
            if (dates.Length > 0)
            {
                if (documents.Any())
                {
                    documents = documents.Intersect(SearchByDatePatterns(dates));
                }
                else
                {
                    documents = SearchByDatePatterns(dates);
                }
            }

            var result = _mapper.Map <List <DocumentDTO> >(documents);

            return(result);
        }
Exemple #2
0
        public async Task TestAlgorithms()
        {
            SearchRequestDTO searchRequestDTO = new SearchRequestDTO()
            {
                UserName     = "******",
                AlgorithmKey = "Boyer-Moore",
                Matrix       = new List <string>()
                {
                    "sagjodmasod", "aojsdtest2odjajd", "aojsajodjosatest1djosadjosoajd", "jastest2jdojosdjod", "jasdojasjdodod"
                },
                WordStream = new List <string>()
                {
                    "test1", "test2"
                }
            };

            var result = await _searchRequestHandlerMock.Object.Handle(searchRequestDTO, _cancellation);

            var expectedResult = new ResponseDTO()
            {
                Status  = (int)eStatus.Success,
                Message = null,
                Value   = new List <string>()
                {
                    "test2", "test1"
                }
            };

            Assert.AreEqual(expectedResult.Status, result.Status);
            Assert.AreEqual(expectedResult.Message, result.Message);
            CollectionAssert.AreEqual((List <string>)expectedResult.Value, (List <string>)result.Value);
        }
        public SearchResponseDTO GetLazy(SearchRequestDTO request)
        {
            var response = new SearchResponseDTO
            {
                TotalCount = _productStorage.Count()
            };

            switch (request.SortBy)
            {
            case SortByColumn.NameASC:
            case SortByColumn.NameDESC:
                response.Products = SortedProducts(request, x => x.Name);
                break;

            case SortByColumn.PriceASC:
            case SortByColumn.PriceDESC:
                response.Products = SortedProducts(request, x => x.Price);
                break;

            case SortByColumn.QuantityASC:
            case SortByColumn.QuantityDESC:
                response.Products = SortedProducts(request, x => x.Quantity);
                break;
            }

            return(response);
        }
Exemple #4
0
        public async Task <SearchResultDTO> Search(SearchRequestDTO request)
        {
            using (var searchClient = CreateAzureSearchClient())
            {
                using (var indexClient = searchClient.Indexes.GetClient(GetPlanTemplateIndexName()))
                {
                    var sp = new SearchParameters();
                    sp.OrderBy = new List <string>()
                    {
                        "name"
                    };
                    sp.IncludeTotalResultCount = true;

                    if (request.PageStart > 0 && request.PageSize > 0)
                    {
                        sp.Skip = (request.PageStart - 1) * request.PageSize;
                        sp.Top  = request.PageSize;
                    }

                    var text = string.IsNullOrEmpty(request.Text) ? "*" : request.Text;

                    var searchResult = await indexClient.Documents.SearchAsync(text, sp);

                    var resultingDocuments = searchResult.Results.Select(x => ConvertSearchDocumentToDTO(x.Document)).ToList();

                    var dto = new SearchResultDTO()
                    {
                        PlanTemplates = resultingDocuments,
                        TotalCount    = searchResult.Count.GetValueOrDefault()
                    };

                    return(dto);
                }
            }
        }
 private IEnumerable <ProductOutcomeDTO> SortedProducts(SearchRequestDTO request, Func <ProductEntity, object> sort)
 {
     return(_mapper.Map <IEnumerable <ProductOutcomeDTO> >(
                _productStorage.Sort(request.SortBy, sort)
                .Skip(request.Page * request.PerPage)
                .Take(request.PerPage)));
 }
Exemple #6
0
        public IEnumerable <Somast> Search(SearchRequestDTO search)
        {
            IEnumerable <Somast> result = null;



            return(result);
        }
        public async Task <ActionResult> Search(SearchRequestDTO request)
        {
            var result = new AllRobotsViewModel
            {
                Robots = await new HttpRequestHelper().Post <List <RobotInfoDTO>, SearchRequestDTO>($@"api/SearchRobots", request)
            };

            return(View("Robots", result));
        }
        public IActionResult Find(SearchModel searchModel)
        {
            var searchRequest = new SearchRequestDTO
            {
                SearchQuery            = searchModel.SearchQuery,
                IsDocumentNumber       = searchModel.IsDocumentNumber,
                IsYear                 = searchModel.IsYear,
                IsContractNumber       = searchModel.IsContractNumber,
                IsClientName           = searchModel.IsClientName,
                IsExploitationPlace    = searchModel.IsExploitationPlace,
                IsVerificationMethodic = searchModel.IsVerificationMethodic,
                IsRegisterNumber       = searchModel.IsRegisterNumber,
                IsDeviceType           = searchModel.IsDeviceType,
                IsDeviceName           = searchModel.IsDeviceName,
                IsSerialNumber         = searchModel.IsSerialNumber,
                IsDocumentType         = searchModel.IsDocumentType
            };

            var searchResult = _search.Find(searchRequest);
            var documents    = searchResult.Select(d => new DocumentListingModel
            {
                Id                    = d.Id,
                Year                  = d.Contract.Year,
                ContractId            = d.Contract.Id,
                ContractNumber        = d.Contract.ContractNumber,
                ClientId              = d.Client.Id,
                ClientName            = d.Client.Name,
                ExploitationPlace     = d.Client.ExploitationPlace,
                DeviceId              = d.Device.Id,
                DeviceType            = d.Device.Type,
                DeviceName            = d.Device.Name,
                SerialNumber          = d.Device.SerialNumber,
                RegistrationNumber    = d.Device.RegistrationNumber,
                VerificationMethodic  = d.Device.VerificationMethodic?.Name,
                DocumentNumber        = d.DocumentNumber,
                CalibrationDate       = (d as CertificateDTO)?.CalibrationDate.ToString("dd-MM-yyyy"),
                CalibrationExpireDate = (d as CertificateDTO)?.CalibrationExpireDate.ToString("dd-MM-yyyy"),
                FilePath              = d.DocumentFile.Path,
                DocumentType          = (d is CertificateDTO) ? "Свидетельство" : "Извещение о непригодности",
                DocumentDate          = (d as FailureNotificationDTO)?.DocumentDate.ToString("dd-MM-yyyy"),
                CreatedOn             = d.CreatedOn.ToString("dd-MM-yyyy hh:mm"),
                UpdatedOn             = d.UpdatedOn?.ToString("dd-MM-yyyy hh:mm") ?? d.CreatedOn.ToString("dd-MM-yyyy hh:mm"),
                CreatedBy             = d.CreatedBy,
                UpdatedBy             = d.UpdatedBy ?? d.CreatedBy
            });

            var model = new SearchResultModel
            {
                SearchModel   = searchModel,
                SearchResults = documents
            };

            return(View("Index", model));
        }
Exemple #9
0
        public async Task <IHttpActionResult> GeneratePages()
        {
            var searchRequest = new SearchRequestDTO()
            {
                Text      = string.Empty,
                PageStart = 0,
                PageSize  = 0
            };

            var searchResult = await _searchProvider.Search(searchRequest);

            var fr8AccountId = User.Identity.GetUserId();
            var watch        = System.Diagnostics.Stopwatch.StartNew();

            int found_templates  = 0;
            int missed_templates = 0;

            foreach (var searchItemDto in searchResult.PlanTemplates)
            {
                var planTemplateDto = await _planTemplate.GetPlanTemplateDTO(fr8AccountId, searchItemDto.ParentPlanId);

                if (planTemplateDto == null)
                {
                    // if plan doesn't exist in MT let's remove it from index
                    await _searchProvider.Remove(searchItemDto.ParentPlanId);

                    missed_templates++;
                    continue;
                }
                found_templates++;
                var planTemplateCm = await _planTemplate.CreateOrUpdate(fr8AccountId, planTemplateDto);

                //if ownerId will be the last admin id who pushed the button. it therefore possible bugs
                planTemplateCm.OwnerName = searchItemDto.Owner;

                await _searchProvider.CreateOrUpdate(planTemplateCm);

                await _planTemplateDetailsGenerator.Generate(planTemplateDto);

                await _webservicesPageGenerator.Generate(planTemplateCm, fr8AccountId);
            }
            watch.Stop();
            var elapsed  = watch.Elapsed;
            var message  = $"Page generator: templates found: {found_templates}, templates missed: {missed_templates}";
            var message2 = $"Page Generator elapsed time: {elapsed.Minutes} minutes, {elapsed.Seconds} seconds";

            Logger.Warn(message);
            Logger.Warn(message2);

            return(Ok(message + "\n\r" + message2));
        }
Exemple #10
0
        public async Task <IHttpActionResult> Search(
            string text, int?pageStart = null, int?pageSize = null)
        {
            var searchRequest = new SearchRequestDTO()
            {
                Text      = text,
                PageStart = pageStart.GetValueOrDefault(),
                PageSize  = pageSize.GetValueOrDefault()
            };

            var searchResult = await _searchProvider.Search(searchRequest);

            return(Ok(searchResult));
        }
Exemple #11
0
        public ActionResult <IEnumerable <String> > Search([FromBody] SearchRequestDTO searchRequestDTO)
        {
            if (searchRequestDTO == null)
            {
                return(BadRequest("Criteria is empty. Nothing to fetch"));
            }

            var result = _searchService.Search(searchRequestDTO);

            if (result != null)
            {
                return(StatusCode(200, result));
            }
            return(NoContent());
        }
Exemple #12
0
        public List <EventCustomer> Search(SearchRequestDTO input, int from, int size)
        {
            List <QueryContainer> container = new QueryDirector().CreateQuery(input);
            ISearchRequest        request   = new SearchRequest <EventCustomer>()
            {
                Query = new BoolQuery()
                {
                    Must = container
                },
                From = from,
                Size = size
            };

            var result = client.Value.Search <EventCustomer>(request).Documents.ToList();

            return(result);
        }
Exemple #13
0
        public void Search()
        {
            //Arrange
            //The two lines of code below can be replaced by your code which provides html content
            IManagedDriver driver = DriverPool.Instance.ActiveDriver.LaunchPage("https://www.google.com");
            string         html   = driver.Html;

            //Act
            RestClient  client  = new RestClient($"http://localhost:4476");
            RestRequest request = new RestRequest("/search", Method.POST);

            SearchRequestDTO requestDTO = new SearchRequestDTO
            {
                SearchText  = "`Search` <input>",
                HtmlContent = html
            };

            request.AddJsonBody(requestDTO);
            IRestResponse restResponse = client.Execute(request);
            string        content      = restResponse.Content;
            ResponseDTO   responseDTO  = JsonConvert.DeserializeObject <ResponseDTO>(content);
        }
        public List <MealsDTO> GetSearchedMeals(SearchRequestDTO request)
        {
            List <MealsDTO> MealsList = new List <MealsDTO>();

            if (request != null)
            {
                var meals = _db.Meals.ToList();
                foreach (var item in meals)
                {
                    if (item.MealName.Contains(request.SearchKeyWord))
                    {
                        MealsList.Add(new MealsDTO()
                        {
                            MealName        = item.MealName,
                            MealId          = item.Id,
                            MealUrl         = item.MealImageUrl,
                            MealDescription = item.MealDescription
                        }
                                      );
                    }
                }
            }
            return(MealsList);
        }
        public List <MealsDTO> GetSearchedMealsByFirstLetter(SearchRequestDTO request)
        {
            List <MealsDTO> MealsListByFirstLetter = new List <MealsDTO>();

            if (request != null)
            {
                var meals = _db.Meals.ToList();
                foreach (var item in meals)
                {
                    if (item.MealName.StartsWith(request.SearchKeyWord.ToUpper()) || item.MealName.StartsWith(request.SearchKeyWord.ToLower()))
                    {
                        MealsListByFirstLetter.Add(new MealsDTO()
                        {
                            MealName        = item.MealName,
                            MealId          = item.Id,
                            MealUrl         = item.MealImageUrl,
                            MealDescription = item.MealDescription
                        }
                                                   );
                    }
                }
            }
            return(MealsListByFirstLetter);
        }
Exemple #16
0
        private IEnumerable <Document> SearchByKeywords(SearchRequestDTO request)
        {
            var keyWords = request.SearchQuery.Split(' ');
            var result   = new List <Document>();

            foreach (var word in keyWords)
            {
                if (request.IsDocumentNumber)
                {
                    result.AddRange(SearchInDocumentNumber(word));
                }
                if (request.IsYear)
                {
                    result.AddRange(SearchInYear(word));
                }
                if (request.IsContractNumber)
                {
                    result.AddRange(SearchInContractNumber(word));
                }
                if (request.IsClientName)
                {
                    result.AddRange(SearchInClientName(word));
                }
                if (request.IsExploitationPlace)
                {
                    result.AddRange(SearchInExploitationPlace(word));
                }
                if (request.IsVerificationMethodic)
                {
                    result.AddRange(SearchInVerificationMethodic(word));
                }
                if (request.IsRegisterNumber)
                {
                    result.AddRange(SearchInRegisterNumber(word));
                }
                if (request.IsDeviceType)
                {
                    result.AddRange(SearchInDeviceType(word));
                }
                if (request.IsDeviceName)
                {
                    result.AddRange(SearchInDeviceName(word));
                }
                if (request.IsSerialNumber)
                {
                    result.AddRange(SearchInSerialNumber(word));
                }
                result.AddRange(SearchInDocumentType(word));
            }

            var filtredResult = result.Where(d => keyWords.All(word =>
            {
                if (request.IsDocumentNumber)
                {
                    if (d.DocumentNumber?.ToLower().Contains(word) ?? false)
                    {
                        return(true);
                    }
                }
                if (request.IsYear)
                {
                    if (d.Contract.Year.ToString().ToLower().Contains(word))
                    {
                        return(true);
                    }
                }
                if (request.IsContractNumber)
                {
                    if (d.Contract.ContractNumber.ToLower().Contains(word))
                    {
                        return(true);
                    }
                }
                if (request.IsClientName)
                {
                    if (d.Client.Name.ToLower().Contains(word))
                    {
                        return(true);
                    }
                }
                if (request.IsExploitationPlace)
                {
                    if (d.Client.ExploitationPlace?.ToLower().Contains(word) ?? false)
                    {
                        return(true);
                    }
                }
                if (request.IsDeviceType)
                {
                    if (d.Device.Type.ToLower().Contains(word))
                    {
                        return(true);
                    }
                }
                if (request.IsDeviceName)
                {
                    if (d.Device.Name.ToLower().Contains(word))
                    {
                        return(true);
                    }
                }
                if (request.IsSerialNumber)
                {
                    if (d.Device.SerialNumber.ToLower().Contains(word))
                    {
                        return(true);
                    }
                }
                if (request.IsVerificationMethodic)
                {
                    if (d.Device.VerificationMethodic?.Name?.ToLower().Contains(word) ?? false)
                    {
                        return(true);
                    }
                }
                if (request.IsRegisterNumber)
                {
                    if (d.Device.RegistrationNumber?.ToLower().Contains(word) ?? false)
                    {
                        return(true);
                    }
                }
                if ("свидетельство о поверке".Contains(word))
                {
                    if (d is Certificate)
                    {
                        return(true);
                    }
                }
                if ("извещение о непригодности".Contains(word))
                {
                    if (d is FailureNotification)
                    {
                        return(true);
                    }
                }

                return(false);
            }));

            return(filtredResult);
        }
 public IActionResult GetLazy([FromBody] SearchRequestDTO request)
 {
     return Ok(_productService.GetLazy(request));
 }
 public async Task <ResponseDTO> Search([FromBody] SearchRequestDTO request)
 {
     return(await _mediator.Send(request));
 }
Exemple #19
0
 public IActionResult SearchByFirstLetter(SearchRequestDTO data)
 {
     return(Ok(repository.GetSearchedMealsByFirstLetter(data)));
 }
Exemple #20
0
 public IActionResult Search(SearchRequestDTO data)
 {
     return(Ok(repository.GetSearchedMeals(data)));
 }