private SearchAnswer ProcessSearchRequest(SearchRequest searchRequest)
        {
            SearchAnswer searchAnswer = new SearchAnswer();

            if (searchRequest.SearchArticles)
            {
                searchAnswer.Articles = databaseAccess.GetArticles(searchRequest.Title, searchRequest.Author, searchRequest.InitialYear, searchRequest.FinalYear).Take(500).ToList();

                _logger.LogInformation("Articles found: " + searchAnswer.Articles.Count);
            }

            if (searchRequest.SearchBooks)
            {
                searchAnswer.Books = databaseAccess.GetBooks(searchRequest.Title, searchRequest.Author, searchRequest.InitialYear, searchRequest.FinalYear).Take(500).ToList();

                _logger.LogInformation("Books found: " + searchAnswer.Books.Count);
            }

            if (searchRequest.SearchCongressComunications)
            {
                searchAnswer.CongressComunications = databaseAccess.GetCongressComunications(searchRequest.Title, searchRequest.Author, searchRequest.InitialYear, searchRequest.FinalYear).Take(500).ToList();

                _logger.LogInformation("Congress Comunications found: " + searchAnswer.CongressComunications.Count);
            }

            return(searchAnswer);
        }
Beispiel #2
0
        public async Task <IEnumerable <Photo> > GetItemsAsync(Search search = null, bool forceRefresh = false)
        {
            var    items = new List <Photo>();
            string _uri  = GetUri(search);
            Uri    uri   = string.IsNullOrEmpty(_uri) ?
                           new Uri($"{HostUrl}/photos?client_id={client_id}") :
                           new Uri($"{HostUrl}/search/photos?{_uri}client_id={client_id}");

            try
            {
                var response = await client.GetAsync(uri);

                if (response.IsSuccessStatusCode)
                {
                    var content = await response.Content.ReadAsStringAsync();

                    SearchAnswer temp = new SearchAnswer();
                    items  = !string.IsNullOrEmpty(_uri) ?  JsonConvert.DeserializeObject <SearchAnswer>(content).Results : JsonConvert.DeserializeObject <List <Photo> >(content);
                    photos = items;
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(@"				ERROR {0}", ex.Message);
            }

            return(await Task.FromResult(items));
        }
        public async void MainInitialization()
        {
            MainWindow main = new MainWindow();

            MainVars mv = new MainVars();

            InitLabel.Content = "Загрузка...";
            await Task.Delay(1000);

            InitLabel.Content = "Инициализация команд...";
            await Task.Delay(1000);

            SearchAnswer.InitCommandList();

            InitLabel.Content = "Проверка интернет соединения...";
            await Task.Delay(1000);

            InternetConnection ic = new InternetConnection();

            MainVars.InternetConnection = ic.TryToConnect();
            ic.InternetConnectionTimerStart();

            InitLabel.Content = "Настройка Telegram...";
            main.InitTelegram();
            await Task.Delay(1000);

            InitLabel.Content = "Запуск...";
            await Task.Delay(1000);

            main.InitHelper();
            main.Show();
            this.Close();
        }
Beispiel #4
0
        public string Get()
        {
            int          Category     = 0;
            int          QuestionType = 0;
            SearchAnswer obj          = new SearchAnswer();

            return(obj.GetAnswer(Category, QuestionType));
        }
Beispiel #5
0
        public async Task <ActionResult <SearchAnswer> > GetByUserLiked([FromQuery] SearchQuery query)
        {
            query.UserInfo = new UserInfo
            {
                Id          = User.GetUserId(),
                AdvertsType = AdvertsType.Liked
            };
            SearchAnswer adverts = await _advertService.GetAllAsync(query);

            return(Ok(adverts));
        }
Beispiel #6
0
        public async Task <SearchAnswer> GetAllAsync(SearchQuery searchQuery)
        {
            ICollection <Advert> adverts = await _unitOfWork.AdvertRepository.GetAllAsync(searchQuery);

            int advertsAmount = await _unitOfWork.AdvertRepository.GetAdvertsAmountAsync(searchQuery);

            var          mappedAdverts = _mapper.Map <List <AdvertDto> >(adverts);
            SearchAnswer result        = new SearchAnswer
            {
                Adverts       = mappedAdverts,
                AdvertsAmount = advertsAmount
            };

            return(result);
        }
Beispiel #7
0
        /// <summary>
        /// Функция возвращает объект с объявлениями, параметры выборки которых указаны в параметре <paramref name="query"/>.
        /// </summary>
        /// <param name="query">Объект, в котором находятся параметры фильтрации, сортировки и данные для пагинации.</param>
        /// <param name="id">Номер страницы с объявлениями. Извлекается из URI.</param>
        /// <returns>AdvertListViewModel - модель с непросредственно объявлениями, запросом и количеством объявлений.</returns>
        public async Task <IActionResult> Index(SearchQuery query, [FromRoute] int?id)
        {
            if (id != null)
            {
                query.CurrentPage = id.Value;
            }

            SearchAnswer result = await _advertService.GetAllAsync(query);

            return(View(new AdvertListViewModel
            {
                Adverts = result.Adverts,
                Query = query,
                AllAdvertsAmount = result.AdvertsAmount
            }));
        }
Beispiel #8
0
        public async Task <IActionResult> GetUserLikedAdverts([FromQuery] SearchQuery query, [FromRoute] int?id)
        {
            if (id != null)
            {
                query.CurrentPage = id.Value;
            }
            SearchAnswer result = await _userInfoService.GetByUserLikedAsync(query);

            AdvertListViewModel data = new AdvertListViewModel
            {
                Adverts          = result.Adverts,
                Query            = query,
                AllAdvertsAmount = result.AdvertsAmount
            };

            return(View("Adverts", data));
        }
        private void ShowResults(SearchAnswer searchAnswer, bool searchArticle, bool searchBook, bool searchCongress)
        {
            if (searchAnswer == null)
            {
                richTextBoxArticles.ForeColor = Color.Red;
                richTextBoxArticles.Text      = "There was a problem with the answer of the warehouse.";

                return;
            }

            richTextBoxArticles.ForeColor = Color.Black;
            richTextBoxBooks.ForeColor    = Color.Black;
            richTextBoxCongressComunications.ForeColor = Color.Black;

            if (searchArticle)
            {
                string text = "";

                for (int i = 0; i < searchAnswer.Articles.Count; i++)
                {
                    Article a = searchAnswer.Articles[i];

                    text += $"{i + 1}.- {a.Title}\n";
                    text += $"Year: {a.Year}\n";
                    text += a.Url == null ? "" : $"Url: {a.Url}\n";
                    text += a.InitialPage == null && a.FinalPage == null ? "" : $"Pages: {a.InitialPage} - {a.FinalPage}\n";
                    text += a.Exemplar == null ? "" : $"Volume: {a.Exemplar.Volume}\n";
                    text += a.Exemplar == null ? "" : $"Number: {a.Exemplar.Number}\n";
                    text += a.Exemplar == null ? "" : $"Month: {a.Exemplar.Month}\n";
                    text += a.Exemplar == null ? "" : $"Journal: {a.Exemplar.Journal.Name}\n";
                    text += PrepareAuthors(a.People);
                    text += "\n";
                }

                richTextBoxArticles.Text = text == "" ? "No articles found." : text;

                if (tabControlResults.TabPages.Contains(tabs[0]))
                {
                    tabControlResults.TabPages.Remove(tabs[0]);
                }

                tabControlResults.TabPages.Add(tabs[0]);
            }
            else
            {
                tabControlResults.TabPages.Remove(tabs[0]);
            }

            if (searchBook)
            {
                string text = "";

                for (int i = 0; i < searchAnswer.Books.Count; i++)
                {
                    Book b = searchAnswer.Books[i];

                    text += $"{i + 1}.- {b.Title}\n";
                    text += $"Year: {b.Year}\n";
                    text += b.Url == null ? "" : $"Url: {b.Url}\n";
                    text += b.Editorial == null ? "" : $"Editorial: {b.Editorial}\n";
                    text += PrepareAuthors(b.People);
                    text += "\n";
                }

                richTextBoxBooks.Text = text == "" ? "No books found." : text;

                if (tabControlResults.TabPages.Contains(tabs[1]))
                {
                    tabControlResults.TabPages.Remove(tabs[1]);
                }

                tabControlResults.TabPages.Add(tabs[1]);
            }
            else
            {
                tabControlResults.TabPages.Remove(tabs[1]);
            }

            if (searchCongress)
            {
                string text = "";

                for (int i = 0; i < searchAnswer.CongressComunications.Count; i++)
                {
                    CongressComunication cc = searchAnswer.CongressComunications[i];

                    text += $"{i + 1}.- {cc.Title}\n";
                    text += $"Year: {cc.Year}\n";
                    text += cc.Url == null ? "" : $"Url: {cc.Url}\n";
                    text += cc.Congress == null ? "" : $"Congress: {cc.Congress}\n";
                    text += cc.Edition == null ? "" : $"Edition: {cc.Edition}\n";
                    text += cc.Place == null ? "" : $"Place: {cc.Place}\n";
                    text += cc.InitialPage == null && cc.FinalPage == null ? "" : $"Pages: {cc.InitialPage} - {cc.FinalPage}\n";
                    text += PrepareAuthors(cc.People);
                    text += "\n";
                }

                richTextBoxCongressComunications.Text = text == "" ? "No congress comunications found." : text;

                if (tabControlResults.TabPages.Contains(tabs[2]))
                {
                    tabControlResults.TabPages.Remove(tabs[2]);
                }

                tabControlResults.TabPages.Add(tabs[2]);
            }
            else
            {
                tabControlResults.TabPages.Remove(tabs[2]);
            }

            string PrepareAuthors(ICollection <Person> people)
            {
                if (people.Count == 0)
                {
                    return("");
                }

                string text = "Authors: ";

                foreach (Person person in people)
                {
                    text += person.Name + " " + person.Surnames + ", ";
                }

                return(text.Substring(0, text.Length - 2) + "\n");
            }
        }