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