private void FillOrdersScripts(EFOrderRepository repository)
		{
			foreach (string file in _files)
			{
				RunCommand(repository, file, "Orders");
			}
		}
		private void CreateOrders(EFOrderRepository repository)
		{
			var paymentMethods = repository.PaymentMethods.ToList();

			var customerId = 1;
			var rnd = new Random();
			for (var i = 0; i < _customers.Length - 1; i++) // 20 customers, with 2 orders each
			{
				for (var index = 0; index < 2; index++)
				{
					var order = MockOrderBuilder.BuildOrder()
												.WithAddresses()
												.WithPayments(paymentMethods)
												.WithShipment()
												.WithLineItemsCount(2 + rnd.Next(5))
												.WithReturns()
												.WithStatus("InProgress")
												.WithCustomer(customerId.ToString(CultureInfo.InvariantCulture), _customers[i])
						// .WithOrderFormPropertyValues()
												.GetOrder();
					order.StoreId = "SampleStore";
					order.OrderForms[0].Shipments[0].ShippingAddressId = order.OrderAddresses[1].OrderAddressId;

					repository.Add(order);
				}

				repository.UnitOfWork.Commit();

				customerId++;
			}
		}
        public override void Publish(string dbconnection, string data, bool sample, string strategy = SqlDbConfiguration.SqlAzureExecutionStrategy)
		{
			base.Publish(dbconnection, data, sample, strategy);
			var connection = dbconnection;
			SafeWriteDebug("ConnectionString: " + connection);

			using (var db = new EFOrderRepository(connection))
			{
				if (sample)
				{
					SafeWriteVerbose("Running sample scripts");
					new SqlOrderSampleDatabaseInitializer().InitializeDatabase(db);
				}
				else
				{
					SafeWriteVerbose("Running minimum scripts");
					new SqlOrderDatabaseInitializer().InitializeDatabase(db);
				}
			}
		}
		protected override void Seed(EFOrderRepository context)
		{
			base.Seed(context);
			CreateOrders(context);
			FillOrdersScripts(context);
		}
		public void Dispose()
		{
			try
			{
				// Ensure LocalDb databases are deleted after use so that LocalDb doesn't throw if
				// the temp location in which they are stored is later cleaned.
				using (var context = new EFOrderRepository(TestDSOrderService.DatabaseName))
				{
					context.Database.Delete();
				}

				if (_Service != null)
				{
					_Service.Dispose();
				}
			}
			finally
			{
				AppDomain.CurrentDomain.SetData("DataDirectory", _previousDataDirectory);
			}
		}