public Task <Budget[]> GetBudgetsByType(int userId, BudgetTypeEnum budgetType, int year, CancellationToken cancellationToken)
 {
     return(_context.Budgets
            .Include(_ => _.User)
            .Include(_ => _.Requests).ThenInclude(_ => _.Category)
            .Where(_ => _.UserId == userId && _.Year == year && _.BudgetType == budgetType)
            .ToArrayAsync(cancellationToken));
 }
Esempio n. 2
0
 public Task <Transaction[]> GetRequests(int year, int month, BudgetTypeEnum budgetType)
 {
     return(_context
            .Transactions
            .Where(_ => _.Request.ApprovedDate.Value.Year == year &&
                   _.Request.ApprovedDate.Value.Month == month &&
                   _.Budget.BudgetType == budgetType)
            .Include(_ => _.User)
            .Include(_ => _.Request)
            .ToArrayAsync());
 }
Esempio n. 3
0
        public static BudgetType ToType(BudgetTypeEnum enumValue)
        {
            switch (enumValue)
            {
            case BudgetTypeEnum.AnnualBudget:
                return(AnnualBudget);

            case BudgetTypeEnum.AnnualBudgetByCostType:
                return(AnnualBudgetByCostType);

            case BudgetTypeEnum.NoBudget:
                return(NoBudget);

            case BudgetTypeEnum.SimpleBudget:
                return(SimpleBudget);

            default:
                throw new ArgumentException(string.Format("Unable to map Enum: {0}", enumValue));
            }
        }
Esempio n. 4
0
        protected override async Task <IEnumerable <UserOutputModel> > Execute(BudgetTypeEnum parameter, ClaimsPrincipal principal, CancellationToken cancellationToken)
        {
            IEnumerable <User> users =
                await _userRepository.GetAllUsers(_ => _.State == UserState.Active, cancellationToken);

            var budgetType = BudgetType.Types.Single(_ => _.Id == parameter);

            if (budgetType.SinglePerUser)
            {
                var budgets =
                    (await _budgetRepository.GetBudgetsByYear(DateTime.Now.Year, cancellationToken)).Where(_ =>
                                                                                                           _.BudgetType == budgetType.Id).Select(_ => _.UserId).ToHashSet();
                users = users.Where(_ => !budgets.Contains(_.Id));
            }

            return(users.Select(_ => new UserOutputModel
            {
                Id = _.Id,
                FirstName = _.FirstName,
                LastName = _.LastName
            }).OrderBy(_ => _.LastName).ThenBy(_ => _.FirstName));
        }
        public async Task <IActionResult> GetUsersAvailableForBudget(BudgetTypeEnum budgetTypeId, CancellationToken cancellationToken)
        {
            var outputModels = await _getUsersAvailableForBudgetQuery.Value.ExecuteAsync(budgetTypeId, HttpContext.User, cancellationToken);

            return(Ok(outputModels));
        }