//Loading filtered data private async void LoadData() { if (!ServerInteractionHelper.IsNetworkAvailable() && !ServerInteractionHelper.TryAccessDatabase()) { AnalyticalInstruments = new BindableCollection <tblMeasuringDevice>(); SelectedAnalyticalInstrument = new tblMeasuringDevice(); return; } try { await Task.Run(() => { using (var db = new ApirsRepository <tblMeasuringDevice>()) { AnalyticalInstruments = new BindableCollection <tblMeasuringDevice>(db.GetModel().ToList()); } }); this.allAnalyticalInstruments = AnalyticalInstruments; if (AnalyticalInstruments.Count == 0) { SelectedAnalyticalInstrument = new tblMeasuringDevice(); } else if (AnalyticalInstruments.Count > 1) { SelectedAnalyticalInstrument = AnalyticalInstruments.First(); } else { SelectedAnalyticalInstrument = AnalyticalInstruments.First(); } } catch (Exception e) { AnalyticalInstruments = new BindableCollection <tblMeasuringDevice>(); this.allAnalyticalInstruments = AnalyticalInstruments; SelectedAnalyticalInstrument = new tblMeasuringDevice(); } }
/// <summary> /// Attempts to register the user /// </summary> /// <param name="parameter">The SecureString passed in from the view for the users password</param> /// <returns></returns> public async void Delete() { if (SelectedPerson.persIdPk == 0) { ((ShellViewModel)IoC.Get <IShell>()).ShowInformation("You have to be logged in."); } // If existing window is visible, delete the customer and all their orders. // In a real application, you should add warnings and allow the user to cancel the operation. if (((ShellViewModel)IoC.Get <IShell>()).ShowQuestion("Are you REALLY sure to delete your user profile?" + Environment.NewLine + "You won't be able to reconstruct your created projects, rock samples and measurements." + Environment.NewLine + "Please be sure, that you have exported all relevant data.") == MessageBoxViewResult.No) { return; } CommandHelper ch = new CommandHelper(); await ch.RunCommand(() => IsUpdateRunning, async() => { await Task.Delay(2000); try { //Establishing a sql connection using (SqlConnection SqlConn = new SqlConnection(this.apirsDatabase.Database.Connection.ConnectionString.ToString())) { //Testing if a connection is established if (ServerInteractionHelper.IsNetworkAvailable() && ServerInteractionHelper.TryAccessDatabase()) { //Triggering the delete user sp SqlCommand spDeleteUser = new SqlCommand("dbo.spDeleteUser", SqlConn); spDeleteUser.CommandType = CommandType.StoredProcedure; //Adding the parameters spDeleteUser.Parameters.Add("@pLogin", SqlDbType.NVarChar, 50); spDeleteUser.Parameters["@pLogin"].Value = SelectedPerson.persUserName; spDeleteUser.Parameters.Add("@responseMessage", SqlDbType.NVarChar, 250).Direction = ParameterDirection.Output; //Executing the stored procedure SqlConn.Open(); spDeleteUser.ExecuteNonQuery(); var par = Convert.ToString(spDeleteUser.Parameters["@responseMessage"].Value); SqlConn.Close(); switch (par) { case "1": ((ShellViewModel)IoC.Get <IShell>()).ShowInformation("You successfully deleted your profile."); _events.PublishOnUIThreadAsync(new ChangeUserMessage(0, "Logged out")); _events.PublishOnUIThreadAsync(new ChangeViewModelMessage("LoginView")); break; default: ((ShellViewModel)IoC.Get <IShell>()).ShowInformation("An unexpected error occured."); break; } } else { return; } } } catch (NullReferenceException ne) { Console.WriteLine(ne.Message); } catch (Exception e) { ((ShellViewModel)IoC.Get <IShell>()).ShowInformation(e.Message); } }); }