private static async Task <OfficeElements> CreateTaskAsync()
        {
            _dateInterface = Substitute.For <IGetDate>();
            _dateInterface.GetCurrentDate().Returns(DateTime.Parse("2020-01-01"));

            MainSql.CreateConnection();
            await MainSql.CkeckConnectionAsync();

            await MainSql.CreateAsync(new TestUserHelpers(), new TestInternetAccess(), "1111");

            return(await OfficeElements.CreateAsync(_dateInterface).ConfigureAwait(false));
        }
        public async Task CreateAsync_IncorrectUser_ReturnsNullAsync(string pin)
        {
            var dateInterface = Substitute.For <IGetDate>();

            dateInterface.GetCurrentDate().Returns(DateTime.Parse("2020-01-01"));

            MainSql.CreateConnection();
            await MainSql.CkeckConnectionAsync();

            Task AsyncTestDelegate() => MainSql.CreateAsync(new TestUserHelpers(), new TestInternetAccess(), pin);

            Assert.CatchAsync <NoUserFound>(AsyncTestDelegate);
        }
Beispiel #3
0
        private async void Enter_Clicked(object sender, EventArgs e)
        {
            if (MainSql.IsConnNull())
            {
                return;
            }

            var entryPin = Pin.Text;

            if (string.IsNullOrEmpty(entryPin))
            {
                return;
            }

            UserDialogs.Instance.ShowLoading();

            Enter.IsEnabled = false;

            try
            {
                await MainSql.CreateAsync(new UserHelpers(), _internetCheck, entryPin);
            }
            catch (NoUserFound)
            {
                if (!await HelperFunctions.InternetCheck())
                {
                    return;
                }

                UserDialogs.Instance.HideLoading();
                await DisplayAlert("Error", "No user found! Please create one.", "OK");

                await Navigation.PushModalAsync(new AddNewUserPage(entryPin));

                Enter.IsEnabled = true;
                return;
            }
            catch (Exception ex) when(ex is InvalidOperationException || ex is DataException)
            {
                App.Close();
            }

            if (!await HelperFunctions.InternetCheck())
            {
                return;
            }

            await CreateHomeClass();

            UserDialogs.Instance.HideLoading();
        }
        public async Task CleanupAsync()
        {
            MainSql.SetNullConnection();

            var dateInterface = Substitute.For <IGetDate>();

            dateInterface.GetCurrentDate().Returns(DateTime.Parse("2020-01-01"));

            MainSql.CreateConnection();
            await MainSql.CkeckConnectionAsync();

            await MainSql.CreateAsync(new TestUserHelpers(), new TestInternetAccess(), "1111");

            await MainSql.DeleteFromDbAsync(true, null, "2020-01-01").ConfigureAwait(false);

            MainSql.SetNullConnection();
        }
Beispiel #5
0
        private async void Enter_Clicked(object sender, EventArgs e)
        {
            if (MainSql.IsConnNull())
            {
                return;
            }

            if (string.IsNullOrEmpty(Username.Text))
            {
                return;
            }

            var username = Username.Text.ToLowerInvariant().RemoveWhitespace();

            try
            {
                await MainSql.MakeUserAccountAsync(username, _password);
            }
            catch (UserTableNotFound)
            {
                await DisplayAlert("Error", "No table found with that name!", "OK");

                return;
            }
            catch (UserAlreadyExists)
            {
                await DisplayAlert("Error", "User already registered!", "OK");

                return;
            }
            catch (PinAlreadyExists)
            {
                await DisplayAlert("Error", "Password already used!", "OK");

                return;
            }

            await DisplayAlert("New user", "User created! Please re-enter pin", "OK");

            // ReSharper disable once RedundantCapturedContext
            await Navigation.PopModalAsync();
        }
Beispiel #6
0
        protected override async void OnAppearing()
        {
            base.OnAppearing();

            if (!Users.LoggedAccountExists())
            {
                return;
            }

            try
            {
                UserDialogs.Instance.ShowLoading();

                Pin.Text        = "0000";
                Enter.IsEnabled = false;

                await MainSql.CreateAsync(new UserHelpers(), _internetCheck);

                if (!await HelperFunctions.InternetCheck())
                {
                    return;
                }

                await CreateHomeClass();

                UserDialogs.Instance.HideLoading();
            }
            catch (UserReadFailed)
            {
                SecureStorage.RemoveAll();
                Preferences.Clear();
                await HelperFunctions.ShowAlertAsync("There's been an error, please restart the app!", true);
            }
            catch (Exception ex) when(ex is TaskCanceledException || ex is InvalidOperationException)
            {
                App.Close();
            }
        }