private void LoadGridData() { IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <SimpleProduct>(); x.Include <SimpleProduct>() .Setup(c => c.ProductName).Use <FirstNameSource>() .Setup(c => c.Id).Use <IntegerIdSource>() .Setup(c => c.ProductDescription).Use <RandomStringSource>(5, 20); }); var session = factory.CreateSession(); var r = new Random(234234); var rn = r.Next(5, 100); IList <SimpleProduct> products = session.List <SimpleProduct>(25) .Impose(x => x.Price, r.Next() * rn) .Get(); var bl = new ProductList(); foreach (var i in products) { bl.Add(i); } gv.DataSource = bl; }
static SampleData_ApplicationUser() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <ApplicationUser>(); x.Include <ApplicationUser>() .Setup(p => p.Gender).Use <GenderSource>() .Setup(p => p.ContactPhone).Use <PhoneDataSource>() .Setup(p => p.ContactPhoneExt).Use <PhoneExtDataSource>() .Setup(p => p.ForeignSmsEnabled).Use <BooleanSource>() .Setup(p => p.Email).Use <EmailAddressSource>() .Setup(p => p.EmailConfirmed).Use <BooleanSource>() .Setup(p => p.PhoneNumber).Use <MobileDataSource>() .Setup(p => p.PhoneNumberConfirmed).Use <BooleanSource>() ; }); session = factory.CreateSession(); randomNumberGenerator = new RandomNumberGenerator(); }
public ProblemControllerTest() { // Perform factory set up (once for entire test run) IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => c.UseDefaultConventions()); x.AddFromAssemblyContainingType <Member>(); x.Include <Member>() .Setup(m => m.Id).Use <ObjectIdDataSource>() .Setup(m => m.OpenId).Random(5, 10) .Setup(m => m.UserName).Random(5, 7); x.Include <Problem>() .Setup(p => p.Id).Use <ObjectIdDataSource>() .Setup(p => p.Text).Use <LoremIpsumSource>() .Setup(p => p.Title).Random(7, 12); x.Include <Response>() .Setup(r => r.Text).Use <LoremIpsumSource>(); }); // Generate one of these per test (factory will be a static variable most likely) _session = factory.CreateSession(); }
static SampleData_LogItem() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <LogItem>(); x.Include <LogItem>() .Setup(p => p.EntryAssembly).Use <SubjectDataSource>() .Setup(p => p.Class).Use <SubjectDataSource>() .Setup(p => p.Method).Use <SubjectDataSource>() .Setup(p => p.Message).Use <ContentDataSource>() .Setup(p => p.StackTrace).Use <ContentDataSource>() .Setup(p => p.CreatedTime).Use <DateTimeSource>(DateTime.UtcNow.AddYears(-10), DateTime.UtcNow.AddYears(10)) .Setup(p => p.Host).Use <SubjectDataSource>() ; }); session = factory.CreateSession(); randomNumberGenerator = new RandomNumberGenerator(); }
public static IGenerationSession GetSession() { if (_factory == null) _factory = GetFactory(); return _factory.CreateSession(); }
static SampleData_Contact() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <Contact>(); x.Include <Contact>() .Setup(p => p.Name).Use <FirstNameSource>() .Setup(p => p.Mobile).Use <MobileDataSource>() .Setup(p => p.HomePhoneArea).Use <PhoneAreaDataSource>() .Setup(p => p.HomePhone).Use <PhoneDataSource>() .Setup(p => p.CompanyPhoneArea).Use <PhoneAreaDataSource>() .Setup(p => p.CompanyPhone).Use <PhoneDataSource>() .Setup(p => p.CompanyPhoneExt).Use <PhoneExtDataSource>() .Setup(p => p.Email).Use <EmailAddressSource>() .Setup(p => p.Msn).Use <MsnDataSource>() .Setup(p => p.Description).Use <DescriptionDataSource>() .Setup(p => p.Birthday).Use <BirthdaySource>(2005, 2010) .Setup(p => p.ImportantDay).Use <BirthdaySource>(2005, 2010) .Setup(p => p.Gender).Use <GenderSource>() ; }); session = factory.CreateSession(); randomNumberGenerator = new RandomNumberGenerator(); }
public void Configure_ReturnsFactory() { IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { }); Assert.NotNull(factory); }
public static IGenerationSession GetSession() { if (_factory == null) { _factory = GetFactory(); } return(_factory.CreateSession()); }
public List <string> CreateAccounts([FromBody] int count) { List <string> accounts = new List <string>(); Random r = new Random(); #region Random customer name generator with AutoPoco // Perform factory set up (once for entire test run) IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <Person>(); x.Include <Person>().Setup(p => p.FirstName).Use <FirstNameSource>() .Setup(p => p.LastName).Use <LastNameSource>(); }); // Generate one of these per test (factory will be a static variable most likely) IGenerationSession session = factory.CreateSession(); #endregion #region Create N bank accounts ServiceEventSource.Current.Message("@AccountsController.Create - Instanciating and initializating '{0}' actors", count); // Console.WriteLine(": "); for (int j = 0; j < count; j++) { // generate random account number string accountNumber = r.Next(0, 50000000).ToString("00000000"); // generate name of customer Person p = session.Single <Person>().Get(); string accountOwner = p.FirstName + " " + p.LastName; // generate starting balance for the account. Always multiple of 10 to make it easier to detect changes because of transfers int startingBalance = r.Next(0, 10000) * 10; // 'create' and initialize the actor ActorId newActorId = new ActorId(accountNumber); IBankAccount newBankAccount = ActorProxy.Create <IBankAccount>(newActorId, "fabric:/SFActors.BankAccounts"); newBankAccount.InitializeState(accountOwner, startingBalance).GetAwaiter().GetResult(); // debug BankAccountStateBase state = newBankAccount.GetAccountInfo().GetAwaiter().GetResult(); ServiceEventSource.Current.Message("@AccountsController.Create - " + state.CustomerName + " has €" + state.Balance + " in account nb: " + state.AccountNumber); accounts.Add(accountNumber); } #endregion return(accounts); }
private void create100button_Click(object sender, EventArgs e) { #region Random customer name generator // Perform factory set up (once for entire test run) IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <Person>(); x.Include <Person>().Setup(p => p.FirstName).Use <FirstNameSource>() .Setup(p => p.LastName).Use <LastNameSource>(); }); // Generate one of these per test (factory will be a static variable most likely) IGenerationSession session = factory.CreateSession(); #endregion progressBar1.Value = 0; for (int j = 0; j < 20; j++) { // generate account number Random r = new Random(); string accountNumber = r.Next(0, 50000000).ToString("00000000"); // generate name Person p = session.Single <Person>().Get(); string accountOwner = p.FirstName + " " + p.LastName; // generate starting balance int startingBalance = r.Next(0, 10000); // 'create' the actor ActorId newActorId = new ActorId(accountNumber); IBankAccount newBankAccount = ActorProxy.Create <IBankAccount>(newActorId, "fabric:/SFActors.BankAccounts"); System.Threading.Thread.Sleep(200); newBankAccount.InitializeState(accountOwner, startingBalance).GetAwaiter().GetResult(); System.Threading.Thread.Sleep(200); //BankAccountStateBase state = newBankAccount.GetAccountInfo().GetAwaiter().GetResult(); //textBox1.Text += state.CustomerName + " has £" + state.Balance + " in account " + state.AccountNumber + Environment.NewLine; //System.Threading.Thread.Sleep(200); _accounts.Add(accountNumber); progressBar1.PerformStep(); } textBox1.Text += "100 Bank Account actors created" + Environment.NewLine; }
public void TestInitialize() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => c.UseDefaultConventions()); x.AddFromAssemblyContainingType<Person>(); x.Include<Person>() .Setup(c => c.FirstName).Use<FirstNameSource>() .Setup(c => c.LastName).Use<LastNameSource>(); }); }
public void SetUp() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType<Person>(); }); IGenerationSession session = factory.CreateSession(); people = session.List<Person>(100).Get(); }
/// <summary> /// This is for generating test data /// </summary> public AutopocoRepository() { IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => c.UseDefaultConventions()); x.AddFromAssemblyContainingType <UserModel>(); x.Include <UserModel>().Setup(r => r.FirstName).Use <FirstNameSource>(); x.Include <UserModel>().Setup(r => r.LastName).Use <LastNameSource>(); x.Include <UserModel>().Setup(r => r.Email).Use <EmailAddressSource>(); }); Session = factory.CreateSession(); }
/// <summary> /// Create new Person default ctor /// </summary> public PersonController() { _factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.Include <PersonDetails>() .Setup(s => s.FirstName).Use <FirstNameSource>() .Setup(s => s.LastName).Use <LastNameSource>() .Setup(s => s.EmailAddress).Use <EmailAddressSource>(); }); }
public ObjectClonerTest() { _factory = AutoPocoContainer.Configure(x => { x.Conventions(c => c.UseDefaultConventions()); x.AddFromAssemblyContainingType <Task>(); x.Include <Task>() .Setup(c => c.Id).Value(1) .Setup(c => c.Summary).Use <LoremIpsumSource>() .Setup(c => c.Details).Use <LoremIpsumSource>() .Setup(c => c.CreatedDate).Value(DateTime.Now) .Setup(c => c.ModifiedDate).Value(DateTime.Now); }); }
public static void GenerateData() { IGenerationSessionFactory factory = GenerationFactory.ConfigureFactory(); IGenerationSession session = factory.CreateSession(); Role[] roles = CreateAndSaveRoles(Repository); IList <CustomerProfile> profiles = CreateAndSaveCustomerProfiles(Repository); CreateAndSaveAgencies(session, Repository); CreateAndSaveOAuthConsumers(Repository); CreateCustomersWithAccounts(session, Repository, roles); Repository.Flush(); }
public static Person GenerateSinglePerson() { IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <Person>(); x.Include <Person>() .Setup(c => c.Id).Use <IntegerIdSource>() .Setup(c => c.FirstName).Use <FirstNameSource>() .Setup(c => c.DateEntityCreation).Use <DateOfBirthSource>() .Setup(c => c.DateEntityModification).Use <DateOfBirthSource>(); }); IGenerationSession session = factory.CreateSession(); return(session.Single <Person>().Get()); }
private static IEnumerable <Customer> GenerateDemoCustomers() { IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => c.UseDefaultConventions()); x.AddFromAssemblyContainingType <Customer>(); x.Include <Customer>() .Setup(c => c.FirstName).Use <FirstNameSource>() .Setup(c => c.LastName).Use <LastNameSource>() .Setup(c => c.Mail).Use <EmailAddressSource>() .Setup(c => c.DateOfBirth).Use <DateOfBirthSource>(); }); IGenerationSession session = factory.CreateSession(); return(session.List <Customer>(1000).Get()); }
private static IEnumerable <Invoice> GenerateDemoInvoices(int customerId) { Random rnd = new Random(customerId); int amountOfInvoices = rnd.Next(0, 10); IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => c.UseDefaultConventions()); x.AddFromAssemblyContainingType <Invoice>(); x.Include <Invoice>() .Setup(c => c.Amount).Use <DecimalSource>(1m, 200m); }); IGenerationSession session = factory.CreateSession(); return(session.List <Invoice>(amountOfInvoices).Get()); }
public static IList <Person> GeneratePeople(int numregisters) { IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <Person>(); x.Include <Person>() .Setup(c => c.Id).Use <IntegerIdSource>() .Setup(c => c.FirstName).Use <FirstNameSource>() .Setup(c => c.DateEntityCreation).Use <DateOfBirthSource>() .Setup(c => c.DateEntityModification).Use <DateOfBirthSource>(); }); IGenerationSession session = factory.CreateSession(); IList <Person> students = session.List <Person>(numregisters).Get(); return(students); }
private static IList <Gutachter> GenerateDemoData() { IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => c.UseDefaultConventions()); x.AddFromAssemblyContainingType <Gutachter>(); x.Include <Gutachter>() .Setup(c => c.Id).Use <IntegerIdSource>() .Setup(c => c.Vorname).Use <FirstNameSource>() .Setup(c => c.Nachname).Use <LastNameSource>() .Setup(c => c.EMail).Use <EmailAddressSource>(); }); IGenerationSession session = factory.CreateSession(); IList <Gutachter> gutachter = session.List <Gutachter>(1001).Get(); gutachter.RemoveAt(0); return(gutachter); }
static SampleData_Group() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <Group>(); x.Include <Group>() .Setup(p => p.Name).Use <ContactGroupNameSource>() .Setup(p => p.Deletable).Use <BooleanSource>() ; }); session = factory.CreateSession(); randomNumberGenerator = new RandomNumberGenerator(); }
static SampleData_ReplyCc() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <ReplyCc>(); x.Include <ReplyCc>() .Setup(p => p.BySmsMessage).Use <BooleanSource>() .Setup(p => p.ByEmail).Use <BooleanSource>() ; }); session = factory.CreateSession(); randomNumberGenerator = new RandomNumberGenerator(); }
static SampleData_TradeDetail() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <TradeDetail>(); x.Include <TradeDetail>() .Setup(p => p.TradeTime).Use <DateTimeSource>(DateTime.UtcNow.AddYears(-10), DateTime.UtcNow.AddYears(10)) .Setup(p => p.Remark).Use <ContentDataSource>() ; }); session = factory.CreateSession(); randomNumberGenerator = new RandomNumberGenerator(); }
private static IEnumerable <Customer> GenerateDemoCustomers() { IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => c.UseDefaultConventions()); x.AddFromAssemblyContainingType <Customer>(); x.Include <Customer>() .Setup(c => c.FirstName).Use <FirstNameSource>() .Setup(c => c.LastName).Use <LastNameSource>() .Setup(c => c.Mail).Use <EmailAddressSource>() .Setup(c => c.DateOfBirth).Use <DateOfBirthSource>(); }); IGenerationSession session = factory.CreateSession(); return(session.List <Customer>(1000) .First(100) .Impose(x => x.LastName, "Ashton") .Next(100) .Impose(x => x.LastName, "Smith") .Next(100) .Impose(x => x.LastName, "Dexter") .Next(100) .Impose(x => x.LastName, "Grimes") .Next(100) .Impose(x => x.LastName, "Walsh") .Next(100) .Impose(x => x.LastName, "Rhee") .Next(100) .Impose(x => x.LastName, "Horvath") .Next(100) .Impose(x => x.LastName, "Dixon") .Next(100) .Impose(x => x.LastName, "Jones") .Next(100) .Impose(x => x.LastName, "Martinez") .All() .Get()); }
static SampleData_Signature() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <Signature>(); x.Include <Signature>() .Setup(p => p.Subject).Use <SubjectDataSource>() .Setup(p => p.Content).Use <ContentDataSource>() .Setup(p => p.UpdatedTime).Use <DateTimeSource>(DateTime.UtcNow.AddYears(-10), DateTime.UtcNow.AddYears(10)) ; }); session = factory.CreateSession(); randomNumberGenerator = new RandomNumberGenerator(); }
static SampleData_Blacklist() { factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <Blacklist>(); x.Include <Blacklist>() .Setup(p => p.Name).Use <FirstNameSource>() .Setup(p => p.Mobile).Use <MobileDataSource>() .Setup(p => p.Enabled).Use <BooleanSource>() .Setup(p => p.Remark).Use <RemarkDataSource>() .Setup(p => p.UpdatedTime).Use <DateTimeSource>(DateTime.UtcNow.AddYears(-10), DateTime.UtcNow.AddYears(10)) ; }); session = factory.CreateSession(); randomNumberGenerator = new RandomNumberGenerator(); }
/// <summary> /// Configuration of generation session factory. Each property of each POCO object is configured. Several /// properties are configured to use Sources to generated meaningful values. /// Several properties have to be set to Value(null). If not then a empty POCO would be generated. This would cause problems /// later while saving to DB using NHibernate, while the generated POCO would not be persisted. /// </summary> /// <returns></returns> public static IGenerationSessionFactory ConfigureFactory() { IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <UserIdentity>(); x.Include <UserIdentity>() .Setup(u => u.Email).Use <EmailAddressSource>() .Setup(u => u.ValidityEndDate).Use <ValidityEndDateSource>() .Setup(u => u.ValidityStartDate).Use <ValidityStartDateSource>(); x.AddFromAssemblyContainingType <Customer>(); x.Include <Customer>() .Setup(u => u.PhoneNumber).Use <PhoneNumberSource>() .Setup(c => c.FirstName).Use <FirstNameSource>() .Setup(c => c.LastName).Use <LastNameSource>() .Setup(c => c.Code).Use <IndividualCustomerCodeSource>() .Setup(c => c.BirthDate).Use <DateOfBirthSource>() .Setup(c => c.CustomerProfile).Value(null) .Setup(c => c.Situation).Use <RandomEnumerationDataSource <FamilySituation> >() .Setup(u => u.Advisor).Value(null); x.AddFromAssemblyContainingType <Account>(); x.Include <Account>() .Setup(a => a.Name).Use <AccountNameDataSource>() .Setup(a => a.Balance).Use <AccountBalanceDataSource>() .Setup(a => a.Iban).Use <IbanDataSource>() .Setup(a => a.Number).Use <AccountNumberSource>(); x.AddFromAssemblyContainingType <Operation>(); x.Include <Operation>() .Setup(o => o.Amount).Use <OperationAmountSource>() .Setup(o => o.Description).Use <DescriptionSource>() .Setup(o => o.Direction).Use <RandomEnumerationDataSource <Direction> >() .Setup(o => o.Tag).Value(null) .Setup(o => o.Date).Use <OperationDateSource>(); x.AddFromAssemblyContainingType <PaymentEvent>(); x.Include <PaymentEvent>() .Setup(o => o.Date).Use <OperationDateSource>() .Setup(o => o.Name).Use <MotifSource>() .Setup(o => o.Description).Use <MotifSource>() .Setup(o => o.Amount).Use <OperationAmountSource>() .Setup(o => o.Operation).Value(null) .Setup(o => o.Partner).Value(null); x.AddFromAssemblyContainingType <BusinessPartner>(); x.Include <BusinessPartner>() .Setup(b => b.Name).Use <CorporateNameDataSource>() //.Setup(b=>b.Description).Use<LoremIpsumSource>() .Setup(b => b.Iban).Use <IbanDataSource>(); x.AddFromAssemblyContainingType <CustomerProfile>(); x.Include <CustomerProfile>() .Setup(p => p.LowAge).Use <DecaDataSource>(0) .Setup(p => p.HighAge).Use <DecaDataSource>(10); double maxLng = 2.425575; double minLng = 2.276573; double minLat = 48.817264; double maxLat = 48.897678; x.AddFromAssemblyContainingType <Agency>(); x.Include <Agency>() .Setup(a => a.Lat).Use <DoubleFromRangeDataSource>(minLat, maxLat) .Setup(a => a.Lng).Use <DoubleFromRangeDataSource>(minLng, maxLng) .Setup(a => a.Address).Use <CorporateNameDataSource>(); }); return(factory); }
static void Main(string[] args) { // Perform factory set up (once for entire test run) IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); // allows for the scanning of an assembly x.AddFromAssemblyContainingType <User>(); // Optionally Setting up data sources for an object // AutoPoco provided built-in data sources: // https://autopoco.codeplex.com/wikipage?title=DataSourceList&referringTitle=Configuration x.Include <User>() .Setup(c => c.Id).Use <IntegerIdSource>() .Setup(c => c.EmailAddress).Use <EmailAddressSource>() .Setup(c => c.FirstName).Use <FirstNameSource>() .Setup(c => c.CreditCard).Use <CreditCardSource>() .Setup(c => c.DOB).Use <DateOfBirthSource>() .Setup(c => c.LastName).Use <LastNameSource>() .Setup(c => c.State).Use <UsStatesSource>(false) // true: abbreviated .Invoke(c => c.SetPassword(Use.Source <String, RandomStringSource>(8, 16))); // String min, max length }); // Generate one of these per test (factory will be a static variable most likely) IGenerationSession session = factory.CreateSession(); // Get a collection of users based on data sources ONLY //IList<User> users = session.List<User>(25).Get(); // Get a collection of users, with Customization IList <User> users = session.List <User>(100) .Impose(x => x.Role, "Admin") .Impose(x => x.Age, 21) .First(1) .Impose(x => x.FirstName, "Vincent") .Impose(x => x.LastName, "Leung") .Next(1) .Impose(x => x.FirstName, "Kayla") .Impose(x => x.LastName, "Leung") .All() .Random(25) .Impose(x => x.Role, "Admin") .Impose(x => x.Age, 35) .Next(25) .Impose(x => x.Role, "Guest") .Invoke(x => x.SetPassword("Password1")) .Next(50) .Impose(x => x.Role, "Operator") .All() .Get(); foreach (var u in users) { Console.WriteLine(u.Id + ", " + u.FirstName + ", " + u.LastName + ", " + u.Age + ", " + u.EmailAddress + ", " + u.DOB + ", " + u.CreditCard + ", " + u.Role + ", " + u.State + ", " + u.Password ); } // Get a single user User user = session.Single <User>().Get(); Console.ReadLine(); }
static void Main(string[] args) { List <string> _accounts = new List <string>(); Random r = new Random(); #region Random customer name generator with AutoPoco // Perform factory set up (once for entire test run) IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType <Person>(); x.Include <Person>().Setup(p => p.FirstName).Use <FirstNameSource>() .Setup(p => p.LastName).Use <LastNameSource>(); }); // Generate one of these per test (factory will be a static variable most likely) IGenerationSession session = factory.CreateSession(); #endregion #region Create 100 bank accounts Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Instanciating and initializating 100 actors: "); Console.ForegroundColor = ConsoleColor.Gray; for (int j = 0; j < 100; j++) { // generate account number string accountNumber = r.Next(0, 50000000).ToString("00000000"); // generate name Person p = session.Single <Person>().Get(); string accountOwner = p.FirstName + " " + p.LastName; // generate starting balance int startingBalance = r.Next(0, 10000); // 'create' the actor ActorId newActorId = new ActorId(accountNumber); IBankAccount newBankAccount = ActorProxy.Create <IBankAccount>(newActorId, "fabric:/SFActors.BankAccounts"); newBankAccount.InitializeState(accountOwner, startingBalance).GetAwaiter().GetResult(); BankAccountStateBase state = newBankAccount.GetAccountInfo().GetAwaiter().GetResult(); Console.WriteLine(state.CustomerName + " has €" + state.Balance + " in account nb: " + state.AccountNumber); _accounts.Add(accountNumber); } #endregion #region Create 100 Standing Orders Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("100 Bank Account actors created. Press a key to create 100 standing orders."); Console.ForegroundColor = ConsoleColor.Gray; Console.ReadLine(); for (int j = 0; j < 100; j++) { int posSource = r.Next(0, _accounts.Count); int posTarget = r.Next(0, _accounts.Count); if (posSource == posTarget) { // one less transfer... continue; } ActorId sourceAccountId = new ActorId(_accounts[posSource]); IBankAccount sourceAccountProxy = ActorProxy.Create <IBankAccount>(sourceAccountId, "fabric:/SFActors.BankAccounts"); double howMuch = r.NextDouble() * 500; short onMinute = (short)r.Next(0, 60); sourceAccountProxy.AddStandingOrder(_accounts[posTarget], howMuch, onMinute); Console.WriteLine("SO payable to account {0} of €{1:f2} on minute {2}", _accounts[posTarget], howMuch, onMinute); } Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("100 Standing orders registered created"); Console.ForegroundColor = ConsoleColor.Gray; #endregion #region GO CRAZY with creating objects Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("Enter how many more actors you want to create (and SO's):"); string more = Console.ReadLine(); Console.ForegroundColor = ConsoleColor.Gray; int howManyMore = int.Parse(more); for (int j = 0; j < howManyMore; j++) { // generate account number string accountNumber = r.Next(0, 50000000).ToString("00000000"); // generate name Person p = session.Single <Person>().Get(); string accountOwner = p.FirstName + " " + p.LastName; // generate starting balance int startingBalance = r.Next(0, 10000); // 'create' the actor ActorId newActorId = new ActorId(accountNumber); IBankAccount newBankAccount = ActorProxy.Create <IBankAccount>(newActorId, "fabric:/SFActors.BankAccounts"); newBankAccount.InitializeState(accountOwner, startingBalance).GetAwaiter().GetResult(); Console.Write("A"); _accounts.Add(accountNumber); } for (int j = 0; j < howManyMore; j++) { int posSource = r.Next(0, _accounts.Count); int posTarget = r.Next(0, _accounts.Count); if (posSource == posTarget) { // one less transfer... continue; } ActorId sourceAccountId = new ActorId(_accounts[posSource]); IBankAccount sourceAccountProxy = ActorProxy.Create <IBankAccount>(sourceAccountId, "fabric:/SFActors.BankAccounts"); double howMuch = r.NextDouble() * 500; short onMinute = (short)r.Next(0, 60); sourceAccountProxy.AddStandingOrder(_accounts[posTarget], howMuch, onMinute); Console.Write("S"); } #endregion Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("Done! Press any key to exit this tool."); Console.ReadLine(); Console.ForegroundColor = ConsoleColor.Gray; }