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)); }
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()); }
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)); } }
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)); }