public void Generate(GenerationOptions options)
        {
            try
            {
                if (options.GenerateContactStatuses)
                {
                    if (ContactStatusInfoProvider.GetContactStatuses().OnSite(mSiteId).Any())
                    {
                        Information("Contact statuses already exists");
                    }
                    else
                    {
                        new SampleContactStatusesGenerator(mSiteId).Generate();
                        Information("Contact statuses generated");
                    }
                }
                if (options.ContactsCount > 0)
                {
                    IPersonalDataGenerator personalDataGenerator = options.ContactsWithRealNames ?
                                                                   new RealPersonalDataGenerator() :
                                                                   (IPersonalDataGenerator) new StupidPersonalDataGenerator();
                    SampleContactsGenerator generator = new SampleContactsGenerator(personalDataGenerator, mSiteId);
                    generator.Generate(options.ContactsCount);
                    Information(options.ContactsCount + " contacts generated");
                }
                if (options.GeneratePersonas)
                {
                    ISamplePersonasGenerator personaGenerator = options.ContactsWithRealNames ?
                                                                new RealPersonasGenerator() :
                                                                (ISamplePersonasGenerator) new StupidPersonasGenerator();
                    personaGenerator.GeneratePersonas(mSiteId);
                    Information("Sample personas generated");
                }
                if (options.ScoresCount > 0)
                {
                    new SampleScoresGenerator().GenerateScores(options.ScoresCount, mSiteId);
                    Information(options.ScoresCount + " scores generated");
                }
                if (options.ActivitiesForEachExistingContactCount > 0)
                {
                    var contacts = ContactInfoProvider.GetContacts().OnSite(mSiteId);

                    var documents = DocumentHelper.GetDocuments()
                                    .PublishedVersion()
                                    .OnSite(mSiteId);

                    int activitiesGenerated = new SampleActivitiesGenerator().GenerateActivitiesForContacts(contacts, options.ActivitiesForEachExistingContactCount, documents.ToList());

                    Information(activitiesGenerated + " activities generated");
                }
            }
            catch (Exception e)
            {
                Error(e.Message);
            }
        }
 public SampleContactsGenerator(IPersonalDataGenerator personalDataGenerator, int siteID)
 {
     mPersonalDataGenerator = personalDataGenerator;
     mSiteId = siteID;
     mExistingContactStatuses = ContactStatusInfoProvider.GetContactStatuses().OnSite(mSiteId).ToList();
 }
 public SampleContactsGenerator(IPersonalDataGenerator personalDataGenerator, int siteID)
 {
     mPersonalDataGenerator = personalDataGenerator;
     mSiteId = siteID;
     mExistingContactStatuses = ContactStatusInfoProvider.GetContactStatuses().OnSite(mSiteId).ToList();
 }