Exemplo n.º 1
0
        public Ninja UpdateEquipments(Ninja ninja, List <int> equipments)
        {
            using var ctx = new NinjaManagerContext();

            ctx.Attach(ninja);

            ctx.Entry(ninja).Collection(n => n.Equipments).Load();

            var equipmentsInNinja = ninja.Equipments.Select(i => i.EquipmentId).ToArray();

            foreach (var equipment in ctx.Equipments)
            {
                if (equipments.Contains(equipment.Id))
                {
                    if (!equipmentsInNinja.Contains(equipment.Id))
                    {
                        ninja.Equipments.Add(new NinjaEquipment {
                            NinjaId = ninja.Id, EquipmentId = equipment.Id
                        });
                    }
                }
                else if (equipmentsInNinja.Contains(equipment.Id))
                {
                    ctx.Remove(ninja.Equipments.FirstOrDefault(ne => ne.EquipmentId == equipment.Id) !);
                }
            }

            ctx.Ninjas.Update(ninja);
            ctx.SaveChanges();
            return(ninja);
        }
Exemplo n.º 2
0
 public Ninja Update(Ninja ninja)
 {
     using var ctx = new NinjaManagerContext();
     ctx.Attach(ninja);
     ctx.Ninjas.Update(ninja);
     ctx.SaveChanges();
     return(ninja);
 }
Exemplo n.º 3
0
 public Equipment Update(Equipment equipment)
 {
     using var ctx = new NinjaManagerContext();
     ctx.Attach(equipment);
     ctx.Equipments.Update(equipment);
     ctx.SaveChanges();
     return(equipment);
 }