public async Task CreateOrganizationAndProjectAsync(string userId) { if (await _tokenRepository.GetByIdAsync(TEST_API_KEY).AnyContext() != null) return; User user = await _userRepository.GetByIdAsync(userId, true).AnyContext(); var organization = new Organization { Id = TEST_ORG_ID, Name = "Acme" }; BillingManager.ApplyBillingPlan(organization, BillingManager.UnlimitedPlan, user); organization = await _organizationRepository.AddAsync(organization, true).AnyContext(); var project = new Project { Id = TEST_PROJECT_ID, Name = "Disintegrating Pistol", OrganizationId = organization.Id }; project.NextSummaryEndOfDayTicks = DateTime.UtcNow.Date.AddDays(1).AddHours(1).Ticks; project.Configuration.Settings.Add("IncludeConditionalData", "true"); project.AddDefaultOwnerNotificationSettings(userId); project = await _projectRepository.AddAsync(project, true).AnyContext(); await _tokenRepository.AddAsync(new Token { Id = TEST_API_KEY, OrganizationId = organization.Id, ProjectId = project.Id, CreatedUtc = DateTime.UtcNow, ModifiedUtc = DateTime.UtcNow, Type = TokenType.Access }).AnyContext(); await _tokenRepository.AddAsync(new Token { Id = TEST_USER_API_KEY, UserId = user.Id, CreatedUtc = DateTime.UtcNow, ModifiedUtc = DateTime.UtcNow, Type = TokenType.Access }).AnyContext(); user.OrganizationIds.Add(organization.Id); await _userRepository.SaveAsync(user, true).AnyContext(); }
public async Task CreateInternalOrganizationAndProjectAsync(string userId) { if (await _tokenRepository.GetByIdAsync(INTERNAL_API_KEY).AnyContext() != null) return; User user = await _userRepository.GetByIdAsync(userId, true).AnyContext(); var organization = new Organization { Name = "Exceptionless" }; BillingManager.ApplyBillingPlan(organization, BillingManager.UnlimitedPlan, user); organization = await _organizationRepository.AddAsync(organization, true).AnyContext(); var project = new Project { Id = INTERNAL_PROJECT_ID, Name = "API", OrganizationId = organization.Id }; project.NextSummaryEndOfDayTicks = DateTime.UtcNow.Date.AddDays(1).AddHours(1).Ticks; project.AddDefaultOwnerNotificationSettings(userId); project = await _projectRepository.AddAsync(project, true).AnyContext(); await _tokenRepository.AddAsync(new Token { Id = INTERNAL_API_KEY, OrganizationId = organization.Id, ProjectId = project.Id, CreatedUtc = DateTime.UtcNow, ModifiedUtc = DateTime.UtcNow, Type = TokenType.Access }).AnyContext(); user.OrganizationIds.Add(organization.Id); await _userRepository.SaveAsync(user, true).AnyContext(); }
public string CreateDefaultOrganizationAndProject(User user) { string organizationId = user.OrganizationIds.FirstOrDefault(); if (!String.IsNullOrEmpty(organizationId)) { var defaultProject = _projectRepository.GetByOrganizationId(user.OrganizationIds.First(), useCache: true).Documents.FirstOrDefault(); if (defaultProject != null) return defaultProject.Id; } else { var organization = new Organization { Name = "Default Organization" }; BillingManager.ApplyBillingPlan(organization, Settings.Current.EnableBilling ? BillingManager.FreePlan : BillingManager.UnlimitedPlan, user); _organizationRepository.Add(organization); organizationId = organization.Id; } var project = new Project { Name = "Default Project", OrganizationId = organizationId }; project.NextSummaryEndOfDayTicks = DateTime.UtcNow.Date.AddDays(1).AddHours(1).Ticks; project.AddDefaultOwnerNotificationSettings(user.Id); project = _projectRepository.Add(project); _tokenRepository.Add(new Token { Id = StringExtensions.GetNewToken(), OrganizationId = organizationId, ProjectId = project.Id, CreatedUtc = DateTime.UtcNow, ModifiedUtc = DateTime.UtcNow, Type = TokenType.Access }); if (!user.OrganizationIds.Contains(organizationId)) { user.OrganizationIds.Add(organizationId); _userRepository.Save(user, true); } return project.Id; }