public static CampaignImpact UpdateModel(this CampaignImpact campaignImpact, CampaignImpact editModel) { if (editModel != null) { if (campaignImpact == null || editModel.Id == 0) { campaignImpact = new CampaignImpact(); } campaignImpact.ImpactType = editModel.ImpactType; campaignImpact.CurrentImpactLevel = editModel.CurrentImpactLevel; campaignImpact.Display = editModel.Display; campaignImpact.NumericImpactGoal = editModel.NumericImpactGoal; campaignImpact.TextualImpactGoal = editModel.TextualImpactGoal; return(campaignImpact); } return(campaignImpact); }
//private static ITaskIdProvider _taskIdProvider = new TaskIdProvider(); public void InsertTestData() { // Avoid polluting the database if there's already something in there. if (_context.Locations.Any() || _context.Organizations.Any() || _context.Tasks.Any() || _context.Campaigns.Any() || _context.Events.Any() || _context.EventSkills.Any() || _context.Skills.Any() || _context.Resources.Any()) { return; } #region postalCodes var existingPostalCode = _context.PostalCodes.ToList(); _context.PostalCodes.AddRange(GetPostalCodes(existingPostalCode)); #endregion List <Organization> organizations = new List <Organization>(); List <Skill> organizationSkills = new List <Skill>(); List <Location> locations = GetLocations(); List <ApplicationUser> users = new List <ApplicationUser>(); List <TaskSignup> taskSignups = new List <TaskSignup>(); List <Event> events = new List <Event>(); List <EventSkill> eventSkills = new List <EventSkill>(); List <Campaign> campaigns = new List <Campaign>(); List <AllReadyTask> tasks = new List <AllReadyTask>(); List <Resource> resources = new List <Resource>(); List <EventSignup> eventSignups = new List <EventSignup>(); List <Contact> contacts = GetContacts(); var skills = new List <Skill>(); #region Skills var medical = new Skill() { Name = "Medical", Description = "specific enough, right?" }; var cprCertified = new Skill() { Name = "CPR Certified", ParentSkill = medical, Description = "ha ha ha ha, stayin alive" }; var md = new Skill() { Name = "MD", ParentSkill = medical, Description = "Trust me, I'm a doctor" }; var surgeon = new Skill() { Name = "Surgeon", ParentSkill = md, Description = "cut open; sew shut; play 18 holes" }; skills.AddRange(new[] { medical, cprCertified, md, surgeon }); #endregion #region Organization Organization htb = new Organization() { Name = "Humanitarian Toolbox", LogoUrl = "http://www.htbox.org/upload/home/ht-hero.png", WebUrl = "http://www.htbox.org", Location = locations.FirstOrDefault(), Campaigns = new List <Campaign>(), OrganizationContacts = new List <OrganizationContact>(), }; #endregion #region Organization Skills organizationSkills.Add(new Skill() { Name = "Code Ninja", Description = "Ability to commit flawless code without review or testing", OwningOrganization = htb }); #endregion #region Campaign // Campaign 1 var firePrev = new Campaign() { Name = "Neighborhood Fire Prevention Days", ManagingOrganization = htb, TimeZoneId = "Central Standard Time", StartDateTime = DateTime.UtcNow.AddMonths(-1), EndDateTime = DateTime.UtcNow.AddMonths(3) }; htb.Campaigns.Add(firePrev); // Campaign 2 var smokeDetImpact = new CampaignImpact { ImpactType = ImpactType.Numeric, NumericImpactGoal = 10000, CurrentImpactLevel = 6722, Display = true, TextualImpactGoal = "Total number of smoke detectors installed." }; _context.CampaignImpacts.Add(smokeDetImpact); var smokeDet = new Campaign() { Name = "Working Smoke Detectors Save Lives", ManagingOrganization = htb, StartDateTime = DateTime.Today.AddMonths(-1), EndDateTime = DateTime.Today.AddMonths(1), CampaignImpact = smokeDetImpact, TimeZoneId = "Central Standard Time" }; htb.Campaigns.Add(smokeDet); // Campaign 3 var financial = new Campaign() { Name = "Everyday Financial Safety", ManagingOrganization = htb, TimeZoneId = "Central Standard Time", StartDateTime = DateTime.Today.AddMonths(-1), EndDateTime = DateTime.Today.AddMonths(1) }; htb.Campaigns.Add(financial); // Campaign 4 var safetyKit = new Campaign() { Name = "Simple Safety Kit Building", ManagingOrganization = htb, TimeZoneId = "Central Standard Time", StartDateTime = DateTime.Today.AddMonths(-1), EndDateTime = DateTime.Today.AddMonths(2) }; htb.Campaigns.Add(safetyKit); // Campaign 5 var carSafe = new Campaign() { Name = "Family Safety In the Car", ManagingOrganization = htb, TimeZoneId = "Central Standard Time", StartDateTime = DateTime.Today.AddMonths(-1), EndDateTime = DateTime.Today.AddMonths(2) }; htb.Campaigns.Add(carSafe); // Campaign 6 var escapePlan = new Campaign() { Name = "Be Ready to Get Out: Have a Home Escape Plan", ManagingOrganization = htb, TimeZoneId = "Central Standard Time", StartDateTime = DateTime.Today.AddMonths(-6), EndDateTime = DateTime.Today.AddMonths(6) }; htb.Campaigns.Add(escapePlan); #endregion #region Event Event queenAnne = new Event() { Name = "Queen Anne Fire Prevention Day", StartDateTime = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 31, 15, 0, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), RequiredSkills = new List <EventSkill>() }; queenAnne.Tasks = GetSomeTasks(queenAnne, htb); var ask = new EventSkill() { Skill = surgeon, Event = queenAnne }; queenAnne.RequiredSkills.Add(ask); eventSkills.Add(ask); ask = new EventSkill() { Skill = cprCertified, Event = queenAnne }; queenAnne.RequiredSkills.Add(ask); eventSkills.Add(ask); tasks.AddRange(queenAnne.Tasks); Event ballard = new Event() { Name = "Ballard Fire Prevention Day", StartDateTime = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 31, 14, 0, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = firePrev }; ballard.Tasks = GetSomeTasks(ballard, htb); tasks.AddRange(ballard.Tasks); Event madrona = new Event() { Name = "Madrona Fire Prevention Day", StartDateTime = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 31, 14, 0, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = firePrev }; madrona.Tasks = GetSomeTasks(madrona, htb); tasks.AddRange(madrona.Tasks); Event southLoopSmoke = new Event() { Name = "Smoke Detector Installation and Testing-South Loop", StartDateTime = DateTime.Today.AddMonths(-1), EndDateTime = DateTime.Today.AddMonths(1), Location = GetRandom <Location>(locations), Campaign = smokeDet }; southLoopSmoke.Tasks = GetSomeTasks(southLoopSmoke, htb); tasks.AddRange(southLoopSmoke.Tasks); Event northLoopSmoke = new Event() { Name = "Smoke Detector Installation and Testing-Near North Side", StartDateTime = DateTime.Today.AddMonths(-1), EndDateTime = DateTime.Today.AddMonths(1), Location = GetRandom <Location>(locations), Campaign = smokeDet }; northLoopSmoke.Tasks = GetSomeTasks(northLoopSmoke, htb); tasks.AddRange(northLoopSmoke.Tasks); Event rentersInsurance = new Event() { Name = "Renters Insurance Education Door to Door and a bag of chips", Description = "description for the win", StartDateTime = new DateTime(2015, 7, 11, 8, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 7, 11, 17, 0, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = financial }; rentersInsurance.Tasks = GetSomeTasks(rentersInsurance, htb); tasks.AddRange(rentersInsurance.Tasks); Event rentersInsuranceEd = new Event() { Name = "Renters Insurance Education Door to Door (woop woop)", Description = "another great description", StartDateTime = new DateTime(2015, 7, 12, 8, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 12, 17, 0, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = financial }; rentersInsuranceEd.Tasks = GetSomeTasks(rentersInsuranceEd, htb); tasks.AddRange(rentersInsuranceEd.Tasks); Event safetyKitBuild = new Event() { Name = "Safety Kit Assembly Volunteer Day", Description = "Full day of volunteers building kits", StartDateTime = new DateTime(2015, 7, 11, 8, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 11, 16, 30, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = safetyKit }; safetyKitBuild.Tasks = GetSomeTasks(safetyKitBuild, htb); tasks.AddRange(safetyKitBuild.Tasks); Event safetyKitHandout = new Event() { Name = "Safety Kit Distribution Weekend", Description = "Handing out kits at local fire stations", StartDateTime = new DateTime(2015, 7, 11, 8, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 11, 16, 30, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = safetyKit }; safetyKitHandout.Tasks = GetSomeTasks(safetyKitHandout, htb); tasks.AddRange(safetyKitHandout.Tasks); Event carSeatTest1 = new Event() { Name = "Car Seat Testing-Naperville", Description = "Checking car seats at local fire stations after last day of school year", StartDateTime = new DateTime(2015, 7, 10, 9, 30, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 10, 15, 30, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = carSafe }; carSeatTest1.Tasks = GetSomeTasks(carSeatTest1, htb); tasks.AddRange(carSeatTest1.Tasks); Event carSeatTest2 = new Event() { Name = "Car Seat and Tire Pressure Checking Volunteer Day", Description = "Checking those things all day at downtown train station parking", StartDateTime = new DateTime(2015, 7, 11, 8, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 11, 19, 30, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = carSafe }; carSeatTest2.Tasks = GetSomeTasks(carSeatTest2, htb); tasks.AddRange(carSeatTest2.Tasks); Event homeFestival = new Event() { Name = "Park District Home Safety Festival", Description = "At downtown park district(adjacent to pool)", StartDateTime = new DateTime(2015, 7, 11, 12, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 11, 16, 30, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = safetyKit }; homeFestival.Tasks = GetSomeTasks(homeFestival, htb); tasks.AddRange(homeFestival.Tasks); Event homeEscape = new Event() { Name = "Home Escape Plan Flyer Distribution", Description = "Handing out flyers door to door in several areas of town after school/ work hours.Streets / blocks will vary but number of volunteers.", StartDateTime = new DateTime(2015, 7, 15, 15, 30, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 15, 20, 30, 0).ToUniversalTime(), Location = GetRandom <Location>(locations), Campaign = escapePlan }; homeEscape.Tasks = GetSomeTasks(homeEscape, htb); tasks.AddRange(homeEscape.Tasks); #endregion #region Link campaign and event firePrev.Events = new List <Event>(); firePrev.Events.Add(queenAnne); firePrev.Events.Add(ballard); firePrev.Events.Add(madrona); smokeDet.Events = new List <Event>(); smokeDet.Events.Add(southLoopSmoke); smokeDet.Events.Add(northLoopSmoke); financial.Events = new List <Event>(); financial.Events.Add(rentersInsurance); financial.Events.Add(rentersInsuranceEd); safetyKit.Events = new List <Event>(); safetyKit.Events.Add(safetyKitBuild); safetyKit.Events.Add(safetyKitHandout); carSafe.Events = new List <Event>(); carSafe.Events.Add(carSeatTest1); carSafe.Events.Add(carSeatTest2); escapePlan.Events = new List <Event>(); escapePlan.Events.Add(homeFestival); escapePlan.Events.Add(homeEscape); #endregion #region Add Campaigns and Events organizations.Add(htb); campaigns.Add(firePrev); campaigns.Add(smokeDet); campaigns.Add(financial); campaigns.Add(escapePlan); campaigns.Add(safetyKit); campaigns.Add(carSafe); events.AddRange(firePrev.Events); events.AddRange(smokeDet.Events); events.AddRange(financial.Events); events.AddRange(escapePlan.Events); events.AddRange(safetyKit.Events); events.AddRange(carSafe.Events); #endregion #region Insert Resource items into Resources resources.Add(new Resource { Name = "allReady Partner Name", Description = "allready Partner Description", PublishDateBegin = DateTime.Today, PublishDateEnd = DateTime.Today.AddDays(14), MediaUrl = "", ResourceUrl = "", CategoryTag = "Partners" }); resources.Add(new Resource { Name = "allReady Partner Name 2", Description = "allready Partner Description 2", PublishDateBegin = DateTime.Today.AddDays(-3), PublishDateEnd = DateTime.Today.AddDays(-1), MediaUrl = "", ResourceUrl = "", CategoryTag = "Partners" }); #endregion #region Insert into DB _context.Skills.AddRange(skills); _context.Contacts.AddRange(contacts); _context.EventSkills.AddRange(eventSkills); _context.Locations.AddRange(locations); _context.Organizations.AddRange(organizations); _context.Tasks.AddRange(tasks); _context.Campaigns.AddRange(campaigns); _context.Events.AddRange(events); _context.Resources.AddRange(resources); //_context.SaveChanges(); #endregion #region Users for Events var username1 = $"{_settings.DefaultUsername}1.com"; var username2 = $"{_settings.DefaultUsername}2.com"; var username3 = $"{_settings.DefaultUsername}3.com"; var user1 = new ApplicationUser { UserName = username1, Email = username1, EmailConfirmed = true, TimeZoneId = _generalSettings.DefaultTimeZone, PhoneNumber = "111-111-1111" }; _userManager.CreateAsync(user1, _settings.DefaultAdminPassword).GetAwaiter().GetResult(); users.Add(user1); var user2 = new ApplicationUser { UserName = username2, Email = username2, EmailConfirmed = true, TimeZoneId = _generalSettings.DefaultTimeZone, PhoneNumber = "222-222-2222" }; _userManager.CreateAsync(user2, _settings.DefaultAdminPassword).GetAwaiter().GetResult(); users.Add(user2); var user3 = new ApplicationUser { UserName = username3, Email = username3, EmailConfirmed = true, TimeZoneId = _generalSettings.DefaultTimeZone, PhoneNumber = "333-333-3333" }; _userManager.CreateAsync(user3, _settings.DefaultAdminPassword).GetAwaiter().GetResult(); users.Add(user3); #endregion #region ActvitySignups eventSignups.Add(new EventSignup { Event = madrona, User = user1, SignupDateTime = DateTime.UtcNow }); eventSignups.Add(new EventSignup { Event = madrona, User = user2, SignupDateTime = DateTime.UtcNow }); eventSignups.Add(new EventSignup { Event = madrona, User = user3, SignupDateTime = DateTime.UtcNow }); #endregion #region TaskSignups int i = 0; foreach (var task in tasks.Where(t => t.Event == madrona)) { for (var j = 0; j < i; j++) { taskSignups.Add(new TaskSignup() { Task = task, User = users[j], Status = Areas.Admin.Features.Tasks.TaskStatus.Assigned.ToString() }); } i = (i + 1) % users.Count; } _context.TaskSignups.AddRange(taskSignups); #endregion #region TennatContacts htb.OrganizationContacts.Add(new OrganizationContact { Contact = contacts.First(), Organization = htb, ContactType = 1 /*Primary*/ }); #endregion #region Wrap Up DB _context.EventSignup.AddRange(eventSignups); _context.SaveChanges(); #endregion }
public void InsertTestData() { // Avoid polluting the database if there's already something in there. if (_context.Locations.Any() || _context.Organizations.Any() || _context.Tasks.Any() || _context.Campaigns.Any() || _context.Events.Any() || _context.EventSkills.Any() || _context.Skills.Any() || _context.Resources.Any()) { return; } #region postalCodes var existingPostalCode = _context.PostalCodes.ToList(); _context.PostalCodes.AddRange(GetPostalCodes(existingPostalCode)); #endregion var organizations = new List <Organization>(); var organizationSkills = new List <Skill>(); var locations = GetLocations(); var users = new List <ApplicationUser>(); var taskSignups = new List <TaskSignup>(); var events = new List <Event>(); var eventSkills = new List <EventSkill>(); var campaigns = new List <Campaign>(); var tasks = new List <AllReadyTask>(); var resources = new List <Resource>(); var contacts = GetContacts(); var skills = new List <Skill>(); #region Skills var medical = new Skill { Name = "Medical", Description = "specific enough, right?" }; var cprCertified = new Skill { Name = "CPR Certified", ParentSkill = medical, Description = "ha ha ha ha, stayin alive" }; var md = new Skill { Name = "MD", ParentSkill = medical, Description = "Trust me, I'm a doctor" }; var surgeon = new Skill { Name = "Surgeon", ParentSkill = md, Description = "cut open; sew shut; play 18 holes" }; skills.AddRange(new[] { medical, cprCertified, md, surgeon }); #endregion #region Organization var organization = new Organization { Name = "Humanitarian Toolbox", LogoUrl = "http://www.htbox.org/upload/home/ht-hero.png", WebUrl = "http://www.htbox.org", Location = locations.FirstOrDefault(), Campaigns = new List <Campaign>(), OrganizationContacts = new List <OrganizationContact>(), }; #endregion #region Organization Skills organizationSkills.Add(new Skill { Name = "Code Ninja", Description = "Ability to commit flawless code without review or testing", OwningOrganization = organization }); #endregion #region Campaign //TODO: Campaign/Event/Task dates need to be set as a DateTimeOffset, offset to the correct timezone instead of UtcNow or DateTime.Today. var firePreventionCampaign = new Campaign { Name = "Neighborhood Fire Prevention Days", ManagingOrganization = organization, TimeZoneId = "Central Standard Time", StartDateTime = AdjustToTimezone(DateTimeOffset.Now.AddMonths(-1), _centralTimeZone), EndDateTime = AdjustToTimezone(DateTimeOffset.Now.AddMonths(3), _centralTimeZone), Location = GetRandom(locations), Published = true }; organization.Campaigns.Add(firePreventionCampaign); var smokeDetectorCampaignImpact = new CampaignImpact { ImpactType = ImpactType.Numeric, NumericImpactGoal = 10000, CurrentImpactLevel = 6722, Display = true, TextualImpactGoal = "Total number of smoke detectors installed." }; _context.CampaignImpacts.Add(smokeDetectorCampaignImpact); var smokeDetectorCampaign = new Campaign { Name = "Working Smoke Detectors Save Lives", ManagingOrganization = organization, StartDateTime = AdjustToTimezone(DateTime.Today.AddMonths(-1), _centralTimeZone), EndDateTime = AdjustToTimezone(DateTime.Today.AddMonths(1), _centralTimeZone), CampaignImpact = smokeDetectorCampaignImpact, TimeZoneId = "Central Standard Time", Location = GetRandom(locations), Published = true }; organization.Campaigns.Add(smokeDetectorCampaign); var financialCampaign = new Campaign { Name = "Everyday Financial Safety", ManagingOrganization = organization, TimeZoneId = "Central Standard Time", StartDateTime = AdjustToTimezone(DateTime.Today.AddMonths(-1), _centralTimeZone), EndDateTime = AdjustToTimezone(DateTime.Today.AddMonths(1), _centralTimeZone), Location = GetRandom(locations), Published = true }; organization.Campaigns.Add(financialCampaign); var safetyKitCampaign = new Campaign { Name = "Simple Safety Kit Building", ManagingOrganization = organization, TimeZoneId = "Central Standard Time", StartDateTime = AdjustToTimezone(DateTime.Today.AddMonths(-1), _centralTimeZone), EndDateTime = AdjustToTimezone(DateTime.Today.AddMonths(2), _centralTimeZone), Location = GetRandom(locations), Published = true }; organization.Campaigns.Add(safetyKitCampaign); var carSafeCampaign = new Campaign { Name = "Family Safety In the Car", ManagingOrganization = organization, TimeZoneId = "Central Standard Time", StartDateTime = AdjustToTimezone(DateTime.Today.AddMonths(-1), _centralTimeZone), EndDateTime = AdjustToTimezone(DateTime.Today.AddMonths(2), _centralTimeZone), Location = GetRandom(locations), Published = true }; organization.Campaigns.Add(carSafeCampaign); var escapePlanCampaign = new Campaign { Name = "Be Ready to Get Out: Have a Home Escape Plan", ManagingOrganization = organization, TimeZoneId = "Central Standard Time", StartDateTime = AdjustToTimezone(DateTime.Today.AddMonths(-6), _centralTimeZone), EndDateTime = AdjustToTimezone(DateTime.Today.AddMonths(6), _centralTimeZone), Location = GetRandom(locations), Published = true }; organization.Campaigns.Add(escapePlanCampaign); #endregion #region Event var queenAnne = new Event { Name = "Queen Anne Fire Prevention Day", Campaign = firePreventionCampaign, StartDateTime = AdjustToTimezone(firePreventionCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(firePreventionCampaign.StartDateTime.AddMonths(2), _centralTimeZone), TimeZoneId = firePreventionCampaign.TimeZoneId, Location = GetRandom(locations), RequiredSkills = new List <EventSkill>(), EventType = EventType.Itinerary, }; queenAnne.Tasks = GetSomeTasks(queenAnne, organization); var ask = new EventSkill { Skill = surgeon, Event = queenAnne }; queenAnne.RequiredSkills.Add(ask); eventSkills.Add(ask); ask = new EventSkill { Skill = cprCertified, Event = queenAnne }; queenAnne.RequiredSkills.Add(ask); eventSkills.Add(ask); tasks.AddRange(queenAnne.Tasks); var ballard = new Event { Name = "Ballard Fire Prevention Day", Campaign = firePreventionCampaign, StartDateTime = AdjustToTimezone(firePreventionCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(firePreventionCampaign.StartDateTime.AddMonths(2), _centralTimeZone), TimeZoneId = firePreventionCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; ballard.Tasks = GetSomeTasks(ballard, organization); tasks.AddRange(ballard.Tasks); var madrona = new Event { Name = "Madrona Fire Prevention Day", Campaign = firePreventionCampaign, StartDateTime = AdjustToTimezone(firePreventionCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(firePreventionCampaign.StartDateTime.AddMonths(2), _centralTimeZone), TimeZoneId = firePreventionCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; madrona.Tasks = GetSomeTasks(madrona, organization); tasks.AddRange(madrona.Tasks); var southLoopSmoke = new Event { Name = "Smoke Detector Installation and Testing-South Loop", Campaign = smokeDetectorCampaign, StartDateTime = AdjustToTimezone(smokeDetectorCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(smokeDetectorCampaign.EndDateTime, _centralTimeZone), TimeZoneId = smokeDetectorCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; southLoopSmoke.Tasks = GetSomeTasks(southLoopSmoke, organization); tasks.AddRange(southLoopSmoke.Tasks); var northLoopSmoke = new Event { Name = "Smoke Detector Installation and Testing-Near North Side", Campaign = smokeDetectorCampaign, StartDateTime = AdjustToTimezone(smokeDetectorCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(smokeDetectorCampaign.EndDateTime, _centralTimeZone), TimeZoneId = smokeDetectorCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; northLoopSmoke.Tasks = GetSomeTasks(northLoopSmoke, organization); tasks.AddRange(northLoopSmoke.Tasks); var dateTimeToday = DateTime.Today; var rentersInsurance = new Event { Name = "Renters Insurance Education Door to Door and a bag of chips", Description = "description for the win", Campaign = financialCampaign, StartDateTime = AdjustToTimezone(new DateTime(dateTimeToday.Year, dateTimeToday.Month, dateTimeToday.Day, 8, 0, 0), _centralTimeZone), EndDateTime = AdjustToTimezone(new DateTime(dateTimeToday.Year, dateTimeToday.Month, dateTimeToday.Day, 16, 0, 0), _centralTimeZone), TimeZoneId = financialCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Rally, }; rentersInsurance.Tasks = GetSomeTasks(rentersInsurance, organization); tasks.AddRange(rentersInsurance.Tasks); var rentersInsuranceEd = new Event { Name = "Renters Insurance Education Door to Door (woop woop)", Description = "another great description", Campaign = financialCampaign, StartDateTime = AdjustToTimezone(financialCampaign.StartDateTime.AddMonths(1).AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(financialCampaign.EndDateTime, _centralTimeZone), TimeZoneId = financialCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; rentersInsuranceEd.Tasks = GetSomeTasks(rentersInsuranceEd, organization); tasks.AddRange(rentersInsuranceEd.Tasks); var safetyKitBuild = new Event { Name = "Safety Kit Assembly Volunteer Day", Description = "Full day of volunteers building kits", Campaign = safetyKitCampaign, StartDateTime = AdjustToTimezone(safetyKitCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(safetyKitCampaign.StartDateTime.AddMonths(1).AddDays(5), _centralTimeZone), TimeZoneId = safetyKitCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; safetyKitBuild.Tasks = GetSomeTasks(safetyKitBuild, organization); tasks.AddRange(safetyKitBuild.Tasks); var safetyKitHandout = new Event { Name = "Safety Kit Distribution Weekend", Description = "Handing out kits at local fire stations", Campaign = safetyKitCampaign, StartDateTime = AdjustToTimezone(safetyKitCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(safetyKitCampaign.StartDateTime.AddMonths(1).AddDays(5), _centralTimeZone), TimeZoneId = safetyKitCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; safetyKitHandout.Tasks = GetSomeTasks(safetyKitHandout, organization); tasks.AddRange(safetyKitHandout.Tasks); var carSeatTest1 = new Event { Name = "Car Seat Testing-Naperville", Description = "Checking car seats at local fire stations after last day of school year", Campaign = carSafeCampaign, StartDateTime = AdjustToTimezone(carSafeCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(carSafeCampaign.StartDateTime.AddMonths(1).AddDays(5), _centralTimeZone), TimeZoneId = carSafeCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; carSeatTest1.Tasks = GetSomeTasks(carSeatTest1, organization); tasks.AddRange(carSeatTest1.Tasks); var carSeatTest2 = new Event { Name = "Car Seat and Tire Pressure Checking Volunteer Day", Description = "Checking those things all day at downtown train station parking", Campaign = carSafeCampaign, StartDateTime = AdjustToTimezone(carSafeCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(carSafeCampaign.StartDateTime.AddMonths(1).AddDays(5), _centralTimeZone), TimeZoneId = carSafeCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; carSeatTest2.Tasks = GetSomeTasks(carSeatTest2, organization); tasks.AddRange(carSeatTest2.Tasks); var homeFestival = new Event { Name = "Park District Home Safety Festival", Description = "At downtown park district(adjacent to pool)", Campaign = safetyKitCampaign, StartDateTime = AdjustToTimezone(safetyKitCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(safetyKitCampaign.StartDateTime.AddMonths(1), _centralTimeZone), TimeZoneId = safetyKitCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; homeFestival.Tasks = GetSomeTasks(homeFestival, organization); tasks.AddRange(homeFestival.Tasks); var homeEscape = new Event { Name = "Home Escape Plan Flyer Distribution", Description = "Handing out flyers door to door in several areas of town after school/ work hours.Streets / blocks will vary but number of volunteers.", Campaign = escapePlanCampaign, StartDateTime = AdjustToTimezone(escapePlanCampaign.StartDateTime.AddDays(1), _centralTimeZone), EndDateTime = AdjustToTimezone(escapePlanCampaign.StartDateTime.AddMonths(7), _centralTimeZone), TimeZoneId = escapePlanCampaign.TimeZoneId, Location = GetRandom(locations), EventType = EventType.Itinerary, }; homeEscape.Tasks = GetSomeTasks(homeEscape, organization); tasks.AddRange(homeEscape.Tasks); #endregion #region Link campaign and event firePreventionCampaign.Events = new List <Event> { queenAnne, ballard, madrona }; smokeDetectorCampaign.Events = new List <Event> { southLoopSmoke, northLoopSmoke }; financialCampaign.Events = new List <Event> { rentersInsurance, rentersInsuranceEd }; safetyKitCampaign.Events = new List <Event> { safetyKitBuild, safetyKitHandout }; carSafeCampaign.Events = new List <Event> { carSeatTest1, carSeatTest2 }; escapePlanCampaign.Events = new List <Event> { homeFestival, homeEscape }; #endregion #region Add Campaigns and Events organizations.Add(organization); campaigns.Add(firePreventionCampaign); campaigns.Add(smokeDetectorCampaign); campaigns.Add(financialCampaign); campaigns.Add(escapePlanCampaign); campaigns.Add(safetyKitCampaign); campaigns.Add(carSafeCampaign); events.AddRange(firePreventionCampaign.Events); events.AddRange(smokeDetectorCampaign.Events); events.AddRange(financialCampaign.Events); events.AddRange(escapePlanCampaign.Events); events.AddRange(safetyKitCampaign.Events); events.AddRange(carSafeCampaign.Events); #endregion #region Insert Resource items into Resources resources.Add(new Resource { Name = "allReady Partner Name", Description = "allready Partner Description", PublishDateBegin = DateTime.Today, PublishDateEnd = DateTime.Today.AddDays(14), MediaUrl = "", ResourceUrl = "", CategoryTag = "Partners" }); resources.Add(new Resource { Name = "allReady Partner Name 2", Description = "allready Partner Description 2", PublishDateBegin = DateTime.Today.AddDays(-3), PublishDateEnd = DateTime.Today.AddDays(-1), MediaUrl = "", ResourceUrl = "", CategoryTag = "Partners" }); #endregion #region Insert into DB _context.Skills.AddRange(skills); _context.Contacts.AddRange(contacts); _context.EventSkills.AddRange(eventSkills); _context.Locations.AddRange(locations); _context.Organizations.AddRange(organizations); _context.Tasks.AddRange(tasks); _context.Campaigns.AddRange(campaigns); _context.Events.AddRange(events); _context.Resources.AddRange(resources); //_context.SaveChanges(); #endregion #region Users for Events var username1 = $"{_settings.DefaultUsername}1.com"; var username2 = $"{_settings.DefaultUsername}2.com"; var username3 = $"{_settings.DefaultUsername}3.com"; var user1 = new ApplicationUser { FirstName = "FirstName1", LastName = "LastName1", UserName = username1, Email = username1, EmailConfirmed = true, TimeZoneId = _generalSettings.DefaultTimeZone, PhoneNumber = "111-111-1111" }; _userManager.CreateAsync(user1, _settings.DefaultAdminPassword).GetAwaiter().GetResult(); users.Add(user1); var user2 = new ApplicationUser { FirstName = "FirstName2", LastName = "LastName2", UserName = username2, Email = username2, EmailConfirmed = true, TimeZoneId = _generalSettings.DefaultTimeZone, PhoneNumber = "222-222-2222" }; _userManager.CreateAsync(user2, _settings.DefaultAdminPassword).GetAwaiter().GetResult(); users.Add(user2); var user3 = new ApplicationUser { FirstName = "FirstName3", LastName = "LastName3", UserName = username3, Email = username3, EmailConfirmed = true, TimeZoneId = _generalSettings.DefaultTimeZone, PhoneNumber = "333-333-3333" }; _userManager.CreateAsync(user3, _settings.DefaultAdminPassword).GetAwaiter().GetResult(); users.Add(user3); #endregion #region TaskSignups var i = 0; foreach (var task in tasks.Where(t => t.Event == madrona)) { for (var j = 0; j < i; j++) { taskSignups.Add(new TaskSignup { Task = task, User = users[j], Status = TaskStatus.Assigned }); } i = (i + 1) % users.Count; } _context.TaskSignups.AddRange(taskSignups); #endregion #region OrganizationContacts organization.OrganizationContacts.Add(new OrganizationContact { Contact = contacts.First(), Organization = organization, ContactType = 1 /*Primary*/ }); #endregion #region Wrap Up DB _context.SaveChanges(); #endregion }