예제 #1
0
        public bool Delete(int id)
        {
            using var ctx = new NinjaManagerContext();
            var equipment = ctx.Equipments.Find(id);

            if (equipment == null)
            {
                return(false);
            }

            var ninjas = GetNinjaFromEquipments(equipment);

            var repo = new NinjaRepository();

            foreach (var ninja in ninjas.ToList())
            {
                ninja.Gold += equipment.Cost;

                var newEquipments = repo.GetEquipmentsFromNinja(ninja).Select(e => e.Id).ToList();
                newEquipments.Remove(equipment.Id);

                repo.UpdateEquipments(ninja, newEquipments);

                repo.Update(ninja);
            }

            ctx.Equipments.Remove(equipment);
            ctx.SaveChanges();

            return(true);
        }
 public NinjaEquipment Create(NinjaEquipment ninjaEquipment)
 {
     using var ctx = new NinjaManagerContext();
     ctx.NinjaEquipments.Add(ninjaEquipment);
     ctx.SaveChanges();
     return(ninjaEquipment);
 }
예제 #3
0
 public Equipment Create(Equipment equipment)
 {
     using var ctx = new NinjaManagerContext();
     ctx.Equipments.Add(equipment);
     ctx.SaveChanges();
     return(equipment);
 }
예제 #4
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);
        }
예제 #5
0
 public Ninja Create(Ninja ninja)
 {
     using var ctx = new NinjaManagerContext();
     ctx.Ninjas.Add(ninja);
     ctx.SaveChanges();
     return(ninja);
 }
예제 #6
0
 public Equipment Update(Equipment equipment)
 {
     using var ctx = new NinjaManagerContext();
     ctx.Attach(equipment);
     ctx.Equipments.Update(equipment);
     ctx.SaveChanges();
     return(equipment);
 }
예제 #7
0
        public IEnumerable <Equipment> GetEquipmentsFromNinja(Ninja ninja)
        {
            using var ctx = new NinjaManagerContext();

            ninja = ctx.Ninjas.Include(n => n.Equipments).ThenInclude(ne => ne.Equipment).FirstOrDefault(n => n == ninja);

            return(ninja == null ? new List <Equipment>() : ninja.Equipments.Select(i => i.Equipment));
        }
예제 #8
0
 public Ninja Update(Ninja ninja)
 {
     using var ctx = new NinjaManagerContext();
     ctx.Attach(ninja);
     ctx.Ninjas.Update(ninja);
     ctx.SaveChanges();
     return(ninja);
 }
예제 #9
0
        public IEnumerable <Ninja> GetNinjaFromEquipments(Equipment equipment)
        {
            using var ctx = new NinjaManagerContext();

            equipment = ctx.Equipments.Include(e => e.Ninjas).ThenInclude(ne => ne.Ninja).FirstOrDefault(e => e == equipment);

            return(equipment == null ? new List <Ninja>() : equipment.Ninjas.Select(i => i.Ninja));
        }
        public bool Delete(int ninjaId, int equipmentId)
        {
            using var ctx = new NinjaManagerContext();
            var toRemove = ctx.NinjaEquipments.First(o => o.EquipmentId == equipmentId && o.NinjaId == ninjaId);

            if (toRemove == null)
            {
                return(false);
            }

            ctx.NinjaEquipments.Remove(toRemove);
            ctx.SaveChanges();

            return(true);
        }
예제 #11
0
        public bool Delete(int id)
        {
            using var ctx = new NinjaManagerContext();
            var toRemove = ctx.Ninjas.Find(id);

            if (toRemove == null)
            {
                return(false);
            }

            ctx.Ninjas.Remove(toRemove);
            ctx.SaveChanges();

            return(true);
        }
 public List <Ninja> GetNinjaFromEquipment(Equipment equipment)
 {
     using var ctx = new NinjaManagerContext();
     return(ctx.NinjaEquipments.ToList().FindAll(model => model.Equipment == equipment).Select(o => o.Ninja)
            .ToList());
 }
예제 #13
0
 public Ninja GetOne(int id)
 {
     using var ctx = new NinjaManagerContext();
     return(ctx.Ninjas.FirstOrDefault(n => n.Id == id));
 }
예제 #14
0
 public List <Ninja> GetAll()
 {
     using var ctx = new NinjaManagerContext();
     return(ctx.Ninjas.ToList());
 }
예제 #15
0
 public List <Equipment> GetAll()
 {
     using var ctx = new NinjaManagerContext();
     return(ctx.Equipments.ToList());
 }
 public List <Equipment> GetEquipmentFromNinja(Ninja ninja)
 {
     using var ctx = new NinjaManagerContext();
     return(ctx.NinjaEquipments.ToList().FindAll(model => model.Ninja == ninja).Select(o => o.Equipment)
            .ToList());
 }
예제 #17
0
 public Equipment GetOne(int id)
 {
     using var ctx = new NinjaManagerContext();
     return(ctx.Equipments.FirstOrDefault(m => m.Id == id));
 }