Exemplo n.º 1
0
        public async Task AddNewRecurrentIncome(RecurrentIncome recurrentIncome)
        {
            var command = "insert into FinancialControl.RecurrentIncomes values(@id, @until, @frequency);";

            recurrentIncome.Incomes.ToList()
            .ForEach(e => command += $"insert into FinancialControl.Incomes values('{e.Id}', '{e.UserId}', '{e.Name}', '{e.Date}', {(int)e.Category}, {e.Value.Value}, @id);");

            this._dbConnection.Open();
            using var transaction = _dbConnection.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                await this._dbConnection.ExecuteAsync(command, new
                {
                    id        = recurrentIncome.Id,
                    until     = recurrentIncome.Recurrency.Until,
                    frequency = recurrentIncome.Recurrency.Frequency.Value
                }, transaction);

                transaction.Commit();
            }
            catch (System.Exception)
            {
                transaction.Rollback();
                throw;
            }
        }
Exemplo n.º 2
0
        public async Task <dynamic> Execute(AddNewRecurrentIncomeMessage message)
        {
            var recurrentIncome = new RecurrentIncome(message.UserId, message.Name, message.Category,
                                                      message.Date, new TransactionValue(message.Value), message.Until, message.Frequency);

            await _dataAccess.AddNewRecurrentIncome(recurrentIncome);

            return(recurrentIncome);
        }