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(); }
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(); }