Пример #1
0
        private async Task SyncCategoriesAsync <T>(Plan document) where T : Category
        {
            if (typeof(T) == typeof(IncomeCategory))
            {
                await _incomeCategoryService.InsertManyAsync(document.Incomes?.Select(x => new IncomeCategory
                {
                    Name = x.Category
                }));

                AssignSubDocId(document.Incomes);
            }
            else if (typeof(T) == typeof(ExpenseCategory))
            {
                IEnumerable <ExpenseCategory> expenseCategories = document
                                                                  .Expenses?
                                                                  .GroupBy(x => x.Category)
                                                                  .Select(y => new ExpenseCategory
                {
                    Name  = y.Key,
                    Types = y.Select(t => new ExpenseType
                    {
                        Name = t.Type
                    }).ToList()
                });

                await _expenseCategoryService.InsertManyAsync(expenseCategories);

                AssignSubDocId(document.Expenses);
            }
        }
        public async Task <IActionResult> Post([FromBody] IEnumerable <IncomeCategory> category)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(GetErrorFromModelState()));
            }

            await _categoryService.InsertManyAsync(category);

            return(Ok(category));
        }