Exemplo n.º 1
0
        /// <summary>
        /// Opens the account connected to user with provided CustomerId and decide sending a transaction by initialCredit parameter value.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ServiceResponse <bool> OpenAccount(OpenAccountModel model)
        {
            var errorMessage    = "";
            var data            = false;
            var serviceResponse = TransactionalProcess(() =>
            {
                var customer = _persistenceCustomer.GetById(model.CustomerId);
                if (customer == null)
                {
                    Logger.LogError("CustomerNotFound");
                    errorMessage = "CustomerNotFound";
                    return;
                }

                var account = new Account {
                    CustomerId = model.CustomerId, InitialCredit = model.InitialCredit
                };

                Repository.Insert(account);

                //refactor
                if (model.InitialCredit > 0)
                {
                    _persistenceTransaction.CreateNewCreditRequest(account.Id, model.InitialCredit);
                }

                data = true;
            });

            serviceResponse.Data         = data;
            serviceResponse.ErrorMessage = errorMessage;

            return(serviceResponse);
        }
Exemplo n.º 2
0
        public ApiResponse <bool> OpenAccount(OpenAccountModel model)
        {
            var apiResponse     = new ApiResponse <bool>();
            var serviceResponse = _accountService.OpenAccount(model);

            if (serviceResponse.HasError)
            {
                apiResponse.ErrorMessage = serviceResponse.ErrorMessage;
                return(apiResponse);
            }

            apiResponse.Data = serviceResponse.Data;
            return(apiResponse);
        }