예제 #1
0
        private async Task LoadData(string search = null)
        {
            try
            {
                var liat = await SimcardBussines.GetAllAsync(search);

                SimcardBindingSource.DataSource = liat.OrderBy(q => q.OwnerName).ToSortableBindingList();
            }
            catch (Exception e)
            {
                WebErrorLog.ErrorInstence.StartErrorLog(e);
            }
        }
예제 #2
0
        private async Task LoadDataAsync(bool status, string search = "")
        {
            try
            {
                var list = await SimcardBussines.GetAllAsync(search);

                Invoke(new MethodInvoker(() => simBindingSource.DataSource =
                                             list.Where(q => q.Status == status).OrderBy(q => q.Owner).ToSortableBindingList()));
            }
            catch (Exception ex)
            {
                WebErrorLog.ErrorInstence.StartErrorLog(ex);
            }
        }
예제 #3
0
        private async Task FillOperatorAsync()
        {
            try
            {
                var list = await SimcardBussines.GetAllAsync();

                cmbOperator.Items.Clear();
                cmbOperator.Items.AddRange(list?.Select(q => q.Operator)?.Distinct().ToArray());
            }
            catch (Exception ex)
            {
                WebErrorLog.ErrorInstence.StartErrorLog(ex);
            }
        }
예제 #4
0
        private async void Form1_Load(object sender, EventArgs e)
        {
            //Fill Number ComboBox
            var list1 = await SimcardBussines.GetAllAsync();
            SimcardBindingSource.DataSource = list1;

            //Fill Ads To Grid
            //var list2 = await Advertise.GetAllAsync("D:\\DivarTest");
            //SimcardAdvBindingSource.DataSource = list2;

            //Fill Divar City To Grid
            var list3 = await DivarCityBussines.GetAllAsync();
            divarCityBussinesBindingSource.DataSource = list3.ToList();
        }
예제 #5
0
        private async Task LoadData(string search = "")
        {
            try
            {
                var list = await SimcardBussines.GetAllAsync(search);

                LogInBindingSource.DataSource = list.Where(q => q.Status).ToList();
                lblCounter.Text = LogInBindingSource.Count.ToString();
            }
            catch (Exception e)
            {
                WebErrorLog.ErrorInstence.StartErrorLog(e);
            }
        }
예제 #6
0
        private void FillComboBox()
        {
            try
            {
                Invoke(new MethodInvoker(async() =>
                {
                    var list = await SimcardBussines.GetAllAsync();
                    var a    = list.Select(q => q.Operator).Distinct().ToList();
                    cmbOperator.DataSource = a;

                    var divarCat1 = await AdvCategoryBussines.GetAllAsync(Guid.Empty, AdvertiseType.Divar);
                    divarCat1     = divarCat1.OrderBy(q => q.Name).ToList();
                    PostCat1BindingSource.DataSource = divarCat1;


                    var dCity = await DivarCityBussines.GetAllAsync();
                    dCity     = dCity.OrderBy(q => q.Name).ToList();
                    DivarCBindingSource.DataSource = dCity;
                    cmbDivarCity.SelectedIndex     = 0;

                    var shCity = await SheypoorCityBussines.GetAllAsync();
                    shCity     = shCity.OrderBy(q => q.Name).ToList();
                    SheypoorCBindingSource.DataSource = shCity;
                    cmbSheypoorCity.SelectedIndex     = 0;

                    var divarChat1 = await AdvCategoryBussines.GetAllAsync(Guid.Empty, AdvertiseType.Divar);
                    divarChat1     = divarChat1.OrderBy(q => q.Name).ToList();
                    DivarChatBindingSource1.DataSource = divarChat1;

                    var sheypoorChat1 = await AdvCategoryBussines.GetAllAsync(Guid.Empty, AdvertiseType.Sheypoor);
                    sheypoorChat1     = sheypoorChat1.OrderBy(q => q.Name).ToList();
                    SheypoorChatBindingSource1.DataSource = sheypoorChat1;

                    var postCity = await DivarCityBussines.GetAllAsync();
                    postCity     = postCity.OrderBy(q => q.Name).ToList();
                    PostCityBindingSource.DataSource = postCity;
                    cmbPostCity.SelectedIndex        = 0;
                }));
            }
            catch (Exception e)
            {
                WebErrorLog.ErrorInstence.StartErrorLog(e);
            }
        }
예제 #7
0
        private void frmSimcard_Main_Load(object sender, EventArgs e)
        {
            Task.Run(async() =>
            {
                FillComboBox();
                Set_Data();
                var sim     = await SimcardBussines.GetAllAsync();
                var _source = new AutoCompleteStringCollection();

                foreach (var item in sim)
                {
                    _source.Add(item.OwnerName);
                }

                Invoke(new MethodInvoker(() =>
                {
                    txtOwner.AutoCompleteMode         = AutoCompleteMode.SuggestAppend;
                    txtOwner.AutoCompleteSource       = AutoCompleteSource.CustomSource;
                    txtOwner.AutoCompleteCustomSource = _source;
                }));
            });
        }
예제 #8
0
        public static async Task ManageAdvSend(SettingBussines clsSetting)
        {
            try
            {
                var tokenSource = new CancellationTokenSource();

                SimcardBussines firstSimCardBusiness = null;
                var             list = await SimcardBussines.GetAllAsync();

                list = list.OrderBy(q => q.NextUse).Where(q => q.Status).ToList();
                foreach (var simCard in list)
                {
                    while (!await Utility.PingHost("www.google.com"))
                    {
                        //خطا در برقراری اتصال به اینترنت
                        await Utility.Wait(10);

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

                    if (simCard.isSendPostToTelegram)
                    {
                        var city = DivarCityBussines.GetAsync(simCard.CityForGetPost ?? Guid.Empty)?.Name ?? "مشهد";
                        var cat1 = AdvCategoryBussines.Get(simCard.DivarPostCat1 ?? Guid.Empty)?.Name ?? "خدمات";
                        var cat2 = AdvCategoryBussines.Get(simCard.DivarPostCat2 ?? Guid.Empty)?.Name ??
                                   "آرایشگری و زیبایی";
                        var cat3   = AdvCategoryBussines.Get(simCard.DivarPostCat3 ?? Guid.Empty)?.Name ?? "";
                        var chatID = simCard.ChannelForSendPost ?? "@Test2_2211201";
                        var divar  = await DivarAdv.GetInstance();

                        await divar.GetPost(simCard.Number, cat1, cat2, cat3
                                            , city, simCard.PostCount ?? 5, chatID, simCard.DescriptionForPost ?? "",
                                            simCard.SMS_Description);
                    }

                    if (simCard.IsSendAdv)
                    {
                        try
                        {
                            //کنترل شماره خروجی
                            if (simCard.Number == 0)
                            {
                                lstMessage.Clear();
                                lstMessage.Add("پر شدن تعداد آگهی در IP");
                                Utility.ShowBalloon("پر شدن تعداد آگهی در " + await Utility.FindGateWay(), lstMessage);
                                continue;
                            }

                            //کنترل تعداد آگهی ارسال شده در هر IP
                            while (clsSetting?.CountAdvInIP <=
                                   AdvertiseLogBussines.GetAllAdvInDayFromIP(await Utility.GetLocalIpAddress()))
                            {
                                await Utility.Wait(20);

                                lstMessage.Clear();
                                lstMessage.Add("پر شدن تعداد آگهی");
                                Utility.ShowBalloon("پر شدن تعداد آگهی در " + await Utility.FindGateWay(), lstMessage);
                                await SendChat(clsSetting, simCard);
                            }

                            firstSimCardBusiness = await SimcardBussines.GetAsync(simCard.Number);

                            if (firstSimCardBusiness is null)
                            {
                                continue;
                            }

                            var lastUse = firstSimCardBusiness.NextUse;
                            var startDayOfCurrentMonthOfDateShToMiladi = DateConvertor.StartDayOfPersianMonth();
                            var startDayOfNextMonthOfDateShToMiladi    = DateConvertor.EndDayOfPersianMonth().AddDays(1);
                            //آمار آگهی های ثبت شده برای سیم کارت در ماه جاری
                            var a1 = await AdvertiseLogBussines.GetAllAsync();

                            a1 = a1.Where(p => p.SimCardNumber == simCard.Number &&
                                          (p.StatusCode ==
                                           StatusCode
                                           .Published ||
                                           p.StatusCode ==
                                           StatusCode
                                           .InPublishQueue ||
                                           p.StatusCode ==
                                           StatusCode
                                           .WaitForPayment) &&
                                          p.DateM >=
                                          startDayOfCurrentMonthOfDateShToMiladi).ToList();

                            var registeredAdvCount = a1.Count;
                            if (registeredAdvCount >= clsSetting?.CountAdvInMounth)
                            {
                                //تاریخ روز اول ماه شمسی بعد را تنظیم می کند چون تا سر ماه بعد دیگر نیازی به این سیم کارت نیست
                                firstSimCardBusiness.NextUse = startDayOfNextMonthOfDateShToMiladi;
                                await firstSimCardBusiness.SaveAsync();

                                lstMessage.Clear();
                                lstMessage.Add(
                                    $"سیمکارت {simCard.Number} به دلیل پر بودن آگهی ها در ماه موفق به ارسال آگهی نشد");
                                Utility.ShowBalloon("عدم ارسال آگهی", lstMessage);
                                await SendChat(clsSetting, simCard);

                                continue;
                            }

                            //آمار آگهی های ثبت شده امروز
                            var currentDate = DateTime.Now.Date;
                            var a2          = await AdvertiseLogBussines.GetAllAsync();

                            a2 = a2.Where(p =>
                                          p.SimCardNumber == simCard.Number &&
                                          (p.StatusCode == StatusCode.Published ||
                                           p.StatusCode == StatusCode.InPublishQueue ||
                                           p.StatusCode == StatusCode.WaitForPayment) &&
                                          p.DateM >= currentDate).ToList();
                            registeredAdvCount = a2.Count;
                            if (registeredAdvCount >= clsSetting?.CountAdvInDay)
                            {
                                //تاریخ فردا رو ست می کند چون تا فردا دیگه نیازی به این سیم کارت نیست
                                firstSimCardBusiness.NextUse = DateTime.Today.AddDays(1);
                                await firstSimCardBusiness.SaveAsync();

                                lstMessage.Clear();
                                lstMessage.Add(
                                    $"سیمکارت {simCard.Number} به دلیل پرپودن آگهی ها در روز موفق به ارسال آگهی نشد");
                                Utility.ShowBalloon("عدم ارسال آگهی", lstMessage);
                                await SendChat(clsSetting, simCard);

                                continue;
                            }

                            var divar = await DivarAdv.GetInstance();

                            await divar.StartRegisterAdv(simCard);

                            simCard.NextUse = DateTime.Now.AddMinutes(30);
                            await simCard.SaveAsync();
                            await Wait(2);
                        }
                        catch (Exception e)
                        {
                        }
                    }
                    if (simCard.IsSendAdvSheypoor)
                    {
                        //کنترل شماره خروجی
                        if (simCard.Number == 0)
                        {
                            lstMessage.Clear();
                            lstMessage.Add("پر شدن تعداد آگهی در IP");
                            Utility.ShowBalloon("پر شدن تعداد آگهی در " + await Utility.FindGateWay(), lstMessage);
                            continue;
                        }

                        //کنترل تعداد آگهی ارسال شده در هر IP
                        while (clsSetting?.CountAdvInIP <=
                               AdvertiseLogBussines.GetAllAdvInDayFromIP(await Utility.GetLocalIpAddress()))
                        {
                            await Utility.Wait(20);

                            lstMessage.Clear();
                            lstMessage.Add("پر شدن تعداد آگهی");
                            Utility.ShowBalloon("پر شدن تعداد آگهی در " + await Utility.FindGateWay(), lstMessage);
                            await SendChat(clsSetting, simCard);
                        }

                        firstSimCardBusiness = await SimcardBussines.GetAsync(simCard.Number);

                        if (firstSimCardBusiness is null)
                        {
                            continue;
                        }

                        var lastUse = firstSimCardBusiness.NextUse;
                        var card1   = simCard.Number;
                        var startDayOfCurrentMonthOfDateShToMiladi = DateConvertor.StartDayOfPersianMonth();
                        var startDayOfNextMonthOfDateShToMiladi    = DateConvertor.EndDayOfPersianMonth().AddDays(1);
                        //آمار آگهی های ثبت شده برای سیم کارت در ماه جاری
                        var a1 = await AdvertiseLogBussines.GetAllAsync();

                        a1 = a1.Where(p => p.SimCardNumber == card1 &&
                                      (p.StatusCode ==
                                       StatusCode
                                       .Published ||
                                       p.StatusCode ==
                                       StatusCode
                                       .InPublishQueue ||
                                       p.StatusCode ==
                                       StatusCode
                                       .WaitForPayment) &&
                                      p.DateM >=
                                      startDayOfCurrentMonthOfDateShToMiladi).ToList();

                        var registeredAdvCount = a1.Count;
                        if (registeredAdvCount >= clsSetting?.CountAdvInMounth)
                        {
                            //تاریخ روز اول ماه شمسی بعد را تنظیم می کند چون تا سر ماه بعد دیگر نیازی به این سیم کارت نیست
                            firstSimCardBusiness.NextUse = startDayOfNextMonthOfDateShToMiladi;
                            await firstSimCardBusiness.SaveAsync();

                            lstMessage.Clear();
                            lstMessage.Add(
                                $"سیمکارت {simCard.Number} به دلیل پر بودن آگهی ها در ماه موفق به ارسال آگهی نشد");
                            Utility.ShowBalloon("عدم ارسال آگهی", lstMessage);
                            await SendChat(clsSetting, simCard);

                            continue;
                        }

                        //آمار آگهی های ثبت شده امروز
                        var currentDate = DateTime.Now.Date;
                        var a2          = await AdvertiseLogBussines.GetAllAsync();

                        a2 = a2.Where(p =>
                                      p.SimCardNumber == card1 &&
                                      (p.StatusCode == StatusCode.Published ||
                                       p.StatusCode == StatusCode.InPublishQueue ||
                                       p.StatusCode == StatusCode.WaitForPayment) &&
                                      p.DateM >= currentDate).ToList();
                        registeredAdvCount = a2.Count;
                        if (registeredAdvCount >= clsSetting?.CountAdvInDay)
                        {
                            //تاریخ فردا رو ست می کند چون تا فردا دیگه نیازی به این سیم کارت نیست
                            firstSimCardBusiness.NextUse = DateTime.Today.AddDays(1);
                            await firstSimCardBusiness.SaveAsync();

                            lstMessage.Clear();
                            lstMessage.Add(
                                $"سیمکارت {simCard.Number} به دلیل پرپودن آگهی ها در روز موفق به ارسال آگهی نشد");
                            Utility.ShowBalloon("عدم ارسال آگهی", lstMessage);
                            await SendChat(clsSetting, simCard);

                            continue;
                        }

                        var shey = await SheypoorAdv.GetInstance();

                        await shey.StartRegisterAdv(simCard);

                        simCard.NextUse = DateTime.Now.AddMinutes(30);
                        await simCard.SaveAsync();
                        await Wait(2);
                    }

                    if (simCard.IsSendChat)
                    {
                        await SendChat(clsSetting, simCard);
                    }


                    CloseAllChromeWindows();



                    simCard.NextUse = DateTime.Now.AddHours(1);
                    await simCard.SaveAsync();
                }
                await Utility.Wait(10);

                lstMessage.Clear();
                lstMessage.Add("لیست کاملا پیمایش شد");
                Utility.ShowBalloon("اتمام یک دور کامل از پیمایش سیمکارت ها", lstMessage);
                await UpdateAdvStatus(clsSetting?.DayCountForUpdateState ?? 10);

                CloseAllChromeWindows();
            }
            catch (Exception ex)
            {
                WebErrorLog.ErrorInstence.StartErrorLog(ex);
            }
        }