Пример #1
0
        public ActionResult Edit(KundeEditModel model)
        {
            using (var rs = new RequestScope(this))
            {
                var kunde = rs.DC.Kunders.Single(k => k.Kunde_GUID == model.Id);
                kunde.IsSupportSiteEnabled = model.IsSupportSiteEnabled;

                var standardInvoiceTypeId = model.StandardFakturaTypeId != Guid.Empty ? model.StandardFakturaTypeId : new Guid?();

                if (kunde.KundeExtensions.Any() == false)
                {
                    kunde.KundeExtensions.Add(new KundeExtension()
                    {
                        DefaultInvoiceTypeId = standardInvoiceTypeId
                    });
                }
                else
                {
                    kunde.KundeExtensions.Single().DefaultInvoiceTypeId = standardInvoiceTypeId;
                }

                rs.DC.SaveChanges();

                // Reindexer kunder
                var sm = new ElasticSearchManager(Properties.Settings.Default.ElasticSearchUrl);
                sm.IndexCustomer(kunde.Kunde_GUID);

                var kundeEditModel = BuildEditModel(kunde, rs);

                return View(kundeEditModel);
            }
        }
Пример #2
0
        public Loader()
        {
            string address  = ConfigurationManager.AppSettings["ElasticURL"];
            string username = ConfigurationManager.AppSettings["ElasticUsername"];
            string password = SimpleCryptoManager.Instance.Decrypt(ConfigurationManager.AppSettings["ElasticPassword"]);

            elasticSerchManager = new ElasticSearchManager(address, username, password);
        }
Пример #3
0
        public void Start()
        {
            List <string> listpageUrls = new List <string>();

            listpageUrls.AddRange(new[] { "https://www.zingat.com/satilik-daire",
                                          "https://www.zingat.com/satilik-isyeri",
                                          "https://www.zingat.com/satilik-arsa",
                                          "https://www.zingat.com/satilik-yazlik",
                                          "https://www.zingat.com/satilik-villa",
                                          "https://www.zingat.com/satilik-dukkan-magaza",
                                          "https://www.zingat.com/kiralik-daire",
                                          "https://www.zingat.com/kiralik-isyeri",
                                          "https://www.zingat.com/kiralik-arsa",
                                          "https://www.zingat.com/kiralik-yazlik",
                                          "https://www.zingat.com/kiralik-villa",
                                          "https://www.zingat.com/kiralik-dukkan-magaza",
                                          "https://www.zingat.com/gunluk-kiralik-daire",
                                          "https://www.zingat.com/gunluk-kiralik-rezidans",
                                          "https://www.zingat.com/gunluk-kiralik-villa" });

            foreach (var listpageUrl in listpageUrls)
            {
                for (int i = 1; i <= 1; i++)
                {
                    try
                    {
                        GetListPageUrl(listpageUrl + "?page=" + i.ToString());
                        Thread.Sleep(TimeSpan.FromSeconds(3));
                        //break;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                }
                //break;
            }

            foreach (var item in DetailPageUrlList)
            {
                try
                {
                    ElasticSearchManager elasticSearchManager = new ElasticSearchManager();
                    if (!elasticSearchManager.AnyBySiteUrl <ScrapingModelData>(new ScrapingModelData(), "scrapingmodeldata", item))
                    {
                        GetDetailPageUrl(item);
                        Thread.Sleep(TimeSpan.FromSeconds(3));
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
        }
Пример #4
0
        public IActionResult SaveXpath(IFormCollection form)
        {
            var keyValues = new SortedList <string, string>();

            foreach (var contain in form)
            {
                try
                {
                    if (contain.Key.Contains("cmb"))
                    {
                        keyValues.Add(contain.Value, form[contain.Key.Replace("cmb", "chck")]);
                    }
                }
                catch (Exception ex)
                {
                }
            }
            var list = typeof(ScrapingXpath).GetProperties().Select(s => new { p = s, a = s.GetCustomAttributes(typeof(DisplayAttribute)).First() }).ToList()
                       .Select(c => new { c.p, n = ((DisplayAttribute)c.a).Name }).ToList();
            var model = new ScrapingXpath();

            foreach (var item in list)
            {
                if (keyValues.ContainsKey(item.n))
                {
                    item.p.SetValue(model, keyValues[item.n]);
                }
            }
            model.SiteUrl = form["SiteUrl"];

            model.Id = Guid.NewGuid().ToString();
            ElasticSearchManager elasticSearchManager = new ElasticSearchManager();

            elasticSearchManager.Save(model, "scrapingxpath");

            return(null);
        }
Пример #5
0
        protected IElasticSearchManager CreateManager()
        {
            IElasticSearchManager manager = new ElasticSearchManager(GetConfig());

            return(manager);
        }
        public WindownApplication()
        {
            ViewerID         = getString("Viewer_ID", "");
            webClientManager = WebClientManager.getInstance();

            ObjCacheManager = new ObjCacheManager(this);

            elasticSearchManager = new ElasticSearchManager();

            RailDao             = new RAILDao();
            AddressDao          = new ADDRESSDao();
            PortIconDao         = new PortIconDao();
            PointDao            = new POINTDao();
            GroupRailDao        = new GROUPRAILSDao();
            SegmentDao          = new SegmentDao();
            SectionDao          = new SectionDao();
            PortDao             = new PortDao();
            VehicleDao          = new VehicleDao();
            UserDao             = new UserDao();
            UserGroupDao        = new UserGroupDao();
            UserFuncDao         = new UserFuncDao();
            FunctionCodeDao     = new FunctionCodeDao();
            CMD_OHTCDao         = new CMD_OHTCDao();
            CMD_MCSDao          = new CMD_MCSDao();
            VCMD_MCSDao         = new VCMD_MCSDao();
            PortStationDao      = new PortStationDao();
            AlarmDao            = new AlarmDao();
            MapBLL              = new MapBLL(this);
            UserBLL             = new UserBLL(this);
            OperationHistoryBLL = new OperationHistoryBLL(this);
            CmdBLL              = new CmdBLL(this);
            AlarmBLL            = new AlarmBLL(this);
            PortStationBLL      = new PortStationBLL(this);
            SegmentBLL          = new SegmentBLL(this);
            ObjCacheManager.start();
            ID = ObjCacheManager.MapId;

            LineBLL             = new LineBLL(this);
            VehicleBLL          = new VehicleBLL(this);
            SysExcuteQualityBLL = new SysExcuteQualityBLL(this);

            dBTableWatcher = new EventAction.DBTableWatcher(this);
            dBTableWatcher.initStart();
            // setEFConnectionString(ObjCacheManager.EFConnectionString);



            SysExcuteQualityQueryService = new SysExcuteQualityQueryService(this);
            //initBackgroundWork();
            //  SysExcuteQualityQueryService = new SysExcuteQualityQueryService();
            switch (WindownApplication.OHxCFormMode)
            {
            case OHxCFormMode.CurrentPlayer:
                natsManager       = new NatsManager(ID, "nats-cluster", ViewerID);
                redisCacheManager = new RedisCacheManager(ID);
                SubscriberNatsEvent();
                SubscriberDBTableWatcherEvent();
                //SysExcuteQualityQueryService.start();
                break;

            case OHxCFormMode.HistoricalPlayer:
                HistoricalReplyService = new HistoricalReplyService(this);
                //HistoricalReplyService.loadVhHistoricalInfo();
                break;
            }
            //VehicleBLL.ReguestViewerUpdate();
        }
Пример #7
0
        private void GetDetailPageUrl(string pageUrl)
        {
            Console.WriteLine(pageUrl);
            ChromeOptions chromeOptions = new ChromeOptions();

            chromeOptions.AddArgument("--headless");
            chromeOptions.AddArgument("--no-sandbox");
            chromeOptions.AddArgument("--disable-dev-shm-usage");
            chromeOptions.AddArgument("--ignore-certificate-errors");
            ScrapingModelData data = new ScrapingModelData();
            var gg = "";

            //using (var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)))
            using (var driver = new ChromeDriver("/bin", chromeOptions, TimeSpan.FromMinutes(1)))
            {
                driver.Navigate().GoToUrl(pageUrl);
                gg = driver.PageSource;


                var doc = new HtmlDocument();
                doc.LoadHtml(gg);
                data.SiteUrl  = pageUrl;
                data.Title    = doc.DocumentNode.SelectSingleNode("//*[@id='details']/div/div[4]/div/div/div/div/h1").InnerText.Trim();
                data.Price    = doc.DocumentNode.SelectSingleNode("//*[@id='details']/div/div[4]/div/div/div/div[2]/strong[2]").InnerText.Trim();
                data.Adres    = doc.DocumentNode.SelectSingleNode("//*[@id='details']/div/div[4]/div/div/div/div/div/h2").InnerText.Trim();
                data.Owner    = doc.DocumentNode.SelectSingleNode("//*[@id='details']/div/div[5]/div/div[2]/div/div/div/a").InnerText.Trim();
                data.Firm     = doc.DocumentNode.SelectSingleNode("//*[@id='details']/div/div[5]/div/div[2]/div/div/div/a[2]").InnerText.Trim();
                data.Phone    = string.Join(';', doc.DocumentNode.SelectNodes("//*[@class='contact-number-area number-area']/a").Select(x => x.Attributes["href"].Value));
                data.Property = doc.DocumentNode.SelectSingleNode("//*[@id='details']/div/div[5]/div/div/div[2]/div/div[2]").InnerHtml.Trim();

                foreach (var selectNode in doc.DocumentNode.SelectNodes("//*[@id='details']/div/div[5]/div/div/div[2]/div/div[2]/ul/li"))
                {
                    try
                    {
                        var tt = $"{selectNode.SelectSingleNode("./strong").InnerText.Trim()}:{selectNode.SelectSingleNode("./span").InnerText.Trim()},";
                        data.Propertystr += tt;
                    }
                    catch
                    {
                    }
                }

                data.Description = doc.DocumentNode.SelectSingleNode("//*[@id='detailDescription']/div/p").InnerText.Trim();
                data.Feature     = doc.DocumentNode.SelectSingleNode("//*[@id='otherFacilities']/div").InnerHtml.Trim();

                foreach (var selectNode in doc.DocumentNode.SelectNodes("//*[@id='otherFacilities']/div/div/div"))
                {
                    try
                    {
                        string tt = "";
                        if (selectNode.Attributes["class"].Value.Contains("passive"))
                        {
                            data.Featurestr += $"passive:{selectNode.InnerText.Trim()},";
                        }
                        else
                        {
                            data.Featurestr += $"active:{selectNode.InnerText.Trim()},";
                        }
                    }
                    catch (Exception e)
                    {
                    }
                }
                data.Category    = doc.DocumentNode.SelectSingleNode("//*[@id='breadcrumbContainer']/div/div/ol").InnerHtml.Trim();
                data.Categorystr = doc.DocumentNode.SelectSingleNode("//*[@id='breadcrumbContainer']/div/div/ol").InnerText.Trim();
                data.Picture     = string.Join(',', doc.DocumentNode.SelectNodes("//div[@class='gallery-container']/a[@class='gallery-item zoon-in-image']").Select(x => x.Attributes["data-lg"].Value));
                data.IsTransfer  = false;
                var lot = doc.DocumentNode.SelectSingleNode("//*[@data-locationapi='/api/locationReport']").Attributes["data-id"].Value;
                driver.Navigate().GoToUrl("https://www.zingat.com/api/locationReport?type=all&locId=" + lot);
                gg = driver.PageSource;
                doc.LoadHtml(gg);
                data.Column1 = doc.DocumentNode.InnerText;
            }
            ElasticSearchManager elasticSearchManager = new ElasticSearchManager();

            elasticSearchManager.Save(data, "scrapingmodeldata");
        }