예제 #1
0
        public virtual void Add(params T[] items)
        {
            foreach (T item in items)
            {
                context.Add(item);
            }

            context.SaveChanges();
        }
        private static void SeedRatings(OnlineFishShopDbContext context)
        {
            if (context.Ratings.Any())
            {
                return;
            }

            var    currentDirectory = Path.GetFullPath(@"..\OnlineFishShop.Data\Import\Json\RatingsMock.json");
            string json             = File.ReadAllText(currentDirectory);
            var    ratingsToSeed    = JsonConvert.DeserializeObject <List <Rating> >(json);

            Random r = new Random();

            var products = context.Products.ToList();
            var user     = context.Users.First(); //sequence users contains no elements

            foreach (var rating in ratingsToSeed)
            {
                rating.Product = products[r.Next(1, 25)];
                rating.User    = user;
            }

            context.Ratings.AddRange(ratingsToSeed);
            context.SaveChanges();
        }
        private static void SeedComments(OnlineFishShopDbContext context)
        {
            if (context.Comments.Any())
            {
                return;
            }

            var    currentDirectory = Path.GetFullPath(@"..\OnlineFishShop.Data\Import\Json\CommentsMock.json");
            string json             = File.ReadAllText(currentDirectory);

            var dateTimeFormat    = "dd/mm/yyyy";
            var dateTimeConverter = new IsoDateTimeConverter {
                DateTimeFormat = dateTimeFormat
            };

            var commentsToSeed = JsonConvert.DeserializeObject <List <Comment> >(json, dateTimeConverter);

            Random r = new Random();

            var products = context.Products.ToList();
            var user     = context.Users.First();

            //attach product and user to comments
            foreach (var comment in commentsToSeed)
            {
                comment.Product = products[r.Next(1, 25)];
                comment.User    = user;
            }

            context.AddRange(commentsToSeed);
            context.SaveChanges();
        }
        private static void SeedDeliveryOptions(OnlineFishShopDbContext context)
        {
            if (context.DeliveryOptions.Any())
            {
                return;
            }

            var    currentDirectory = Path.GetFullPath(@"..\OnlineFishShop.Data\Import\Json\DeliveryOptionsMock.json");
            string json             = File.ReadAllText(currentDirectory);
            var    optionsToSeed    = JsonConvert.DeserializeObject <List <DeliveryOption> >(json);

            context.DeliveryOptions.AddRange(optionsToSeed);
            context.SaveChanges();
        }
        private static void SeedProductsAndCategories(OnlineFishShopDbContext context, Category[] categoriesToSeed,
                                                      Product[] productsToSeed)
        {
            if (!context.Products.Any())
            {
                Random r = new Random();
                List <CategoryProduct> categoryProducts = new List <CategoryProduct>();

                foreach (var product in productsToSeed)
                {
                    categoryProducts.Add(new CategoryProduct()
                    {
                        Product  = product,
                        Category = categoriesToSeed[r.Next(0, categoriesToSeed.Length)]
                    });
                }

                context.AddRange(categoryProducts);
                context.SaveChanges();
            }
        }