public async Task can_create_find_and_delete_transaction()
        {
            ///Need a populated BD pop2
            TransactionGateway sut = new TransactionGateway(TestHelpers.ConnectionString);

            int      price     = 50;
            DateTime date      = TestHelpers.RandomBirthDate(1);
            int      roomieId  = 0;
            int      rRoomieId = 1;
            int      sRoomieId = 2;
            int      budgetId  = 0;

            Result <int> tBudgetResult = await sut.CreateTransacBudget(price, date, budgetId, roomieId);

            Assert.That(tBudgetResult.Status, Is.EqualTo(Status.Created));

            Result <int> tDepenseResult = await sut.CreateTransacDepense(price, date, sRoomieId, rRoomieId);

            Assert.That(tDepenseResult.Status, Is.EqualTo(Status.Created));

            int tBudgetId  = tBudgetResult.Content;
            int tDepenseId = tDepenseResult.Content;

            Result <TransacBudgetData> tBudgetData;
            {
                tBudgetData = await sut.FindTBudgetById(tBudgetId);

                CheckTbudget(tBudgetData, tBudgetId, price, date, budgetId, roomieId);
            }
            Result <TransacDepenseData> tDepenseData;
            {
                tDepenseData = await sut.FindTDepenseById(tDepenseId);

                CheckTDepense(tDepenseData, tDepenseId, price, date, sRoomieId, rRoomieId);
            }
            {
                price    = 100;
                date     = TestHelpers.RandomBirthDate(2);
                budgetId = 1;
                roomieId = 1;
                await sut.UpdateTransacBudget(tBudgetId, price, date, budgetId, roomieId);

                tBudgetData = await sut.FindTBudgetById(tBudgetId);

                CheckTbudget(tBudgetData, tBudgetId, price, date, budgetId, roomieId);
            }
            {
                sRoomieId = 0;
                rRoomieId = 2;
                await sut.UpdateTransacDepense(tDepenseId, price, date, sRoomieId, rRoomieId);

                tDepenseData = await sut.FindTDepenseById(tDepenseId);

                CheckTDepense(tDepenseData, tDepenseId, price, date, sRoomieId, rRoomieId);
            }
            {
                Result r = await sut.DeleteTransacBudget(tBudgetId);

                Assert.That(r.Status, Is.EqualTo(Status.Ok));

                tBudgetData = await sut.FindTBudgetById(tBudgetId);

                Assert.That(tBudgetData.Status, Is.EqualTo(Status.NotFound));
            }
            {
                Result r1 = await sut.DeleteTransacDepense(tDepenseId);

                Assert.That(r1.Status, Is.EqualTo(Status.Ok));

                tDepenseData = await sut.FindTDepenseById(tDepenseId);

                Assert.That(tDepenseData.Status, Is.EqualTo(Status.NotFound));
            }
        }
        public List <Transaction> GetListOfAllTransactionByUser(int userId)
        {
            TransactionGateway transactionGateway = new TransactionGateway();

            return(transactionGateway.GetListOfAllTransactionByUser(userId));
        }
        public int AddTransaction(Transaction transaction)
        {
            TransactionGateway transactionGateway = new TransactionGateway();

            return(transactionGateway.AddTransaction(transaction));
        }
        public int MakeTransactionForTotalCalculation(Transaction transaction)
        {
            TransactionGateway transactionGateway = new TransactionGateway();

            return(transactionGateway.MakeTransactionForTotalCalculation(transaction));
        }
        public int MakeTransactionFromTransactionListForTotalCalculation(List <Transaction> listOfTransaction)
        {
            TransactionGateway transactionGateway = new TransactionGateway();

            return(transactionGateway.MakeTransactionFromTransactionListForTotalCalculation(listOfTransaction));
        }
        public List <Transaction> MakeTransactionListByTotalMealOrderAndMonth(List <Order> listOfOrder, int operatedByUserId, int month, int year)
        {
            TransactionGateway transactionGateway = new TransactionGateway();

            return(transactionGateway.MakeTransactionListByTotalMealOrderAndMonth(listOfOrder, operatedByUserId, month, year));
        }