public static async void SyncUpAsync()
        {
            UserReportDatabaseHelper reportDatabaseHelper = new UserReportDatabaseHelper();

            List <UserReport> userReports = reportDatabaseHelper.GetAllReport();

            var client = new HttpClient();

            client.BaseAddress = new Uri("https://test.primasvn.net/ata-api/UserReport/Action");
            foreach (UserReport user in userReports)
            {
                if (!user.IsSync)
                {
                    string jsonData = "{\"PhoneNumber\" : \"" + user.phoneNumber + "\",\"ReportDate\":\"" + user.reportDate.Month + "/" + user.reportDate.Day + "/" + user.reportDate.Year + " " + user.reportDate.Hour + ":" + user.reportDate.Minute + ":" + user.reportDate.Second + "\", \"DeleteFlag\":1 ,\"ReporterId\":" + user.reporterID + "}";


                    try
                    {
                        var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
                        HttpResponseMessage response = await client.PostAsync("", content);

                        var result = await response.Content.ReadAsStringAsync();

                        reportDatabaseHelper.UpdateFlag(user);
                    }
                    catch (Exception er)
                    {
                    }
                }
            }
        }
Exemplo n.º 2
0
        // LẤY LẠI DỮ LIỆU TẠI DB
        private void LoadData()
        {
            try
            {
                reportDatabaseHelper = new UserReportDatabaseHelper();

                var users = reportDatabaseHelper.GetAllReport();
                lv_UserReport.ItemsSource = users;
            }
            catch {
            }

            try
            {
                //LẤY DANH BẠ
                List <PhoneContact> phoneContacts = ContactService_AndroidManager.Current.GetAllContacts();
                contactStackupHelper = new ContactStackupHelper();
                List <Contact> list = ContactsAdapterManager.Current.GetCurrentsConntact();
                list.Reverse();

                //XÓA NHỮNG SỐ THUỘC DANH BẠ RA KHỎI LỊCH SỬ
                //CỰC KỲ LƯU Ý VIỆC XỬ LÝ ĐẦU SỐ
                for (int i = 0; i < phoneContacts.Count; i++)
                {
                    for (int j = 0; j < list.Count; j++)
                    {
                        if (phoneContacts[i].PhoneNumber.Replace(" ", string.Empty).Replace("-", string.Empty).Equals(list[j].Number))
                        {
                            list.RemoveAt(j);
                            j--;
                        }
                    }
                }

                lv_CallLog.ItemsSource = contactStackupHelper.ConvertToStackUp(list);
            }
            catch (Exception ex)
            {
                Thread.Sleep(500);
                LoadData();
            }
        }
    public void ManualReport(string incommingNumber)
    {
        // MANUAL CREATE CONNECTION
        Android_SQLite   android_SQLite = new Android_SQLite();
        SQLiteConnection connection     = android_SQLite.GetConnection();

        reportDatabaseHelper = new UserReportDatabaseHelper("" +
                                                            "IF_WE_ADD_THIS_TEXT_OUR_CLASS_WILL_" +
                                                            "USE_A_DEFALT_CONSTRUCTOR_WITHOUT_PLATFORM_ERROR" +
                                                            "WHEN_RUNNING_IN_BACKGROUND");

        // MANUAL ADD CONNECT FOR THIS CLASS
        reportDatabaseHelper.connection = connection;
        reportDatabaseHelper.CreateTable();

        UserReport report = new UserReport();

        report.phoneNumber = incommingNumber;
        report.reportDate  = DateTime.Now;
        report.IsSync      = false;
        reportDatabaseHelper.AddReport(report);
    }
Exemplo n.º 4
0
        void OnButtonClicked(object sender, EventArgs args)
        {
            if (string.IsNullOrEmpty(txtSDT.Text))
            {
                return;
            }
            if (isPhoneNumber(txtSDT.Text))
            {
                report = new UserReport();
                reportDatabaseHelper = new UserReportDatabaseHelper();

                report.phoneNumber = txtSDT.Text;
                report.reportDate  = DateTime.Now;
                report.IsSync      = false;
                reportDatabaseHelper.AddReport(report);
                CloseAllPopup();
            }
            else
            {
                DisplayAlert("Error", "Wrong fortmat!!!", "OK");
            }
        }
        // THƯƠNG THỨC OVERRIDE NÀY SẼ ĐƯỢC THỰC THI KỂ CẢ APP LÚC KHÔNG CHẠY
        public override void OnReceive(Context context, Intent intent)
        {
            try
            {
                // MANUAL CREATE CONNECTION FOR SETTING
                Android_SQLite android_SQLite = new Android_SQLite();
                connection            = android_SQLite.GetConnection();
                settingDatabaseHelper = new SettingDatabaseHelper("" +
                                                                  "IF_WE_ADD_THIS_TEXT_OUR_CLASS_WILL_" +
                                                                  "USE_A_DEFALT_CONSTRUCTOR_WITHOUT_PLATFORM_ERROR" +
                                                                  "WHEN_RUNNING_IN_BACKGROUND");
                // MANUAL ADD CONNECT FOR THIS CLASS
                settingDatabaseHelper.connection = connection;
                settingDatabaseHelper.CreateTable();
                isEnale        = settingDatabaseHelper.GetKeyValue(SystemKey.IS_ENABLE);
                isNotification = settingDatabaseHelper.GetKeyValue(SystemKey.IS_NOTIFICATION);
            }
            catch
            {
            }


            // LẤY DANH SÁCH REPORT MỖI LẦN ĐƯỢC INVOKE
            try
            {
                // MANUAL CREATE CONNECTION
                Android_SQLite android_SQLite = new Android_SQLite();
                connection           = android_SQLite.GetConnection();
                reportDatabaseHelper = new UserReportDatabaseHelper("" +
                                                                    "IF_WE_ADD_THIS_TEXT_OUR_CLASS_WILL_" +
                                                                    "USE_A_DEFALT_CONSTRUCTOR_WITHOUT_PLATFORM_ERROR" +
                                                                    "WHEN_RUNNING_IN_BACKGROUND");

                // MANUAL ADD CONNECT FOR THIS CLASS
                reportDatabaseHelper.connection = connection;
                reportDatabaseHelper.CreateTable();
                reports = reportDatabaseHelper.GetAllReport();

                //MANUAL ADD CONNECT FOR THIS Telemarketer
                connection = android_SQLite.GetConnection();
                telemarketerDatabaseHelper = new TelemarketerDatabaseHelper("" +
                                                                            "IF_WE_ADD_THIS_TEXT_OUR_CLASS_WILL_" +
                                                                            "USE_A_DEFALT_CONSTRUCTOR_WITHOUT_PLATFORM_ERROR" +
                                                                            "WHEN_RUNNING_IN_BACKGROUND");
                telemarketerDatabaseHelper.connection = connection;
                telemarketerDatabaseHelper.CreateTable();
                telemarketers = telemarketerDatabaseHelper.GetAllTelemarketer();
            }
            catch
            {
            }

            // Toast.MakeText(context, "EX: " + reportDatabaseHelper.exceptionError, ToastLength.Short).Show();



            // LẤY DANH BẠ LÊN
            // MỤC ĐÍCH ĐỂ SO SÁNH NÊU KHÔNG CÓ Ở TRONG DANH BẠ THÌ MỚI BLOCK
            try
            {
                contactServiceAndroid = new ContactService_Android();
                phoneContacts         = contactServiceAndroid.GetAllContacts();
            }
            catch
            {
                Toast.MakeText(context, "ERROR WHEN GET CONTACT", ToastLength.Short).Show();
            }


            #region BLOCKING
            if (intent.Extras != null)
            {
                if (!isEnale)
                {
                    return;
                }
                string state = intent.GetStringExtra(TelephonyManager.ExtraState);
                // TRÍCH XUẤT SỐ ĐIỆN THOẠI GỌI ĐÊN (GỌI ĐI)
                incomingNumber = intent.GetStringExtra(TelephonyManager.ExtraIncomingNumber);
                //   incomingNumber = "6505551212";
                // CUỘC GỌI ĐẾN
                if (state.Equals(TelephonyManager.ExtraStateRinging))
                {
                    isIcomingCall = true;

                    //KIẾM TRA XEM CÓ PHẢI LÀ SỐ ĐIỆN THOẠI TRONG DANH BẠ KHÔNG?
                    foreach (PhoneContact phone in phoneContacts)
                    {
                        if (isTheSame(incomingNumber, phone.PhoneNumber))
                        {
                            isInPhonebook = true;
                            //NẰM TRONG PHONEBOOK THÌ KHÔNG CẦN KIỂM TRA NỮA.
                            return;
                        }
                    }
                    // KIỂM TRA XEM CÓ PHẢI LÀ SỐ TRONG DANH SÁCH BLOCK HAY KHÔNG?
                    foreach (UserReport report in reports)
                    {
                        if (incomingNumber.Equals(report.phoneNumber))
                        {
                            StopACall(context);
                            isBlocking = true;
                            return;
                        }
                    }

                    //Toast.MakeText(context, reports.Count, ToastLength.Long).Show();

                    // KIỂM TRA XEM CÓ PHẢI LÀ SỐ TRONG DANH SÁCH Telemarketer HAY KHÔNG?
                    foreach (Telemarketer telemarketer in telemarketers)
                    {
                        if (incomingNumber.Equals(telemarketer.phoneNumber))
                        {
                            StopACall(context);
                            isBlocking = true;
                            return;
                        }
                    }
                }
                if (state.Equals(TelephonyManager.ExtraStateOffhook))
                {
                    isIcomingCall = false;
                    return;
                }


                // CUỘC GỌI BỊ DẬP MÁY - KỂ CẢ VIỆC GỌI CHO NGƯỜI KHÁC TẮT
                if (state.Equals(TelephonyManager.ExtraStateIdle))
                {
                    if (isInPhonebook)
                    {
                        return;
                    }

                    if (isBlocking && isIcomingCall)
                    {
                        CreateNotification(incomingNumber, context);
                        isBlocking = false;
                        return;
                    }

                    if (!isIcomingCall)
                    {
                        return;
                    }


                    // TẠO RA THÔNG BÁO REPORT NẾU NÓ LÀ MỘT SỐ KHÔNG BỊ BLOCK, KHÔNG NẰM TRONG DANH BẠ VÀ LÀ CUỘC GỌI ĐẾN
                    CreateNotification_Report(incomingNumber, context);
                    isBlocking    = false;
                    isIcomingCall = false;
                    isInPhonebook = false;
                }
            }
            #endregion
        }