コード例 #1
0
        public async Task <Result <BaseExpenseDto> > CreateExpense(BaseModifyExpenseDto modifyExpenseDto, string userId)
        {
            if (!(modifyExpenseDto is ModifyExpenseDto expenseDto))
            {
                throw new ArgumentException();
            }

            var hasUserPermission = await _walletPermissionService.HasUserAccess(modifyExpenseDto.WalletId, userId);

            if (!hasUserPermission)
            {
                return(Result <BaseExpenseDto> .Failure());
            }

            var mapped = Mapper.Map <Expense>(expenseDto);

            mapped.ModifiedById = userId;
            mapped.CreatedById  = userId;
            await _expenseRepository.CreateExpense(mapped);

            if (mapped.Id == default)
            {
                return(Result <BaseExpenseDto> .Failure());
            }

            var addedExpense = await _expenseRepository.GetExpense(mapped.Id);

            var addedMapped = Mapper.Map <ExpenseDto>(addedExpense);

            return(Result <BaseExpenseDto> .Success(addedMapped));
        }
コード例 #2
0
        public async Task <Result> UpdateExpense(BaseModifyExpenseDto editExpenseDto, int expenseId, string userId)
        {
            if (!(editExpenseDto is ModifyExpenseDto expenseDto))
            {
                throw new ArgumentException();
            }

            var expense = await _expenseRepository.GetExpense(expenseId);

            if (expense == null)
            {
                return(Result.Failure());
            }

            var hasUserPermission = await _walletPermissionService.HasUserAccess(expense.WalletId, userId);

            if (!hasUserPermission)
            {
                return(Result <BaseExpenseDto> .Failure());
            }

            expense.Date         = expenseDto.Date;
            expense.Category     = expenseDto.Category;
            expense.Type         = expenseDto.Type;
            expense.Name         = expenseDto.Name;
            expense.Place        = expenseDto.Place;
            expense.Price        = expenseDto.Price;
            expense.ModifiedById = userId;

            var result = _expenseRepository.UpdateExpense(expense);

            return(result != default ? Result.Success() : Result.Failure());
        }
コード例 #3
0
        public async Task <Result <BaseExpenseDto> > CreateExpense(BaseModifyExpenseDto modifyExpenseDto, string userId)
        {
            if (!(modifyExpenseDto is AddCyclicExpenseDto expenseDto))
            {
                throw new ArgumentException();
            }

            var hasUserPermission = await _walletPermissionService.HasUserAccess(modifyExpenseDto.WalletId, userId);

            if (!hasUserPermission)
            {
                return(Result <BaseExpenseDto> .Failure());
            }

            var mapped = Mapper.Map <CyclicExpense>(expenseDto);

            mapped.ModifiedById = userId;
            mapped.CreatedById  = userId;
            if (mapped.StartingFrom.Date == DateTime.UtcNow.Date)
            {
                mapped.LastApplied = DateTime.UtcNow.Date;
            }

            await _cyclicExpenseRepository.CreateExpense(mapped);

            if (mapped.Id == default)
            {
                return(Result <BaseExpenseDto> .Failure());
            }

            return(Result <BaseExpenseDto> .Success(Mapper.Map <BaseExpenseDto>(mapped)));
        }