コード例 #1
0
        private static void SaveCategories(IEnumerable <Category> categories, string connectionString = null)
        {
            var options = new DbContextOptionsBuilder <RunnerDbContext>()
                          .UseSqlServer(connectionString ?? "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=MarathonManager;Integrated Security=True")
                          .Options;

            using (var context = new RunnerDbContext(options))
            {
                context.AddRange(categories.ToList());
                context.SaveChanges();
            }
        }
コード例 #2
0
        public void Add_Category_with_name_longer_than_50_chars_AnyRandomDatabaseExeption()
        {
            var options = new DbContextOptionsBuilder <RunnerDbContext>()
                          .UseInMemoryDatabase(nameof(Add_Category_with_name_longer_than_50_chars_AnyRandomDatabaseExeption))
                          .Options;

            using (var context = new RunnerDbContext(options))
            {
                var category = new Category
                {
                    Name = "A Name longer than 50 Characters__40345678950Bllalbaldjflahsfduhalsdfj",
                };

                context.Categories.Add(category);
                Assert.ThrowsAny <Exception>(() => context.SaveChanges());
            }
        }
コード例 #3
0
        private static void CalculateTimes()
        {
            var optionsBuilder = new DbContextOptionsBuilder <RunnerDbContext>();

            optionsBuilder.UseSqlServer("Data Source=.;Initial Catalog=MarathonManager;Integrated Security=True");

            using (var context = new RunnerDbContext(optionsBuilder.Options))
                using (var unitOfWork = new UnitOfWork(context, new CategoryRepository(context), new RunnerRepository(context), new Database(context), new EmptyChangesFinder(), new EmptyChangesLogger()))
                {
                    var r        = context.Runners.SingleOrDefault(rx => rx.Startnumber == 193);
                    var category = context.Categories.Single(c => c.Id == 14);
                    r.RunningTime = r.TimeAtDestination - category.Starttime;
                    Console.WriteLine($"{r.Startnumber, 3} | {r.TimeAtDestination} | {r.RunningTime}");

                    context.SaveChanges();
                }

            Console.ReadKey();
        }
コード例 #4
0
        private static void InsertCategories()
        {
            var defaultCategories = ReadCategories();

            var options = new DbContextOptionsBuilder <RunnerDbContext>()
                          .UseSqlServer(Configuration.GetConnectionString("Default"))
                          .Options;

            using (var context = new RunnerDbContext(options))
            {
                var categories = defaultCategories.Select(c => new Category {
                    Name = c.Name
                });
                context.AddRange(categories);
                context.SaveChanges();

                WriteLine("Categories were successfully saved:");
                categories.ForEach(c => WriteLine($"| {c.Name}"));
            }
        }
コード例 #5
0
        public void CRUD_Operations_for_Categories()
        {
            var options = new DbContextOptionsBuilder <RunnerDbContext>()
                          .UseInMemoryDatabase("CRUD_Operations_for_Categories")
                          .Options;

            using (var context = new RunnerDbContext(options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                var categories = new[]
                {
                    new Category {
                        Name = "Category1"
                    },
                    new Category {
                        Name = "Category2"
                    },
                    new Category {
                        Name = "Category3"
                    },
                };

                context.Categories.AddRange(categories);
                context.SaveChanges();
            }

            using (var context = new RunnerDbContext(options))
            {
                var categories = context.Categories.ToList();

                Assert.Equal(3, categories.Count);
                Assert.Equal("Category2", categories[1].Name);
                Assert.Null(categories[1].Starttime);

                categories[0].Name = "New Category Name Number 1";
                categories[2].Name = "Whatever";

                context.SaveChanges();
            }

            using (var context = new RunnerDbContext(options))
            {
                var categories = context.Categories.ToList();

                Assert.Equal(3, categories.Count);
                Assert.Equal("New Category Name Number 1", categories[0].Name);
                Assert.Equal("Whatever", categories[2].Name);

                context.Remove(categories[1]);
                context.SaveChanges();
            }

            using (var context = new RunnerDbContext(options))
            {
                var categories = context.Categories.ToList();

                Assert.Equal(2, categories.Count);

                context.Categories.RemoveRange(categories);
                context.SaveChanges();
            }

            using (var context = new RunnerDbContext(options))
            {
                var countCategories = context.Categories.Count();

                Assert.Equal(0, countCategories);
            }
        }
コード例 #6
0
        public void CRUD_Operations_for_Runners()
        {
            var options = new DbContextOptionsBuilder <RunnerDbContext>()
                          .UseInMemoryDatabase("CRUD_Operations_for_Runners")
                          .Options;

            using (var context = new RunnerDbContext(options))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                var categories = new[]
                {
                    new Category {
                        Name = "Category1"
                    },
                    new Category {
                        Name = "Category2"
                    },
                    new Category {
                        Name = "Category3"
                    },
                };

                context.Categories.AddRange(categories);
                context.SaveChanges();
            }
            using (var context = new RunnerDbContext(options))
            {
                var categories = context.Categories.ToList();

                var runners = new[]
                {
                    new Runner {
                        Firstname = "Ein Vorname", Lastname = "Ein Nachname", Gender = Gender.Mann, YearOfBirth = 1980, Category = categories[0]
                    },
                    new Runner {
                        Firstname = "Ein anderer Vorname", Lastname = "Ein anderer Nachname", Gender = Gender.Frau, YearOfBirth = 1990, Category = categories[1]
                    },
                    new Runner {
                        Firstname = "Noch ein anderer Vorname", Lastname = "noch ein anderer Nachname", Gender = Gender.Mann, YearOfBirth = 2000, Category = categories[2]
                    }
                };

                context.Runners.AddRange(runners);
                context.SaveChanges();
            }
            using (var context = new RunnerDbContext(options))
            {
                var runners = context.Runners.ToList();

                Assert.Equal(3, runners.Count);
                Assert.Equal(1980, runners[0].YearOfBirth);
                Assert.Equal("Ein anderer Vorname", runners[1].Firstname);
                Assert.Equal(Gender.Mann, runners[2].Gender);
            }
            using (var context = new RunnerDbContext(options))
            {
                var runners = context.Runners.ToList();
                context.Runners.RemoveRange(runners);
                context.SaveChanges();
            }
            using (var context = new RunnerDbContext(options))
            {
                var countRunners = context.Runners.Count();
                Assert.Equal(0, countRunners);
            }
        }