Esempio n. 1
0
        public List <Group> GetUserGroups(string uid)
        {
            var user   = GetUser(uid);
            var groups = groupsService.GetGroups();

            return(groups.FindAll(group => group.Members.Contains(user.Name)));
        }
        public async Task <IActionResult> GetGroups()
        {
            var groups = await _groupsService.GetGroups();

            var groupsToReturn = _groupsService.MapGroups(groups);

            return(Ok(groupsToReturn));
        }
        public async ValueTask <YearPivotTable?> GetYearExpenses(int year, ExpensesGroupingType groupingType)
        {
            if (year == 0)
            {
                return(null);
            }

            var firstDay = new DateTimeOffset(year, 1, 1, 0, 0, 0, TimeSpan.Zero);
            var lastDay  = new DateTimeOffset(year, 12, 31, 0, 0, 0, TimeSpan.Zero);
            var expenses = await _expensesSvc.GetExpenses(startDate : firstDay, endDate : lastDay, filter : null);

            if (expenses.Count == 0)
            {
                return(null);
            }

            switch (groupingType)
            {
            case ExpensesGroupingType.ByCategory:

                var categories = await _categoriesSvc.GetCategories();

                if (categories.Count == 0)
                {
                    return(null);                           //
                }
                Func <IEnumerable <Expense>, IEnumerable <(string, double)> > groupingLogicC = items => categories
                                                                                               .OrderBy(c => c.Sort)
                                                                                               .GroupJoin(
                    items,
                    c => c.Id,
                    i => i.CategoryId,
                    (category, items) => (category.Name, items.Select(e => e.Amounth).DefaultIfEmpty().Sum()));

                return(new YearPivotTable(year: year, groupingParamName: "Категория", expenses, groupingLogicC));

            case ExpensesGroupingType.ByGroup:

                var groups = await _groupsSvc.GetGroups();

                if (groups.Count == 0)
                {
                    return(null);
                }

                Func <IEnumerable <Expense>, IEnumerable <(string, double)> > groupingLogicG = items => groups.Concat(new List <Group> {
                    new Group {
                        Id = default, Name = "Без группы", Sort = 1000
                    }
                })
Esempio n. 4
0
 public ActionResult <List <Groups> > GetGroups()
 {
     return(_service.GetGroups());
 }
Esempio n. 5
0
        public IActionResult GetGroups()
        {
            var g = _groupsService.GetGroups();

            return(Ok(g));
        }
Esempio n. 6
0
 /// <summary>
 /// Повертає список груп
 /// </summary>
 /// <returns>Список груп</returns>
 public IEnumerable <GroupsDtoModel> GetGroupsDto() => groupsService.GetGroups();
Esempio n. 7
0
 public IActionResult GetGroups()
 {
     return(Ok(groupsService.GetGroups()));
 }