コード例 #1
0
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var context = new MatchmakingContext(
                       serviceProvider.GetRequiredService <DbContextOptions <MatchmakingContext> >()))
            {
                // Look for any board games already in database.
                if (context.TransactionalData.Any())
                {
                    return; // Database has been seeded
                }
                List <Buyer>    buyers    = Enumerable.Range(0, NumberOfBuyers).Select(i => new Buyer(i + 1)).ToList();
                List <Supplier> suppliers = Enumerable.Range(0, NumberOfSuppliers).Select(i =>
                                                                                          new Supplier((i + 1), GenerateRandomNumberInRange(0, 100), GenerateRandomNumberInRange(0, 100), GenerateRandomNumberInRange(2, 500))).ToList();

                List <TransactionalData> transactionalData = new List <TransactionalData>();
                for (int i = 0; i < NumberOfHistoricalDataEntries; i++)
                {
                    TransactionalData datum = new TransactionalData
                    {
                        TransactionId             = i + 1,
                        SupplierId                = GenerateSupplierId(i),
                        BuyerId                   = GenerateBuyerId(i),
                        PriceClassification       = GetRandomPrice(i),
                        QualityLikert             = GenerateQualityLikertValues(i),
                        DeliveryTimeLikert        = GenerateDeliveryTimeLikertValue(i),
                        PackagingLikert           = GeneratePackagingLikertvalue(i),
                        ResponseRateLikert        = GenerateResponseRateLikertValue(i),
                        OverallSatesfactionLikert = GenerateOverallSatesfactionLikertValue(i)
                    };
                    transactionalData.Add(datum);

                    foreach (var buyer in buyers)
                    {
                        if (buyer.Id == datum.BuyerId)
                        {
                            buyer.AddTransactionalData(datum);
                        }
                    }
                }

                context.AddRange(suppliers);
                context.AddRange(transactionalData);
                context.AddRange(buyers);

                context.SaveChanges();
            }
        }
コード例 #2
0
ファイル: CloudService.cs プロジェクト: HWConscious/HWCCore
 /// <summary>
 /// Dispose DataClient
 /// </summary>
 public void Dispose()
 {
     if (_configurationData != null)
     {
         _configurationData.Dispose();
         ConfigurationData.Dispose();
     }
     if (_transactionalData != null)
     {
         _transactionalData.Dispose();
         TransactionalData.Dispose();
     }
     if (_transientData != null)
     {
         _transientData.Dispose();
         TransientData.Dispose();
     }
 }
コード例 #3
0
        /// <summary>
        /// Seeds Transactional Data
        /// </summary>
        /// <param name="dataClientConfig"></param>
        /// <returns></returns>
        private async Task TransactionalDataDemoAsync(Config.DataClientConfig dataClientConfig)
        {
            try
            {
                using (DataClient dataClient = new DataClient(dataClientConfig))
                {
                    if (dataClient.TransactionalData != null)
                    {
                        TransactionalData transactionalData = dataClient.TransactionalData;

                        // Explicit loading. When the entity is first read, related data isn't retrieved.
                        // Example code that retrieves the related data. It impacts retrieval performance hence only use if it's needed.
                        await transactionalData.ClientUsers.Include(clientUser => clientUser.Client)
                        .Include(clientUser => clientUser.User).LoadAsync();

                        await transactionalData.UserCoupons.Include(userCoupon => userCoupon.User)
                        .Include(userCoupon => userCoupon.Coupon).LoadAsync();


                        ///////// DB seeding with demo content /////////

                        // Look for any Clients
                        if (transactionalData.ClientUsers.Any())
                        {
                            string log = "Total ClientUsers found: " + transactionalData.ClientUsers.LongCount() + " | " +
                                         "Total UserCoupons found: " + transactionalData.UserCoupons.LongCount();
                            Context.Logger.LogLine("[TransactionalData Summary]");
                            Context.Logger.LogLine(log);
                            return;   // DB has been seeded already
                        }

                        // DB save operation
                        Context.Logger.LogLine("[Adding contents for TransactionalData]");

                        // Adding ClientUsers
                        var clientUsers = new ClientUser[]
                        {
                            new ClientUser {
                                ClientID = 1, UserID = 1
                            }
                        };
                        foreach (ClientUser clientUser in clientUsers)
                        {
                            transactionalData.ClientUsers.Add(clientUser);
                        }
                        Context.Logger.LogLine("1 ClientUser added");

                        // Adding UserCoupons
                        var userCoupons = new UserCoupon[]
                        {
                            new UserCoupon {
                                UserID = 1, CouponID = 1
                            }
                        };
                        foreach (UserCoupon userCoupon in userCoupons)
                        {
                            transactionalData.UserCoupons.Add(userCoupon);
                        }
                        Context.Logger.LogLine("1 UserCoupon added");

                        // SAVING the changes into physical DB
                        await transactionalData.SaveChangesAsync();
                    }
                }
            }
            catch (Exception ex)
            {
                Context.Logger.LogLine("TransactionalData ERROR: " + ex.Message);
            }
        }