コード例 #1
0
        private static TaskViewModel GetTaskViewModel()
        {
            TaskTypeSelectorViewModel selectorViewModel = new TaskTypeSelectorViewModel();

            MainWindowViewModel.ViewLoader.ShowDialog(selectorViewModel);

            if (selectorViewModel.UserHitCancel == true)
            {
                return(null);
            }

            TaskViewModel taskViewModel = ViewModelUtility.GetViewModel(selectorViewModel.SelectedTaskType);

            return(taskViewModel);
        }
コード例 #2
0
ファイル: AccountsApi.cs プロジェクト: Tehl/bank-api
        public virtual async Task <IActionResult> ApiV1AccountsGetById(
            [FromRoute][Required] int?account_id
            )
        {
            if (!account_id.HasValue)
            {
                return(ApiResponseUtility.ApiError(
                           HttpStatusCode.BadRequest,
                           "account_id is required"
                           ));
            }

            var account = _accountRepository.GetAccountById(account_id.Value);

            if (account == null)
            {
                return(ApiResponseUtility.ApiError(
                           HttpStatusCode.NotFound,
                           $"Bank account with id '{account_id}' does not exist"
                           ));
            }

            // when we are fetching account details for a known account, we use the account data service
            // rather than accessing the connection directly. this allows the service to perform caching
            // and additional post-processing on the account data before it is returned to the user
            var accountResult = await _accountDataProvider.GetAccountDetails(account.BankId, account.AccountNumber);

            if (!accountResult.Success)
            {
                var error = new ErrorViewModel
                {
                    Status    = accountResult.StatusCode,
                    Message   = accountResult.Error.ErrorMessage,
                    ErrorCode = accountResult.Error.ErrorCode
                };

                return(new ObjectResult(error)
                {
                    StatusCode = accountResult.StatusCode
                });
            }

            var model = ViewModelUtility.CreateAccountDetailsViewModel(account, accountResult.Result);

            return(Ok(model));
        }
コード例 #3
0
        public override void WindowClose()
        {
            try
            {
                ViewModelUtility.CloseViewModels(typeof(MultipleWindowViewModel));
            }
            catch (WindowPendingProcessException)
            {
                // MessageDialogAction ビヘイビアを使用してメッセージボックスを出す
                base.MessageDialogActionParam = new MessageDialogActionParameter("閉じることのできないウィンドウがあります。",
                                                                                 "クローズできません");
                base.RaisePropertyChanged(nameof(MessageDialogActionParam));
                return;
            }

            base.WindowClose();
        }
コード例 #4
0
        private void EditTask()
        {
            TaskViewModel taskViewModel = ViewModelUtility.GetViewModel(this.SelectedTasks[0].PrestoTaskType, this.SelectedTasks[0]);

            if (taskViewModel == null)
            {
                return;
            }

            MainWindowViewModel.ViewLoader.ShowDialog(taskViewModel);

            if (taskViewModel.UserCanceled)
            {
                return;
            }

            SaveApplication();
        }
コード例 #5
0
ファイル: UsersApi.cs プロジェクト: Tehl/bank-api
        public virtual async Task <IActionResult> ApiV1UsersCreate(
            [FromBody] CreateUserViewModel user_data
            )
        {
            if (user_data == null ||
                string.IsNullOrEmpty(user_data.Username) ||
                string.IsNullOrEmpty(user_data.BankId) ||
                string.IsNullOrEmpty(user_data.AccountNumber)
                )
            {
                return(ApiResponseUtility.ApiError(
                           HttpStatusCode.BadRequest,
                           "All user_data fields must be supplied"
                           ));
            }

            if (!Validation.AccountNumberIsValid(user_data.AccountNumber))
            {
                return(ApiResponseUtility.ApiError(
                           HttpStatusCode.BadRequest,
                           $"Account number '{user_data.AccountNumber}' is invalid"
                           ));
            }

            if (!_connectionManager.GetRegisteredBankIds().Contains(user_data.BankId))
            {
                return(ApiResponseUtility.ApiError(
                           HttpStatusCode.BadRequest,
                           $"Banking service '{user_data.BankId}' is not available"
                           ));
            }

            var existingUser = _userRepository.GetUserByUsername(user_data.Username);

            if (existingUser != null)
            {
                return(ApiResponseUtility.ApiError(
                           HttpStatusCode.Conflict,
                           $"User '{user_data.Username}' already exists"
                           ));
            }

            var existingAccount = _accountRepository.GetAccountByBankIdAndAccountNumber(
                user_data.BankId,
                user_data.AccountNumber
                );

            if (existingAccount != null)
            {
                return(ApiResponseUtility.ApiError(
                           HttpStatusCode.Conflict,
                           $"Bank account '{user_data.AccountNumber}' is already registered"
                           ));
            }

            // when we are registering a new account, we go directly to the bank connection to verify the account,
            // as it will not yet exist in our system
            var bankConnection = _connectionManager.CreateConnection(user_data.BankId);
            var accountResult  = await bankConnection.GetAccountDetails(user_data.AccountNumber);

            if (!accountResult.Success)
            {
                var error = new ErrorViewModel
                {
                    Status    = accountResult.StatusCode,
                    Message   = accountResult.Error.ErrorMessage,
                    ErrorCode = accountResult.Error.ErrorCode
                };

                if (accountResult.StatusCode == (int)HttpStatusCode.NotFound)
                {
                    error.Message =
                        $"Account number '{user_data.AccountNumber}' does not exist at bank {user_data.BankId}";
                }

                return(new ObjectResult(error)
                {
                    StatusCode = accountResult.StatusCode
                });
            }

            var appUser = _userRepository.CreateUser(user_data.Username);

            _accountRepository.CreateAccount(appUser.Id, user_data.BankId, user_data.AccountNumber);

            var model = ViewModelUtility.CreateUserViewModel(appUser);

            return(Ok(model));
        }
コード例 #6
0
 private static bool UserHasEnvironmentRights(InstallationEnvironment installationEnvironment)
 {
     return(ViewModelUtility.UserCanAccessEnvironment(installationEnvironment));
 }