Пример #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            SearchConnector searchConnector = _searchConnectorService.Get(id);

            _searchConnectorService.Delete(searchConnector.Id);
            return(RedirectToAction("Index"));
        }
Пример #2
0
 public void Edit(SearchConnector searchConnector)
 {
     if (searchConnector.Id == 0)
     {
         throw new Exception("Id can't be 0");
     }
     int result = _searchConnectorRepository.Update(searchConnector).GetAwaiter().GetResult();
 }
Пример #3
0
 public ActionResult Edit([Bind(Include = "Id,Name,QueryPattern,ResultPattern,ResultNamePattern,ResultLinkPattern,ResultBodyPattern,DirectLink")]
                          SearchConnector searchConnector)
 {
     if (ModelState.IsValid)
     {
         _searchConnectorService.Edit(searchConnector);
         return(RedirectToAction("Index"));
     }
     return(View(searchConnector));
 }
Пример #4
0
        public void Edit_NullID_Throw()
        {
            var searchConnectorRepository = Substitute.For <ISearchConnectorRepository>();
            SearchConnectorService searchConnectorService = new SearchConnectorService(searchConnectorRepository);
            SearchConnector        searchConnector        = new SearchConnector()
            {
                Id = 0
            };
            var exception = Assert.Throws <Exception>(() => searchConnectorService.Edit(searchConnector));

            StringAssert.Contains("can't be 0", exception.Message);
        }
Пример #5
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SearchConnector searchConnector = _searchConnectorService.Get(id.Value);

            if (searchConnector == null)
            {
                return(HttpNotFound());
            }
            return(PartialView("_Delete", searchConnector));
        }
Пример #6
0
 protected override void GetResultPosition(SearchConnector connector, string query, out SearchResult searchResult)
 {
     searchResult = this._searchResult;
     isCalled     = true;
 }
Пример #7
0
        static void Main(string[] args)
        {
            Console.WriteLine("HlidacStatu - datova sada Insolvencni rejstrik");
            Console.WriteLine("----------------------------------------------");
            Console.WriteLine();

            var search          = false;
            var apiToken        = "";
            var date            = new DateTime(2008, 1, 1);
            var events          = false;
            var noCache         = false;
            var initCache       = false;
            var help            = false;
            var createIndexes   = false;
            var ignoreDocuments = false;
            var onlyDocuments   = false;
            var toEventId       = -1;

            var options = new OptionSet()
            {
                { "create-indexes", "vytvori indexy v elastiku", v => createIndexes = true },
                { "s|search", "definuje rezim dle vyhledavani", v => search = true },
                { "apitoken=", "ApiToken pro pristup k datovym sadam (povinny, pouze pro rezim vyhledavani)", v => apiToken = v },
                { "date=", "datum zahajeni hledani (nepovinny, default 1.1.2008, pouze pro rezim vyhledavani)", (DateTime v) => date = v },
                { "e|events", "definuje rezim dle udalosti", v => events = true },
                { "no-cache", "vypina ukladani event do cache a jejich nasledne pouziti", v => noCache = true },
                { "ignore-documents", "vypina ukladani dokumentu do databaze", v => ignoreDocuments = true },
                { "only-documents", "do databaze budou ukladany pouze dokumenty", v => onlyDocuments = true },
                { "to-event-id=", "nastavuje id udalosti, po ktere dojde k ukonceni zpracovani", v => toEventId = Convert.ToInt32(v) },
                { "init-link-cache", "nacte seznam vsech rizeni a linku na jejich detail a ulozi je do souboru, ktery je pouzit pri naplneni cache linku na detail rizeni", v => initCache = true },
                { "h|?|help", "zobrazi napovedu", v => help = true },
            };

            options.Parse(args);

            if (help)
            {
                PrintHelp(options);
            }
            else if (createIndexes)
            {
                var es = new ElasticConnector();
                es.GetESClient(Database.Dokument);
                es.GetESClient(Database.Osoba);
                es.GetESClient(Database.Rizeni);
            }
            else if (initCache)
            {
                Console.WriteLine("Spousti se prednacteni cache (vypsany datum znaci stazene obdobi)");
                new IsirClientCache(null, null).PrepareCache(new DateTime(2008, 1, 1));
            }
            else if (search)
            {
                var connector = new SearchConnector(apiToken);
                connector.Handle(date);
            }
            else if (events)
            {
                var connector = new IsirWsConnector(noCache, ignoreDocuments, onlyDocuments, toEventId);
                connector.Handle();
            }
            else
            {
                PrintHelp(options);
            }
        }
Пример #8
0
        protected virtual void GetResultPosition(SearchConnector connector, string query, out SearchResult searchResult)
        {
            SearchResult currentResult = new SearchResult();
            var          url           = connector.QueryPattern.Replace("%query%", query);
            var          web           = new HtmlWeb();
            HtmlDocument doc;

            try
            {
                if (url.IndexOf("http") != 0)
                {
                    throw new Exception("Bad QueryPattern");
                }
                doc = web.Load(url);
            }
            catch (Exception exc)
            {
                _loggerService.Write($"Error: {exc.ToString()}");

                searchResult = new SearchResult {
                    SearchSystem = connector.Id
                };
                return;
            }
            var document = doc.DocumentNode;

            if (!string.IsNullOrEmpty(connector.ResultPattern))
            {
                var resultNodes = document.QuerySelectorAll(connector.ResultPattern);
                foreach (var resultNode in resultNodes)
                {
                    string header = "", body = "", link = "";
                    if (!string.IsNullOrEmpty(connector.ResultNamePattern))
                    {
                        var node = resultNode.QuerySelector(connector.ResultNamePattern);
                        if (node != null)
                        {
                            header = node.InnerHtml;
                        }
                    }
                    if (!string.IsNullOrEmpty(connector.ResultBodyPattern))
                    {
                        var node = resultNode.QuerySelector(connector.ResultBodyPattern);
                        if (node != null)
                        {
                            body = node.InnerHtml;
                        }
                    }
                    if (!string.IsNullOrEmpty(connector.ResultLinkPattern))
                    {
                        var node = resultNode.QuerySelector(connector.ResultLinkPattern);
                        if (node != null)
                        {
                            link = node.GetAttributeValue("href", null);
                        }
                    }
                    if (!string.IsNullOrEmpty(link))
                    {
                        if (link.IndexOf("http") != 0)  //Если линк начинается не с http, то преобразуем его
                        {
                            link = connector.DirectLink + link;
                        }

                        currentResult.SearchPositions.Add(new SearchResultPosition {
                            Description = body.Replace("<br>", ""), Label = header, Link = link
                        });
                    }
                }
            }

            currentResult.SearchSystem = connector.Id;

            searchResult = currentResult;
        }
Пример #9
0
 public void Create(SearchConnector searchConnector)
 {
     int result = _searchConnectorRepository.Insert(searchConnector).GetAwaiter().GetResult();
 }