コード例 #1
0
            // --| Transactions |------------------------------------------------------------------>

            public static int InsertTransaction(TransactionInsertRequest model)
            {
                int transactionId = 0;

                try
                {
                    DataProvider.ExecuteNonQuery(GetConnection, "dbo.insert_transaction",
                                                 inputParamMapper : delegate(SqlParameterCollection paramCollection)
                    {
                        paramCollection.AddWithValue("@amount", model.Amount);
                        paramCollection.AddWithValue("@categoryId", model.CategoryId);
                        paramCollection.AddWithValue("@date", model.Date);
                        paramCollection.AddWithValue("@description", model.Description);
                        paramCollection.AddWithValue("@typeId", model.TypeId);
                        paramCollection.AddWithValue("@userId", model.UserId);

                        var p       = new SqlParameter("@transactionId", System.Data.SqlDbType.Int);
                        p.Direction = System.Data.ParameterDirection.Output;

                        paramCollection.Add(p);
                    }, returnParameters : delegate(SqlParameterCollection param)
                    {
                        int.TryParse(param["@transactionId"].Value.ToString(), out transactionId);
                    });
                }
                catch (Exception e)
                {
                    throw e;
                }

                return(transactionId);
            }
コード例 #2
0
        public static bool InsertNewTransaction(TransactionInsertRequest transaction)
        {
            bool isSuccess = false;

            try
            {
                string userId = UserService.GetCurrentUserId();
                LogService.TopOffLogToDate(userId, transaction.Date);

                Data.InsertTransaction(transaction);

                // Past-Month Transaction
                if (!DateFallsInCurrentMonth(transaction.Date))
                {
                    double netImpactOnBalance = transaction.TypeId == Enums.TransactionType.Credit ?
                                                transaction.Amount : (transaction.Amount * -1);

                    LogService.BalanceLogForPastTransaction(userId, transaction.Date, netImpactOnBalance);
                }

                LogService.RefreshCurrentMonthBalance(userId);

                isSuccess = true;
            }
            catch (Exception e)
            {
                throw e;
            }

            return(isSuccess);
        }
コード例 #3
0
        public void InvalidUserIdTest()
        {
            IEnumerable <TransactionInsertRequest> transactionToInsert = new TransactionInsertRequest[]
            {
                new TransactionInsertRequest
                {
                    CreditorOccupantId = firebaseFixture.H1OccupantId,
                    DebtorOccupantId   = 3,
                    Gross     = NumberGenerator.RandomDecimal(16, 2),
                    Reference = StringGenerator.RandomString(200),
                    Date      = DateTime.Now.Date
                }
            };

            RestClient    client   = GetClient();
            RestRequest   request  = apiCall(firebaseFixture.H1Token, string.Concat(sutEndpoint, firebaseFixture.H2UserId), sutHttpMethod, transactionToInsert);
            IRestResponse response = client.Execute(request);

            forbiddenExpectations(response);
        }
コード例 #4
0
        public void AddTransactionTest()
        {
            decimal  gross     = NumberGenerator.RandomDecimal(16, 2);
            decimal  gross2    = NumberGenerator.RandomDecimal(16, 2);
            string   reference = StringGenerator.RandomString(200);
            DateTime date      = DateTime.UtcNow.Date;

            IEnumerable <TransactionInsertRequest> transactionArrayToInsert = new TransactionInsertRequest[]
            {
                new TransactionInsertRequest
                {
                    CreditorOccupantId = firebaseFixture.H1OccupantId,
                    DebtorOccupantId   = 3,
                    Gross     = gross,
                    Reference = reference,
                    Date      = date
                },
                new TransactionInsertRequest
                {
                    CreditorOccupantId = firebaseFixture.H1OccupantId,
                    DebtorOccupantId   = 3,
                    Gross     = gross2,
                    Reference = reference,
                    Date      = date
                }
            };

            RestClient          client   = GetClient();
            RestRequest         request  = apiCall <IEnumerable <TransactionInsertRequest> >(firebaseFixture.H1Token, string.Concat(sutEndpoint, firebaseFixture.H1UserId), sutHttpMethod, transactionArrayToInsert);
            IRestResponse <int> response = client.Execute <int>(request);

            string expectedContent = serialize(
                2
                );

            response.StatusCode.ShouldBeEquivalentTo(HttpStatusCode.OK);
            response.Content.ShouldBeEquivalentTo(expectedContent);
        }