示例#1
0
        public void IsPatientValid_CheckPatientIsValid_PatientIsValid()
        {
            // Arrange
            var cpr = "0105921853";

            var loginManager = new LoginManager();

            try
            {
                // Act
                var loginCpr = loginManager.GetPatient(cpr);

                // Assert
                Assert.AreEqual(cpr, loginCpr);
            }
            catch (Exception e)
            {
                Assert.Fail("Status Code not OK " + e.Message);
            }

        }
示例#2
0
        private void SetupLayout()
        {
            // Perform any additional setup after loading the view, typically from a nib.

            loginButton.TouchUpInside += (sender, e) =>
            {
                if (UserData.IsUserLoggedIn)
                {
                    LogOffUser();
                }
                else
                {
                    var userCprInput = userNameTextField.Text;
                    // If user cpr nr is valid
                    if (ValidateCpr(userCprInput))
                    {
                        new System.Threading.Thread(() =>
                        {
                            // Send cpr til web api for yderligere validering (er patient indlagt/udskrevet?)
                            // Hvis Response kode er OK betyder det er patient er indlagt og ikke udskrevet endnu
                       
                            try
                            {
                                var manager = new LoginManager();
                                var cpr = manager.GetPatient(userCprInput);

                                if (cpr == null) throw new Exception(Strings.ErrorPatientNotValid);
                            }
                            // Response kode er forskellig fra OK, hvilket kan betyde en netværksfejl eller at patient ikke er indlagt (antager vi).
                            catch (Exception ex)
                            {
                                Console.WriteLine("Login failed with error: " + ex.Message);

                                this.InvokeOnMainThread(() =>
                                {
                                    var errorMessage = ex.Message.Equals(Strings.ErrorPatientNotValid) ? Strings.ErrorPatientNotValid : Strings.ErrorNoNetwork;
            
                                    new UIAlertView(Strings.ErrorLogin, errorMessage, null, null, "OK").Show();
                                });

                                // Fortsæt ikke programmet, hvis login fejlede
                                return;
                            }
                            

                            // Skriv evt. en besked til bruger om at login gik OK
                            this.InvokeOnMainThread(() =>
                            {
                                // Show the overlay (loading screen)
                                AppDelegate.ShowLoadingScreen(this, Strings.SpinnerDataReading);
                            });

                            // Hent kategorier for den pågældende patient/afdeling/sygehus
                            try
                            {
                                Categories = DataHandler.LoadCategoriesFromWeb();
                                //Categories = DataHandler.LoadCategoriesTESTDATA();

                                // Delete categories from web
                                DataHandler.DeleteCategoriesFromLocalDatabase(new LocalDB());

                                // If data loading from web not succeded, nothing will be saved to the local database (Categories instance will be null)
                                DataHandler.SaveCategoriesToLocalDatabase(new LocalDB(), Categories);
                            }
                            // Mislykkedes at hente kategorier fra web, indlæser fra lokal database (i næste view)
                            catch (Exception ex)
                            {
                                Console.WriteLine("ERROR loading data: " + ex.Message + "...loading from local database");

                                this.InvokeOnMainThread(() =>
                                {
                                    new UIAlertView(Strings.Error, Strings.ErrorReading, null, Strings.OK, null).Show();
                                });
                            }

                            this.InvokeOnMainThread(() =>
                            {
                                // Login user
                                LoginInUser();
                                // Hide the overlay (loading screen)
                                AppDelegate.loadingOverlay.Hide();

                                // Go to valgmuligheder
                                GoToCategories();
                            });

                        }).Start();

                    }
                }

            };

            this.userNameTextField.ShouldReturn += (textField) =>
            {
                textField.ResignFirstResponder();
                return true;
            };
        }