public void Can_throw_an_exception()
        {
            using (var sandbox = new LocalDb())
            {
                Runner.MigrateToLatest(sandbox.ConnectionString);

                using (var one = new ZooDbContext(sandbox.ConnectionString))
                {
                    var enclosure = new Enclosure {
                        Environment = "Here", Name = "One", Location = "Here"
                    };
                    one.Enclosures.Add(enclosure);
                    one.SaveChanges();

                    using (var two = new ZooDbContext(sandbox.ConnectionString))
                    {
                        var change = two.Enclosures.Find(enclosure.Id);
                        change.Name = "Changed";
                        two.SaveChanges();
                    }

                    enclosure.Name = "Last Time";
                    Assert.Throws <DbUpdateConcurrencyException>(() => one.SaveChanges());
                }
            }
        }
 // PUT api/owner/5
 public HttpResponseMessage Put(Owner owner)
 {
     if (ModelState.IsValid)
     {
         db.Entry(owner).State = System.Data.Entity.EntityState.Modified;
         db.SaveChanges();
         HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, owner);
         return(response);
     }
     return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
 }
        public void can_get_animals_using_explicit_relationship_between_animal_and_enclosure()
        {
            using (var sandbox = new LocalDb())
            {
                Runner.MigrateToLatest(sandbox.ConnectionString);

                using (var context = new ZooDbContext(sandbox.ConnectionString))
                {
                    var enclosure = new Enclosure()
                    {
                        Id = 1, Name = "Kenya", Location = "Africa", Environment = "Sahara"
                    };
                    var animal = new Animal()
                    {
                        Name = "Nala", Species = "Lion", EnclosureId = 1
                    };

                    context.Animals.Add(animal);
                    context.Enclosures.Add(enclosure);
                    context.SaveChanges();

                    var controller = new HomeController()
                    {
                        Database = context
                    };

                    var result = controller.Index() as ViewResult;
                    var model  = result == null ? new IndexViewModel() : result.Model as IndexViewModel;

                    Assert.Equal(1, model.Animals.Count());
                    Assert.Equal("Nala", model.Animals.First().AnimalName);
                }
            }
        }
        public void can_get_animals_using_explicit_relationship_between_animal_and_enclosure()
        {
            using (var sandbox = new LocalDb())
            {
                Runner.MigrateToLatest(sandbox.ConnectionString);

                using (var context = new ZooDbContext(sandbox.ConnectionString))
                {
                    var enclosure = new Enclosure() { Id = 1, Name = "Kenya", Location = "Africa", Environment = "Sahara" };
                    var animal = new Animal() { Name = "Nala", Species = "Lion", EnclosureId = 1 };

                    context.Animals.Add(animal);
                    context.Enclosures.Add(enclosure);
                    context.SaveChanges();

                    var controller = new HomeController() { Database = context };

                    var result = controller.Index() as ViewResult;
                    var model = result == null ? new IndexViewModel() : result.Model as IndexViewModel;

                    Assert.Equal(1, model.Animals.Count());
                    Assert.Equal("Nala", model.Animals.First().AnimalName);
                }
            }
        }
Exemple #5
0
        public ActionResult AddAnimal(AnimalViewModel model)
        {
            if (ModelState.IsValid)
            {
                string[] arr = model.CareworkerName.Split(' ');

                if ((_context.Workers.ToList().Find(x => x.Name == arr[0]) != null) /*&& (_context.Workers.ToList().Find(x => x.Name == arr[0]) != null)*/ && (_context.Zoos.ToList().Find(x => x.Name == model.HomeZooName) != null))
                {
                    _context.Animals.Add(new Animal
                    {
                        Name        = model.Name,
                        Description = model.Description,
                        Cost        = model.Cost,
                        CareWorker  = _context.Workers.ToList().Find(x => x.Name == model.CareworkerName),
                        HomeZoo     = _context.Zoos.ToList().Find(x => x.Name == model.HomeZooName)
                    });
                    _context.SaveChanges();
                }
                else
                {
                    return(RedirectToAction("ErrorState", new { message = "Such worker or zoo doesn't exist!" }));
                }
            }

            return(RedirectToAction("ViewAllAnimals"));
        }
Exemple #6
0
        static async Task Connection()
        {
            await Task.Run(() =>
            {
                IZooDbContext db = new ZooDbContext();
                db.SaveChanges();
            });

            ZooDbContext.Connected = true;
        }
        public long AddInZoo(Animal animal, long zooId)
        {
            var zoo = _context.Set <Zoo>()
                      .Include(it => it.Animals)
                      .FirstOrDefaultAsync(it => it.Id == zooId).Result;

            var lastId = zoo.Animals.Last().Id;

            animal.Id = lastId + 1;

            zoo.Animals.Add(animal);
            _context.Entry(zoo).State = EntityState.Modified;

            _context.SaveChanges();
            return(animal.Id);
        }
Exemple #8
0
        public long AddZoo(string city)
        {
            var zoos = _context.Set <Zoo>();

            var lastId = zoos.Last().Id;

            var newZoo = new Zoo {
                Id   = lastId,
                City = city
            };

            zoos.Add(newZoo);
            _context.Entry(newZoo).State = EntityState.Modified;

            _context.SaveChanges();
            return(lastId);
        }
        public void Can_throw_an_exception()
        {
            using (var sandbox = new LocalDb())
            {
                Runner.MigrateToLatest(sandbox.ConnectionString);

                using (var one = new ZooDbContext(sandbox.ConnectionString))
                {
                    var enclosure = new Enclosure {Environment = "Here", Name = "One", Location = "Here"};
                    one.Enclosures.Add(enclosure);
                    one.SaveChanges();

                    using (var two = new ZooDbContext(sandbox.ConnectionString))
                    {
                        var change = two.Enclosures.Find(enclosure.Id);
                        change.Name = "Changed";
                        two.SaveChanges();
                    }

                    enclosure.Name = "Last Time";
                    Assert.Throws<DbUpdateConcurrencyException>(() =>  one.SaveChanges());
                }
            }
        }