Exemple #1
0
        //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);
                }
            });
        }