コード例 #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 <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)));
        }
コード例 #3
0
        public async Task<List<BaseChartDataResponseDto>> GetData(BaseChartDataRequestDto request, ChartType type, string userId)
        {
            var hasPermission = await _permissionService.HasUserAccess(request.WalletId, userId);

            if (!hasPermission)
            {
                return new List<BaseChartDataResponseDto>();
            }

            var provider = _providers[type];

            return await provider.GetChartData(request);
        }
コード例 #4
0
        public async Task <PagedSearchResults <ExpenseDto> > Search(ExpenseSearchOptionsDto searchOptions, string userId)
        {
            var hasUserAccess = await _walletPermissionService.HasUserAccess(searchOptions.WalletId.ToDeobfuscated(), userId);

            if (!hasUserAccess)
            {
                return(new PagedSearchResults <ExpenseDto>());
            }

            var resultsFromDb = await _expenseRepository.Search(searchOptions, userId);

            return(new PagedSearchResults <ExpenseDto>
            {
                Results = Mapper.Map <List <ExpenseDto> >(resultsFromDb),
                Total = resultsFromDb.FirstOrDefault()?.Total ?? 0
            });
        }