protected void LoadMasterStoreDefaults() { using (var session = MasterStore.OpenSession()) { var leaveType = new LeaveType {Code = "annualleave", Name = "Annual Leave"}; session.Store(leaveType); var sicknessReasons = new List<SicknessReason> { new SicknessReason { Children = new List<SicknessReason> { new SicknessReason { Code = "lumbago", Description = "desc", FullName = "fullname", Id=IlluminateDatabase.GenerateId<SicknessReason>() }, }, Code = "back", Id = IlluminateDatabase.GenerateId<SicknessReason>() }, new SicknessReason { Children = new List<SicknessReason> { new SicknessReason { Code = "ankle", Description = "desc", FullName = "fullname", Id=IlluminateDatabase.GenerateId<SicknessReason>() }, }, Code = "joints", Id = IlluminateDatabase.GenerateId<SicknessReason>() } }; var sc = new SicknessClassification { SicknessReasons = sicknessReasons }; session.Store(sc); session.SaveChanges(); } }
public override void Import(Stream stream) { ErrorLines.Clear(); var reader = new StreamReader(stream); string line ; //ignore first line(s). for (var i = 0; i < IgnoreLines; i++) { reader.ReadLine(); } //parse each line var re = new Regex( @"^(?<personnelnumber>[^\t]+)\t(?<startdate>[^\t]+)\t(?<enddate>[^\t]+)\t(?<leavetype>[^\t]+)\t(?<title>[^\t]*)$"); //TODO: more sophisticated regex for dates etc. while ((line = reader.ReadLine()) != null) { var match = re.Match(line); if (match.Success) { using (var Session = Store.OpenSession()) { //match relevant bits. var personnelnumber = match.Groups["personnelnumber"].Captures[0].Value; var user = Session.Query<User>().FirstOrDefault(u => u.PersonnelNumber == personnelnumber); if (user == null) { ErrorLines.Add(line); continue; } var leavetype = match.Groups["leavetype"].Captures[0].Value; var type = Session.Query<LeaveType>().FirstOrDefault(r => r.Code == leavetype); if (type == null) { //get default reason type = Session.Query<LeaveType>().FirstOrDefault(r => r.Code == "DEFAULT"); if (type == null) { //!! type = new LeaveType { Code = "DEFAULT", Name = "Default Leave Type" }; Session.Store(type); } } var leave = new Leave { Id = IlluminateDatabase.GenerateId<Leave>(), StartOfProcess = DateTime.Parse(match.Groups["startdate"].Captures[0].Value), EndOfProcess = DateTime.Parse(match.Groups["enddate"].Captures[0].Value), ConsolidatedCompletionDate = DateTime.Parse(match.Groups["enddate"].Captures[0].Value), Subject = user.ToSimpleUser(), Title = match.Groups["title"].Captures[0].Value, Summary = match.Groups["title"].Captures[0].Value, LeaveType = type }; Session.Store(leave); //should we save if there were errors? Session.SaveChanges(); } } else { ErrorLines.Add(line); } } }
public OrgCreator( int numUsers, int numYearsToGoBack, int numSicknessesPerUserPerYear, int numLeavesPerUserPerYear, int numPraisesPerUserPerYear, int numConcernsPerUserPerYear, int numNotificationsPerUserPerYear ) { _numYearsToGoBack = numYearsToGoBack; _numSicknessesPerUserPerYear = numSicknessesPerUserPerYear; _numSicknessesPerUser = _numSicknessesPerUserPerYear * _numYearsToGoBack; _numLeavesPerUserPerYear = numLeavesPerUserPerYear; _numLeavesPerUser = _numLeavesPerUserPerYear * _numYearsToGoBack; _numPraisesPerUserPerYear = numPraisesPerUserPerYear; _numConcernsPerUserPerYear = numConcernsPerUserPerYear; _numNotificationsPerUserPerYear = numNotificationsPerUserPerYear; _numPraisesPerUser = _numPraisesPerUserPerYear * _numYearsToGoBack; _numConcernsPerUser = _numConcernsPerUserPerYear * _numYearsToGoBack; _numNotificationsPerUser = _numNotificationsPerUserPerYear * _numYearsToGoBack; Sicknesses = new List<Sickness>(numUsers * _numSicknessesPerUser); Leaves = new List<Leave>(numUsers * _numLeavesPerUser); Praises = new List<Praise>(numUsers * _numPraisesPerUser); Concerns = new List<Concern>(numUsers * _numConcernsPerUser); Notifications = new List<Notification>(numUsers * _numSicknessesPerUser); Higs=new List<HIGEntry>(numUsers*365*numYearsToGoBack); _rand=new Random(); var roles = new List<Role>(2) { Role.Administrator, Role.Manager }; var leaveType = new LeaveType {Code = "Leave type code", Id = Guid.NewGuid(), Name = "leave type name"}; var notificationFrom = new EmailRecipient {Email = "*****@*****.**", Name = "Illuminate"}; var factory = AutoPoco.AutoPocoContainer.Configure(x => { x.Conventions(c => c.UseDefaultConventions()); x.Include<User>() .Setup(u => u.EmailAddress).Use<EmailAddressSource>() .Setup(u => u.FirstName).Use <AutoPoco.DataSources.FirstNameSource>() .Setup(u => u.DateOfBirth).Use<DateOfBirthSource>() .Setup(u => u.LastName).Use<LastNameSource>() .Setup(u => u.CanManageOthers).Use<BooleanSource>() .Setup(u => u.CreatedDate).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) .Setup(u => u.LastLogin).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) .Setup(u => u.NameIdentifier).Use<FirstNameSource>() .Setup(u => u.PersonnelNumber).Use<AutoPoco.DataSources.RandomStringSource>(5, 10) .Setup(u => u.Position).Use<AutoPoco.DataSources.RandomStringSource>(10, 30) .Setup(u => u.Roles).Use<ValueSource<List<Role>>>(roles) .Setup(u => u.Avatar).Use<ValueSource<Avatar>>(Avatar.GetDefaultAvatar()) ; //x.Include<Sickness>() // .Setup(s => s.ConsolidatedCompletionDate).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) // //.Setup(s => s.ResultId).Use<GuidSource>() // //.Setup(s => s.ResultText).Use<RandomStringSource>(20, 100) // .Setup(s => s.SicknessReason).Use<ValueSource<SicknessReasonSimple>>(sicknesreason) // .Setup(s => s.StartOfProcess).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) // .Setup(s => s.Summary).Use<RandomStringSource>(50, 200) // .Setup(s => s.Title).Use<RandomStringSource>(20, 100) // ; x.Include<Praise>() .Setup(p => p.Comment).Use<RandomStringSource>(20, 100) .Setup(p => p.ConsolidatedCompletionDate).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) .Setup(p => p.EventDate).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) .Setup(p => p.Level).Use<ValueSource<int>>(2) ; x.Include<Concern>() .Setup(p => p.Comment).Use<RandomStringSource>(20, 100) .Setup(p => p.ConsolidatedCompletionDate).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) .Setup(p => p.EventDate).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) .Setup(p => p.Severity).Use<ValueSource<int>>(2) ; //x.Include<Leave>() // .Setup(l => l.ConsolidatedCompletionDate).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) // .Setup(l => l.LeaveType).Use<ValueSource<LeaveType>>(leaveType) // .Setup(l => l.StartOfProcess).Use<DateTimeSource>(DateTime.Now.AddYears(0 - numYearsToGoBack), DateTime.Now) // .Setup(l => l.Title).Use<RandomStringSource>(10, 50) // .Setup(l => l.Summary).Use<RandomStringSource>(20, 100) // ; x.Include<Notification>() .Setup(n => n.Body).Use<RandomStringSource>(30, 500) .Setup(n => n.From).Use<ValueSource<EmailRecipient>>(notificationFrom) .Setup(n => n.Id).Use<GuidSource>() .Setup(n => n.Read).Use<BooleanSource>() .Setup(n => n.SendDate).Use<DateTimeSource>(DateTime.Now.AddMonths(-6), DateTime.Now.AddMonths(2)) .Setup(n => n.Sent).Use<BooleanSource>() .Setup(n => n.Title).Use<RandomStringSource>(30, 100) ; x.Include<Task>() .Setup(t => t.IsCanceled).Use<BooleanSource>() .Setup(t => t.IsCompleted).Use<BooleanSource>() ; }); _pocoSession = factory.CreateSession(); Users = _pocoSession.List<User>(numUsers).Get(); foreach (var user in Users) { user.Id = Guid.NewGuid(); } }
private OrgDataGenerator GenerateLookupData() { _logger.Info(string.Format("Data generator - about to setup lookup data")); using (var masterSession = _masterStore.OpenSession()) { var lt = masterSession.Query<LeaveType>().FirstOrDefault(); if (lt == null) { throw new InvalidOperationException(string.Format("No leave types set up in master store with url {0}",_masterStore.Url)); } lt.Id = IlluminateDatabase.GenerateId<LeaveType>(); var sc = masterSession.Query<SicknessClassification>().FirstOrDefault(); if (sc == null) { throw new InvalidOperationException(string.Format("No sickness classifications set up in master store with url {0}", _masterStore.Url)); } using (var orgSession = _orgStore.OpenSession()) { orgSession.Store(sc); orgSession.Store(lt); _possibleAttributes = Attribute.GetDefaults(); foreach (var defaultAttribute in _possibleAttributes) { defaultAttribute.Id = IlluminateDatabase.GenerateId<Attribute>(); orgSession.Store(defaultAttribute); } orgSession.SaveChanges(); } _leaveType=lt; _sicknessClassification = sc; } _logger.Info(string.Format("Data generator - successfully setup Avatars")); return this; }