using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; using Xamarin.Forms.Xaml; using Microsoft.AppCenter; using Microsoft.AppCenter.Analytics; using Microsoft.AppCenter.Crashes; using System.Collections.ObjectModel; using System.Net.Http; using System.Net.Http.Headers; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Text.RegularExpressions; using System.Net; using Xamarin.Essentials; using Syncfusion.SfPicker.XForms; using System.Data.SqlClient; using System.Data; using System.Threading; namespace Jafaria { [XamlCompilation(XamlCompilationOptions.Compile)] public partial class Activate : ContentPage { ApplicationMessaging AppMessaging = new ApplicationMessaging(); SqlConnection sql_connection; SqlCommand sql_command; SqlDataReader sql_reader; // SqlDataAdapter sql_adapter; // DataSet data_set; // DataTable data_table; string mobile; string sms_message; string activation_pin; StringBuilder body; string email_regex = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"; // string email_address; public Activate(string email) { InitializeComponent(); // DependencyService.Get().LogEvent(this.Title); Analytics.TrackEvent(this.Title); NavigationPage.SetHasNavigationBar(this, true); NavigationPage.SetBackButtonTitle(this, null); ((NavigationPage)Application.Current.MainPage).BarBackgroundColor = Color.Black; ((NavigationPage)Application.Current.MainPage).BarTextColor = Color.White; if (!string.IsNullOrWhiteSpace(email)) { txtSignupActivationEmailAddress.Text = email; ContentViewActivateEmailAddress.IsVisible = false; ContentViewActivatePIN.IsVisible = true; } else { ContentViewActivatePIN.IsVisible = false; ContentViewActivateEmailAddress.IsVisible = true; } } async void btnActivateGeneratePIN_Clicked(object sender, System.EventArgs e) { if (string.IsNullOrWhiteSpace(txtSignupActivationEmailAddress.Text)) { await DisplayAlert("خطأ", "يرجى كتابة البريد الالكتروني", "تصحيح"); return; } if (!Regex.IsMatch(txtSignupActivationEmailAddress.Text, email_regex, RegexOptions.IgnoreCase)) { await DisplayAlert("خطأ", "البريد الالكتروني غير صحيح", "تصحيح"); return; } btnActivateGeneratePIN.IsVisible = false; loadingActivationEmailAddress.IsVisible = true; using (var sql_connection = new SqlConnection("Server=myserver.com; Database=myDB; User Id=myUser; Password=myPassword;")) { sql_command = new SqlCommand("sp_generate_activation_pin", sql_connection); sql_command.CommandType = CommandType.StoredProcedure; sql_command.Parameters.Add(new SqlParameter("@email", txtSignupActivationEmailAddress.Text)); await sql_connection.OpenAsync(); using (var sql_reader = await sql_command.ExecuteReaderAsync(CommandBehavior.CloseConnection)) { while (sql_reader.Read()) { if (Convert.ToString(sql_reader["result"]) == "EXISTS") { Analytics.TrackEvent(this.Title, new Dictionary { { "حالة التسجيل", "تم العثور على الحساب" } }); // await DisplayAlert("تهانينا", "تم تفعيل حسابكم وبإمكانكم الآن الدخول والاستفادة من كافة الخدمات الالكترونية", "موافق"); // await DisplayAlert("تهانينا", "تم تفعيل حسابكم وبإمكانكم الآن الدخول والاستفادة من كافة الخدمات الالكترونية", "موافق"); activation_pin = Convert.ToString(sql_reader["activation_pin"]); sms_message = "السلام عليكم " + Convert.ToString(sql_reader["first_name"]) + ". "; sms_message += "يرجى استخدام الرمز " + activation_pin + " "; sms_message += "لتفعيل حسابكم على تطبيق الأوقاف الجعفرية."; AppMessaging.SendSMS(Convert.ToString(sql_reader["mobile"]), sms_message); body = new StringBuilder(); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine("

هذه الرسالة تم إرسالها باستخدام التطبيق الرسمي للأوقاف الجعفرية لذا يرجى عدم الرد عليها

"); body.AppendLine("

"); body.AppendLine("السلام عليكم " + Convert.ToString(sql_reader["first_name"]) + "

"); body.AppendLine("بناء على طلبكم قمنا بإعادة إرسال رمز التفعيل الخاص بتطبيق الأوقاف الجعفرية لهاتفكم النقال.

"); body.AppendLine("يرجى استخدام رمز التفعيل الذي تم إرساله لتفعيل الحساب..

"); body.AppendLine("

"); body.AppendLine("مع تحيات
"); body.AppendLine("

"); body.AppendLine("الأوقاف الجعفرية في دبي"); body.AppendLine(""); body.AppendLine(""); AppMessaging.SendEmail(Convert.ToString(sql_reader["email_address"]), Convert.ToString(sql_reader["first_name"]) + " " + Convert.ToString(sql_reader["last_name"]), "رمز تفعيل حساب تطبيق الأوقاف الجعفرية", body.ToString(), System.Net.Mail.MailPriority.High); await DisplayAlert("التفعيل", "تم إرسال رمز التفعيل لهاتفكم النقال", "متابعة"); ContentViewActivateEmailAddress.IsVisible = false; ContentViewActivatePIN.IsVisible = true; } else if (Convert.ToString(sql_reader["result"]) == "NOTFOUND") { Analytics.TrackEvent(this.Title, new Dictionary { { "حالة التسجيل", "لم يتم العثور على الحساب" } }); await DisplayAlert("التفعيل", "لم يتم العثور على حسابكم", "تصحيح"); txtSignupActivationEmailAddress.Text = ""; loadingActivationEmailAddress.IsVisible = false; btnActivateGeneratePIN.IsVisible = true; return; } else { System.Diagnostics.Debug.WriteLine("elseelseelse"); } } } } } async void btnActivate_Clicked(object sender, System.EventArgs e) { if (string.IsNullOrWhiteSpace(txtSignupActivationPIN.Text)) { await DisplayAlert("خطأ", "يرجى إدخال رمز التفعيل", "تصحيح"); return; } btnActivate.IsVisible = false; loadingActivation.IsVisible = true; using (var sql_connection = new SqlConnection("Server=myserver.com; Database=myDB; User Id=myUser; Password=myPassword;")) { sql_command = new SqlCommand("jafaria_activate", sql_connection); sql_command.CommandType = CommandType.StoredProcedure; sql_command.Parameters.Add(new SqlParameter("@email", txtSignupActivationEmailAddress.Text)); sql_command.Parameters.Add(new SqlParameter("@pin", txtSignupActivationPIN.Text)); await sql_connection.OpenAsync(); using (var sql_reader = await sql_command.ExecuteReaderAsync(CommandBehavior.CloseConnection)) { while (sql_reader.Read()) { if (Convert.ToString(sql_reader["result"]) == "DONE") { Analytics.TrackEvent(this.Title, new Dictionary { { "حالة التفعيل", "تم تفعيل الحساب" } }); sms_message = "السلام عليكم " + Convert.ToString(sql_reader["first_name"]) + ". "; sms_message += "تهانينا لكم. لقد تم تفعيل حساب تطبيق الأوقاف الجعفرية بنجاح."; AppMessaging.SendSMS(Convert.ToString(sql_reader["mobile"]), sms_message); body = new StringBuilder(); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine(""); body.AppendLine("

هذه الرسالة تم إرسالها باستخدام التطبيق الرسمي للأوقاف الجعفرية لذا يرجى عدم الرد عليها

"); body.AppendLine("

"); body.AppendLine("السلام عليكم " + Convert.ToString(sql_reader["first_name"]) + "

"); body.AppendLine("تم تفعيل حسابكم بنجاح.

"); body.AppendLine("بإمكانكم الآن الاستفادة من كافة الخدمات التي تقدمها الأوقاف الجعفرية..

"); body.AppendLine("

"); body.AppendLine("مع تحيات
"); body.AppendLine("

"); body.AppendLine("الأوقاف الجعفرية في دبي"); body.AppendLine(""); body.AppendLine(""); AppMessaging.SendEmail(Convert.ToString(sql_reader["email_address"]), Convert.ToString(sql_reader["first_name"]) + " " + Convert.ToString(sql_reader["last_name"]), "الخدمات الالكترونية للأوقاف الجعفرية", body.ToString(), System.Net.Mail.MailPriority.High); await DisplayAlert("تهانينا", "تم تفعيل حسابكم وبإمكانكم الآن الدخول والاستفادة من كافة الخدمات الالكترونية", "موافق"); await Navigation.PopToRootAsync(); } else if (Convert.ToString(sql_reader["result"]) == "WRONG") { Analytics.TrackEvent(this.Title, new Dictionary { { "حالة التفعيل", "رمز التفعيل خاطئ" } }); await DisplayAlert("التفعيل", "رمز التفعيل غير صحيح", "تصحيح"); txtSignupActivationPIN.Text = ""; loadingActivation.IsVisible = false; btnActivate.IsVisible = true; return; } else { System.Diagnostics.Debug.WriteLine("elseelseelse"); } } } } } } }