Exemplo n.º 1
0
        public async Task StartRegisterAdv(List <long> numbers = null, int count = 0)
        {
            //if (_semaphoreSlim.CurrentCount == 0)
            //{
            //    DialogResult result;
            //    result = MessageBox.Show("برنامه در حال اجرای فرایندی دیگر می باشد و در صورت تائید فرایند قبلی متوقف خواهد شد." + "\r\nآیا فرایند قبلی متوقف شود؟", "هشدار", MessageBoxButtons.YesNo,
            //        MessageBoxIcon.Question);
            //    if (result == DialogResult.Yes)
            //        _tokenSource?.Cancel();
            //    else return;
            //}
            _tokenSource?.Cancel();
            await _semaphoreSlim.WaitAsync();

            _tokenSource = new CancellationTokenSource();

            var monitor = new PerfMonitor();
            var isLogin = false;
            await Task.Run(async() =>
            {
                try
                {
                    while (await PingHost("185.105.239.1") == false)
                    {
                        await Wait(5);
                        lstMessage.Clear();
                        lstMessage.Add("خطای اتصال به شبکه");
                        ShowBalloon("لطفا اتصال به شبکه را چک نمایید", lstMessage);
                    }

                    while (await PingHost("185.105.239.1"))
                    {
                        SimCardBusiness firstSimCardBusiness = null;
                        //اگر نامبر صفر نباشد یعنی کاربر خواسته روی شماره ای خاص آگهی بزند
                        //اگر صفر باشد روی تمام سیم کارتها داخل حلقه وایل، آگهی ثبت می شود
                        if (numbers != null && numbers.Count == 0)
                        {
                            if (!(_cls?.NiazSetting?.AdvCountInDay > 0))
                            {
                                return;
                            }

                            _driver = RefreshDriver(_driver);

                            //     MessageBox.Show(_driver.WindowHandles.Count.ToString());
                            while (!_tokenSource.IsCancellationRequested)
                            {
                                var currentIp = "";
                                while (_cls?.NiazSetting.CountAdvInIp <= await
                                       AdvertiseLogBusiness.GetAllAdvInDayFromIP(await GetLocalIpAddress(),
                                                                                 AdvertiseType.NiazKade))
                                {
                                    //ShowBalloon("پر شدن تعداد آگهی در " + await FindGateWay(),
                                    //    "سیستم در حال تعویض IP یا سایت می باشد");
                                    await SetGateway(await GetRandomGeteWay());
                                    currentIp = await GetLocalIpAddress();
                                    if (await FindGateWay() != IP_Store.IP_Mokhaberat.Value ||
                                        !(_cls?.NiazSetting.CountAdvInIp <= await
                                          AdvertiseLogBusiness.GetAllAdvInDayFromIP(await GetLocalIpAddress(),
                                                                                    AdvertiseType.NiazKade)))
                                    {
                                        continue;
                                    }
                                    if (await GoToNextSite(AdvertiseType.NiazKade, 0))
                                    {
                                        continue;
                                    }
                                    await ChangeIp();
                                    while (await GetLocalIpAddress() == null)
                                    {
                                        await Wait(10);
                                        //ShowBalloon("درحال اتصال...", "مودم مخابرات ریست شد. لطفا منتظر بمانید");
                                    }
                                    if (await GoToNextSite(AdvertiseType.NiazKade, 1))
                                    {
                                        continue;
                                    }
                                }
                                //var simCard =
                                //    await SimCardBusiness.GetNextSimCardNumberAsync((short)AdvertiseType.NiazKade, (short)_cls.NiazSetting.AdvCountInDay, await GetLocalIpAddress());
                                //if (simCard == 0) break;

                                //firstSimCardBusiness = await SimCardBusiness.GetAsync(simCard);
                                if (firstSimCardBusiness is null)
                                {
                                    break;
                                }
                                var lastUseNiaz = firstSimCardBusiness.NextUseNiazKade;

                                firstSimCardBusiness.NextUseNiazKade = DateTime.Now.AddMinutes(30);
                                await firstSimCardBusiness.SaveAsync();
                                //اگر توکن نداشت سیمکارت عوض بشه
                                //var tt = await AdvTokensBusiness.GetToken(simCard, AdvertiseType.NiazKade);
                                //var hasToken = tt?.Token ?? null;
                                //if (string.IsNullOrEmpty(hasToken)) continue;

                                var startDayOfCurrentMonthOfDateShToMiladi = Calendar.StartDayOfPersianMonth();
                                var startDayOfNextMonthOfDateShToMiladi    = Calendar.EndDayOfPersianMonth().AddDays(1);
                                //آمار آگهی های ثبت شده برای سیم کارت در ماه جاری
                                //var a1 = await AdvertiseLogBusiness.GetAllSpecialAsync(p =>
                                //    p.SimCardNumber == simCard && p.AdvType == AdvertiseType.NiazKade
                                //                               && (p.StatusCode == (short) StatusCode.Published
                                //                                   || p.StatusCode == (short) StatusCode.InPublishQueue)
                                //                               && p.DateM >= startDayOfCurrentMonthOfDateShToMiladi);
                                //var registeredAdvCountInMonth = a1.Count;
                                //if (registeredAdvCountInMonth >= _cls?.NiazSetting?.AdvCountInMonth)
                                //{
                                //    //تاریخ روز اول ماه شمسی بعد را تنظیم می کند چون تا سر ماه بعد دیگر نیازی به این سیم کارت نیست
                                //    firstSimCardBusiness.NextUseNiazKade = startDayOfNextMonthOfDateShToMiladi;
                                //    await firstSimCardBusiness.SaveAsync();
                                //    continue;
                                //}


                                ////آمار آگهی های ثبت شده امروز
                                //var currentDate = DateTime.Now.Date;
                                //var a2 = await AdvertiseLogBusiness.GetAllSpecialAsync(p =>
                                //    p.SimCardNumber == simCard && p.AdvType == AdvertiseType.NiazKade
                                //                               && (p.StatusCode == (short) StatusCode.Published
                                //                                   || p.StatusCode == (short) StatusCode.InPublishQueue
                                //                                   || p.StatusCode == (short) StatusCode.WaitForPayment)
                                //                               && p.DateM >= currentDate);
                                //var registeredAdvCountInDay = a2.Count;

                                //if (registeredAdvCountInDay >= _cls?.NiazSetting?.AdvCountInDay)
                                //{
                                //    //تاریخ فردا رو ست می کند چون تا فردا دیگه نیازی به این سیم کارت نیست
                                //    firstSimCardBusiness.NextUseNiazKade = DateTime.Today.AddDays(1);
                                //    await firstSimCardBusiness.SaveAsync();
                                //    continue;
                                //}

                                //if (await Login(simCard) == false)
                                //{
                                //    firstSimCardBusiness.NextUseNiazKade = lastUseNiaz;
                                //    await firstSimCardBusiness.SaveAsync();
                                //    continue;
                                //}

                                //اینجا به تعداد تنظیم شده در تنظیمات دیوار منهای تعداد ثبت شده قبلی، آگهی درج می کند
                                //for (var i = 0; i < _cls?.NiazSetting?.AdvCountInDay - registeredAdvCountInMonth; i++)
                                //{
                                //    var currentIp1 = "";
                                //    while (_cls?.NiazSetting.CountAdvInIp <= await
                                //               AdvertiseLogBusiness.GetAllAdvInDayFromIP(await GetLocalIpAddress(),
                                //                   AdvertiseType.NiazKade))
                                //    {
                                //        ShowBalloon("پر شدن تعداد آگهی در " + await FindGateWay(),
                                //            "سیستم در حال تعویض IP یا سایت می باشد");
                                //       await SetGateway(await GetRandomGeteWay());
                                //        currentIp1 = await GetLocalIpAddress();
                                //        var countAdvInIp1 = await
                                //            AdvertiseLogBusiness.GetAllAdvInDayFromIP(await GetLocalIpAddress(),
                                //                AdvertiseType.NiazKade);
                                //        if (!(_cls?.NiazSetting.CountAdvInIp <= countAdvInIp1)) continue;
                                //        if (await GoToNextSite(AdvertiseType.NiazKade,0)) continue;
                                //        await ChangeIp();
                                //        while (await GetLocalIpAddress() == null)
                                //        {
                                //            await Wait(10);
                                //            ShowBalloon("درحال اتصال...", "مودم مخابرات ریست شد. لطفا منتظر بمانید");
                                //        }
                                //        if (await GoToNextSite(AdvertiseType.NiazKade, 1)) continue;
                                //    }
                                //    var adv = await GetNextAdv(simCard);
                                //    if (adv == null) continue;
                                //    await RegisterAdv(adv);

                                //}
                            }
                        }
                        //اگر کاربر روی یک سیم کارت خاص می خواهد تعدادی آگهی درج کند
                        else
                        {
                            foreach (var number in numbers)
                            {
                                if (!await Login(number))
                                {
                                    continue;
                                }
                                firstSimCardBusiness = await SimCardBusiness.GetAsync(number);
                                if (firstSimCardBusiness is null)
                                {
                                    return;
                                }
                                var tt       = await AdvTokensBusiness.GetToken(number, AdvertiseType.NiazKade);
                                var hasToken = tt?.Token ?? null;
                                if (string.IsNullOrEmpty(hasToken))
                                {
                                    return;
                                }
                                firstSimCardBusiness.NextUseNiazKade = DateTime.Now.AddMinutes(30);
                                await firstSimCardBusiness.SaveAsync();
                                //اینجا به تعداد آگهی های درج شده قبلی کاری ندارد و مستیم به تعدادی که کاربر گفته آگهی درج می کند
                                for (var i = 0; i < count; i++)
                                {
                                    var currentIp = "";
                                    while (_cls?.NiazSetting.CountAdvInIp <= await
                                           AdvertiseLogBusiness.GetAllAdvInDayFromIP(await GetLocalIpAddress(),
                                                                                     AdvertiseType.NiazKade))
                                    {
                                        //ShowBalloon("پر شدن تعداد آگهی در " + await FindGateWay(),
                                        //    "سیستم در حال تعویض IP یا سایت می باشد");
                                        await SetGateway(await GetRandomGeteWay());
                                        currentIp = await GetLocalIpAddress();
                                        if (await FindGateWay() != IP_Store.IP_Mokhaberat.Value ||
                                            !(_cls?.NiazSetting.CountAdvInIp <= await
                                              AdvertiseLogBusiness.GetAllAdvInDayFromIP(await GetLocalIpAddress(),
                                                                                        AdvertiseType.NiazKade)))
                                        {
                                            continue;
                                        }
                                        await ChangeIp();
                                        while (await GetLocalIpAddress() == null)
                                        {
                                            await Wait(10);
                                            //ShowBalloon("درحال اتصال...", "مودم مخابرات ریست شد. لطفا منتظر بمانید");
                                        }
                                    }
                                    var adv = await GetNextAdv(number);
                                    if (adv == null)
                                    {
                                        continue;
                                    }
                                    await RegisterAdv(adv);
                                    //var countAdvInIp1 = await
                                    //    AdvertiseLogBusiness.GetAllAdvInDayFromIP(await GetLocalIpAddress(),
                                    //        AdvertiseType.NiazKade);
                                    //if (!(_cls?.NiazSetting.CountAdvInIp <= countAdvInIp1)) continue;
                                    //await GoToNextSite(AdvertiseType.NiazKade);
                                    //return;
                                }
                            }
                        }


                        _driver.Navigate().GoToUrl("http://www.niazkade.com/panel/myAds");

                        await Wait(5);

                        //ShowBalloon("لطفا اتصال به شبکه را چک نمایید", "خطای اتصال به شبکه");
                        continue;
                    }
                }
                catch (Exception ex)
                {
                    WebErrorLog.ErrorLogInstance.StartLog(ex);
                }
                finally
                {
                    monitor.Dispose();
                }
            });

            _semaphoreSlim.Release();
        }
Exemplo n.º 2
0
        public async Task StartRegisterAdv(List <long> numbers = null, int count = 0)
        {
            //if (SemaphoreSlim.CurrentCount == 0)
            //{
            //    DialogResult result;
            //    result = MessageBox.Show("برنامه در حال اجرای فرایندی دیگر می باشد و در صورت تائید فرایند قبلی متوقف خواهد شد." + "\r\nآیا فرایند قبلی متوقف شود؟", "هشدار", MessageBoxButtons.YesNo,
            //        MessageBoxIcon.Question);
            //    if (result == DialogResult.Yes)
            //        _tokenSource?.Cancel();
            //    else return;
            //}
            _tokenSource?.Cancel();
            //await SemaphoreSlim.WaitAsync();
            _tokenSource = new CancellationTokenSource();
            var counter = 0;
            var monitor = new PerfMonitor();
            var isLogin = false;

            try
            {
                while (await Utility.PingHost("185.105.239.1") == false)
                {
                    if (counter == 30)
                    {
                        await Utility.SetGateway(await Utility.GetRandomGeteWay());
                    }
                    await Utility.Wait(10);

                    lstMessage.Clear();
                    lstMessage.Add("خطای اتصال به شبکه");
                    Utility.ShowBalloon("لطفا اتصال به شبکه را چک نمایید", lstMessage);
                    counter++;
                }


                foreach (var t in numbers)
                {
                    //while (await Utility.PingHost("185.105.239.1"))
                    //{
                    var lstNum = new List <long> {
                        t
                    };
                    var tt = await AdvTokensBusiness.GetToken(t, AdvertiseType.NiazmandyHa);

                    var hasToken = tt?.Token ?? null;
                    if (string.IsNullOrEmpty(hasToken))
                    {
                        return;
                    }
                    if (!await Login(lstNum))
                    {
                        continue;
                    }
                    //اینجا به تعداد آگهی های درج شده قبلی کاری ندارد و مستیم به تعدادی که کاربر گفته آگهی درج می کند
                    for (var i = 0; i < count; i++)
                    {
                        //while (cls?.NiazmandyHaSetting.CountAdvInIp <= await
                        //           AdvertiseLogBusiness.GetAllAdvInDayFromIP(
                        //               await Utility.GetLocalIpAddress(),
                        //               AdvertiseType.NiazmandyHa))
                        //{
                        //    Utility.ShowBalloon("پر شدن تعداد آگهی در " + await Utility.FindGateWay(),
                        //        "سیستم در حال تعویض IP یا سایت می باشد");
                        //    await Utility.SetGateway(await Utility.GetRandomGeteWay());
                        //    var currentIp1 = await Utility.GetLocalIpAddress();
                        //    if (await Utility.FindGateWay() != IP_Store.IP_Mokhaberat.Value ||
                        //        !(cls?.NiazmandyHaSetting.CountAdvInIp <= await
                        //              AdvertiseLogBusiness.GetAllAdvInDayFromIP(
                        //                  await Utility.GetLocalIpAddress(),
                        //                  AdvertiseType.NiazmandyHa))) continue;
                        //    await Utility.ChangeIp();

                        //    while (await Utility.GetLocalIpAddress() == null)
                        //    {
                        //        if (counter == 30)
                        //            await Utility.SetGateway(await Utility.GetRandomGeteWay());
                        //        await Utility.Wait(10);
                        //        Utility.ShowBalloon("درحال اتصال...", "مودم مخابرات ریست شد. لطفا منتظر بمانید");
                        //        counter++;
                        //    }
                        //}

                        var adv = await GetNextAdv(t);

                        if (adv == null)
                        {
                            continue;
                        }
                        await RegisterAdv(adv);

                        var title = await Utility.FindGateWay();

                        var co = await AdvertiseLogBusiness.GetAllAdvInDayFromIP(await Utility.GetLocalIpAddress(),
                                                                                 AdvertiseType.NiazmandyHa);

                        lstMessage.Clear();
                        lstMessage.Add($"نوع آگهی: نیازمندیها");
                        lstMessage.Add($"IP اینترنتی: {await Utility.GetLocalIpAddress()}");
                        lstMessage.Add($"GateWay: {await Utility.FindGateWay()}");
                        lstMessage.Add($"تعداد آگهی ارسال شده: {co}");

                        Utility.ShowBalloon(title, lstMessage);
                    }

                    lstNum.Clear();
                    //}
                }
            }
            catch (Exception ex)
            {
                WebErrorLog.ErrorLogInstance.StartLog(ex);
            }
            finally
            {
                monitor.Dispose();
            }

            SemaphoreSlim.Release();
        }