private async void StartLoginProcess()
        {
            var success = false;

            try
            {
                var response = await _connectionHandler.Login(Username, Password);

                var responseBody = await response.Content.ReadAsStringAsync();

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    throw new Exception("Response was not OK. Aborting. Reason: " + responseBody);
                }

                var token = JsonConvert.DeserializeObject <Response>(await response.Content.ReadAsStringAsync());

                var isActive = _connectionHandler.CheckTokenValidity(token.token);

                if (isActive)
                {
                    _connectionHandler.SaveUsagePrivileges(token.token);
                    dialogService.ShowLoginToast();
                    success = true;
                }
            }
            catch (Exception e)
            {
                Log.Error("Error while logging in!", e);
            }
            finally
            {
                Password = string.Empty;
                OnPropertyChanged(nameof(Password));
            }

            if (success)
            {
                Log.Debug("Logged in successfully!");
                Username = string.Empty;
                OnPropertyChanged(nameof(Username));
                LoginSuccessful?.Invoke(this, EventArgs.Empty);
            }
        }