예제 #1
0
        private async Task RegisterAdv(AdvertiseLogBusiness adv)
        {
            var ret     = new ReturnedSaveFuncInfo();
            var monitor = new PerfMonitor();

            try
            {
                adv.AdvType = AdvertiseType.NiazKade;
                _driver     = RefreshDriver(_driver);
                _driver.Navigate().GoToUrl("http://www.niazkade.com/new");
                await Wait(4);



                //کلیک روی ساب کتگوری 1
                if (string.IsNullOrEmpty(adv.SubCategory1))
                {
                    adv.SubCategory1 = _cls?.NiazSetting?.Category1;
                }
                _driver.FindElements(By.ClassName("category-list")).FirstOrDefault(q => q.Text == adv.SubCategory1)?.Click();

                await Wait(2);



                //کلیک روی ساب کتگوری2
                if (string.IsNullOrEmpty(adv.SubCategory2))
                {
                    adv.SubCategory2 = _cls?.NiazSetting?.Category2;
                }
                _driver.FindElements(By.ClassName("category-list")).FirstOrDefault(q => q.Text == adv.SubCategory2)?.Click();
                await Wait();


                //درج عکسها

                _driver.FindElement(By.XPath("//input[@type='file']")).SendKeys(adv.ImagesPath);



                //درج عنوان آگهی
                _driver.FindElement(By.Id("title")).SendKeys("");
                _driver.FindElement(By.Id("title")).SendKeys(adv.Title);
                await Wait();


                //انتخاب شهر
                _driver.FindElements(By.ClassName("vs__search")).FirstOrDefault()?.SendKeys(adv.State + "\n");
                await Wait(2);

                _driver.FindElements(By.ClassName("vs__search")).LastOrDefault()?.SendKeys(adv.City + "\n");
                //await Wait();



                //درج محتوای آگهی
                _driver.FindElement(By.Id("description"))
                .SendKeys("");
                _driver.FindElement(By.Id("description"))
                .SendKeys(adv.Content.Replace('(', '<').Replace(')', '>'));
                //await Wait();



                //درج قیمت
                _driver.FindElement(By.Id("price"))?.SendKeys("");
                _driver.FindElement(By.Id("price"))?.SendKeys(adv.Price.ToString());

                await Wait();

                _driver.FindElement(By.Id("phone_number"))?.SendKeys("");
                _driver.FindElement(By.Id("phone_number"))?.SendKeys("0" + adv.SimCardNumber.ToString());

                await Wait(2);

                //کلیک روی دکمه ثبت آگهی


                _driver.FindElements(By.TagName("button")).FirstOrDefault(q => q.Text == "ثبت اگهی")
                ?.Click();

                //اگر آگهی با موفقیت ثبت شود لینک مدیریت آگهی ذخیره می شود
                await Wait(2);


                adv.URL        = _driver.Url;
                adv.UpdateDesc = @"در صف انتشار";
                adv.AdvStatus  = @"در صف انتشار";
                adv.StatusCode = (short)StatusCode.InPublishQueue;
                adv.AdvType    = AdvertiseType.NiazKade;
                adv.IP         = await GetLocalIpAddress();

                await adv.SaveAsync();

                var sim = await SimCardBusiness.GetAsync(adv.SimCardNumber);

                sim.DivarModified = DateTime.Now;
                await sim.SaveAsync();

                //بعد از درج آگهی در دیتابیس لاگ می شود
            }
            catch (Exception ex)
            {
                // MessageBox.Show(@"در هنگام ثبت آگهی زیر خطا رخ داد\r\n" + adv.Adv + @"\r\n" + ex.Message);
                WebErrorLog.ErrorLogInstance.StartLog(ex);
                ret.AddReturnedValue(ex);
            }
            finally { monitor.Dispose(); }
        }
예제 #2
0
        private async Task RegisterAdv(AdvertiseLogBusiness adv)
        {
            var ret     = new ReturnedSaveFuncInfo();
            var monitor = new PerfMonitor();

            try
            {
                adv.AdvType = AdvertiseType.NiazmandyHa;
                _driver     = Utility.RefreshDriver(_driver);
                _driver.Navigate().GoToUrl("https://niazmandyha.ir/newAd");
                await Utility.Wait();

                //درج عکسها
                _driver.FindElement(By.XPath("//input[@type='file']")).SendKeys(adv.ImagesPath);

                //درج عنوان آگهی
                _driver.FindElement(By.Name("title")).SendKeys("");
                _driver.FindElement(By.Name("title")).SendKeys(adv.Title);


                //کلیک کردن روی کتگوری اصلی
                _driver.FindElements(By.Name("category")).FirstOrDefault()?.Click();
                await Utility.Wait();

                //کلیک روی ساب کتگوری 1
                if (string.IsNullOrEmpty(adv.SubCategory1))
                {
                    adv.SubCategory1 = cls?.NiazmandyHaSetting?.Category1;
                }
                _driver.FindElements(By.TagName("option")).FirstOrDefault(q => q.Text == adv.SubCategory1)?.Click();

                await Utility.Wait(1);



                //درج قیمت

                _driver.FindElement(By.Name("cost"))?.SendKeys("");
                _driver.FindElement(By.Name("cost"))?.SendKeys(adv.Price.ToString());

                await Utility.Wait();


                //درج محتوای آگهی
                var thread = new Thread(() => Clipboard.SetText(adv.Content.Replace('(', '<').Replace(')', '>')));
                thread.SetApartmentState(ApartmentState.STA);
                thread.Start();

                var t = _driver.FindElement(By.TagName("iframe"));
                t.Click();
                await Utility.Wait(1);

                t.SendKeys(OpenQA.Selenium.Keys.Control + "v");
                var thread1 = new Thread(Clipboard.Clear);
                thread1.SetApartmentState(ApartmentState.STA);
                thread1.Start();


                //انتخاب شهر
                await Utility.Wait();

                _driver.FindElement(By.Name("state")).Click();
                await Utility.Wait();

                _driver.FindElements(By.TagName("option"))?.FirstOrDefault(q => q.Text == adv.State)?.Click();
                await Utility.Wait(1);

                _driver.FindElement(By.Name("city")).Click();
                await Utility.Wait();

                var cc = _driver.FindElements(By.TagName("option")).FirstOrDefault(q => q.Text == adv.City) ??
                         _driver.FindElements(By.TagName("option")).LastOrDefault();
                await Utility.Wait();

                cc?.Click();


                //کلیک روی دکمه ثبت آگهی
                await Utility.Wait(2);

                _driver.FindElements(By.TagName("button")).FirstOrDefault(q => q.Text == "ثبت آگهی")
                ?.Click();



                //اگر آگهی با موفقیت ثبت شود لینک مدیریت آگهی ذخیره می شود
                await Utility.Wait();

                await Utility.Wait(2);

                adv.URL = await MakeUrl(_driver.Url);

                adv.UpdateDesc = @"در صف انتشار";
                adv.AdvStatus  = @"در صف انتشار";
                adv.StatusCode = (short)StatusCode.InPublishQueue;
                adv.AdvType    = AdvertiseType.NiazmandyHa;
                adv.IP         = await Utility.GetLocalIpAddress();

                adv.SubCategory2 = "-";
                await adv.SaveAsync();

                var sim = await SimCardBusiness.GetAsync(adv.SimCardNumber);

                sim.NiazmandyHaModified = DateTime.Now;
                await sim.SaveAsync();

                //بعد از درج آگهی در دیتابیس لاگ می شود
            }
            catch (Exception ex)
            {
                // MessageBox.Show(@"در هنگام ثبت آگهی زیر خطا رخ داد\r\n" + adv.Adv + @"\r\n" + ex.Message);
                WebErrorLog.ErrorLogInstance.StartLog(ex);
                ret.AddReturnedValue(ex);
            }
            finally { monitor.Dispose(); }
        }