private void Button_Send_Click(object sender, RoutedEventArgs e) { this.IsEnabled = false; workOrder work = new workOrder() { OrgName = TextBox_OrgName.Text, Phone = TextBox_Phone.Text, ConfirmEmail = TextBox_ConfirmEmail.Text, Subject = TextBox_Subject.Text, TextBody = TextBox_Body.Text }; bw.RunWorkerAsync(work); }
void bw_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { workOrder work = e.Argument as workOrder; bw.ReportProgress(0); int test = work.TextBody.IndexOf("(-=-_key_-=-)"); if (test == -1) { e.Result = new Exception("keunde inte hitta (-=-_key_-=-)"); return; } bw.ReportProgress(1); long id; SqlTransaction transaction = null; using (SqlConnection connection = new SqlConnection(settings.SqlConString)) { connection.Open(); transaction = connection.BeginTransaction("Begin"); using (SqlCommand command = new SqlCommand("INSERT INTO [dbo].[User](OrgName,Tele,UserName,Activated,Salt,Epost) OUTPUT INSERTED.ID VALUES (@OrgName,@Tele,@UserName,@Activated,@Salt,@Epost);", connection, transaction)) { try { command.Parameters.AddWithValue("OrgName", work.OrgName); command.Parameters.AddWithValue("Tele", work.Phone); command.Parameters.AddWithValue("UserName", work.OrgName); command.Parameters.AddWithValue("Activated", 0); command.Parameters.AddWithValue("Salt", myRandom.Next()); command.Parameters.AddWithValue("Epost", work.ConfirmEmail); id = (long)command.ExecuteScalar(); bw.ReportProgress(2); ActivationKey newKey = new ActivationKey(id); command.Parameters.Clear(); command.CommandText = "INSERT INTO [dbo].[ActivationKey](Typ,User_ID,[Key]) VALUES (@Typ,@User_ID,@Key);"; command.Parameters.AddWithValue("Typ", newKey.Typ); command.Parameters.AddWithValue("User_ID", newKey.User_ID); command.Parameters.AddWithValue("Key", newKey.Key); command.ExecuteNonQuery(); transaction.Commit(); bw.ReportProgress(3); work.TextBody = work.TextBody.Replace("(-=-_key_-=-)", "http://*****:*****@gmail.com", "projectlight", work.ConfirmEmail, work.Subject, work.TextBody); } catch (Exception ex) { if (transaction != null) { transaction.Rollback(); } e.Result = ex; } } } }