/** * Adding item to the DB (C) */ public Item AddItem(Item item) { if (item == null) { return(null); } _context.Add(item); _context.SaveChanges(); return(item); }
/** * Adding new category (C) */ public Category AddNewCategory(Category category) { if (category == null) { return(null); } _context.Add(category); _context.SaveChanges(); return(category); }
public async Task UpsertGoals(List <Goal> goals) { using (var context = new BudgetAppContext()) { var goalComparer = new GoalComparer(); var dbGoals = await context.Goals.Where(g => g.UserId == goals[0].UserId).ToListAsync(); var goalsToAdd = goals.Except(dbGoals, goalComparer).ToList(); var goalsToUpdate = goals.Intersect(dbGoals, goalComparer).ToList(); var goalsToDelete = dbGoals.Except(goals, goalComparer).ToList(); foreach (var goal in goalsToAdd) { goal.CreatedDate = DateTime.Now; goal.UpdatedDate = DateTime.Now; context.Add(goal); } foreach (var goal in goalsToUpdate) { var dbGoal = await context.Goals.FirstOrDefaultAsync(g => g.Id == goal.Id); dbGoal.UserId = goal.UserId; dbGoal.GoalName = goal.GoalName; dbGoal.GoalSummary = goal.GoalSummary; dbGoal.StartDate = goal.StartDate; dbGoal.EndDate = goal.EndDate; dbGoal.Amount = goal.Amount; dbGoal.TargetAmount = goal.TargetAmount; dbGoal.UpdatedDate = DateTime.Now; } context.Goals.RemoveRange(goalsToDelete); await context.SaveChangesAsync(); } }