Exemplo n.º 1
0
        /**
         * Adding item to the DB (C)
         */
        public Item AddItem(Item item)
        {
            if (item == null)
            {
                return(null);
            }

            _context.Add(item);
            _context.SaveChanges();

            return(item);
        }
Exemplo n.º 2
0
        /**
         * Adding new category (C)
         */
        public Category AddNewCategory(Category category)
        {
            if (category == null)
            {
                return(null);
            }

            _context.Add(category);
            _context.SaveChanges();

            return(category);
        }
Exemplo n.º 3
0
        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();
            }
        }