/// <summary> /// 查询通过ID /// </summary> /// <param name="id"></param> /// <returns></returns> public IQueryable <OrganizationJson> FindById(string id) { return(OrganizationStore.Find(org => org.Id == id) .Include(org => org.Parent) .Include(org => org.Children) .Select(org => Mapper.Map <OrganizationJson>(org))); }
/// <summary> /// 创建 /// </summary> /// <param name="json"></param> /// <returns></returns> public async Task Create(OrganizationJson json) { var entity = Mapper.Map <Organization>(json); entity.Id = Guid.NewGuid().ToString(); await OrganizationStore.Create(entity); }
/// <summary> /// 递归查询所有节点,构成一棵树返回 /// </summary> /// <param name="id"></param> /// <returns></returns> public Organization FindTreeById(string id) { var org = OrganizationStore.Find(o => o.Id == id).Include(o => o.Children).SingleOrDefault(); for (int i = 0; i < org.Children.Count; i++) { org.Children[i] = FindTreeById(org.Children[i].Id); } return(org); }
/// <summary> /// 更新 /// </summary> /// <param name="json"></param> /// <returns></returns> public async Task Update(OrganizationJson json) { var organization = Mapper.Map <Organization>(json); await OrganizationStore.Update(organization); }
/// <summary> /// 查询通过用户ID /// </summary> /// <param name="userId">用户ID</param> /// <returns></returns> public async Task <IEnumerable <Organization> > FindFromUserOrgByUserId(string userId) { return(await OrganizationStore.FindByUserId(userId).ToListAsync()); }
/// <summary> /// 查询所有 /// </summary> /// <returns></returns> public IQueryable <OrganizationJson> Find() { return(OrganizationStore.Find() .Include(org => org.Parent) .Select(org => Mapper.Map <OrganizationJson>(org))); }
/// <summary> /// 存在 /// </summary> /// <param name="predicate"></param> /// <returns></returns> public Task <bool> Exist(Func <OrganizationJson, bool> predicate) { return(OrganizationStore.Exist(org => predicate(Mapper.Map <OrganizationJson>(org)))); }
/// <summary> /// 删除通过ID /// </summary> /// <param name="orgId">组织ID</param> /// <returns></returns> public async Task DeleteById(string orgId) { // 1. 删除组织 await OrganizationStore.DeleteById(orgId); }
protected void BuildTestData() { CurrentUser = NeedsCurrentUser(); user1 = AddEntity <AppDbContext, User>(new User { ExternalId = "test-auth0-id1", Email = "*****@*****.**", Name = "Test Testenson1", GivenName = "Test1", FamilyName = "Testenson1" }); storeType1 = AddEntity <AppDbContext, StoreType>(new StoreType { Name = "google_play_store", Description = "Google Play Store" }); storeType2 = AddEntity <AppDbContext, StoreType>(new StoreType { Name = "ios_app_store", Description = "IOS App Store" }); storeLang1 = AddEntity <AppDbContext, StoreLanguage>(new StoreLanguage { Name = "en-US", Description = "US English", StoreTypeId = storeType1.Id }); storeLang2 = AddEntity <AppDbContext, StoreLanguage>(new StoreLanguage { Name = "en-GB", Description = "United Kingdom English", StoreTypeId = storeType1.Id }); store1 = AddEntity <AppDbContext, Store>(new Store { Name = "wycliffeusa", Description = "Wycliffe USA - Google Play Store", StoreTypeId = storeType1.Id }); store2 = AddEntity <AppDbContext, Store>(new Store { Name = "wycliffeusa", Description = "Wycliffe USA - IOS Play Store", StoreTypeId = storeType2.Id }); org1 = AddEntity <AppDbContext, Organization>(new Organization { Name = "TestOrg1", WebsiteUrl = "https://testorg1.org", BuildEngineUrl = "https://buildengine.testorg1", BuildEngineApiAccessToken = "replace", OwnerId = CurrentUser.Id }); org2 = AddEntity <AppDbContext, Organization>(new Organization { Name = "TestOrg2", WebsiteUrl = "https://testorg2.org", BuildEngineUrl = "https://buildengine.testorg2", BuildEngineApiAccessToken = "replace", OwnerId = CurrentUser.Id }); org3 = AddEntity <AppDbContext, Organization>(new Organization { Name = "TestOrg3", WebsiteUrl = "https://testorg3.org", BuildEngineUrl = "https://buildengine.testorg3", BuildEngineApiAccessToken = "replace", OwnerId = CurrentUser.Id }); org4 = AddEntity <AppDbContext, Organization>(new Organization { Name = "TestOrg4", WebsiteUrl = "https://testorg4.org", BuildEngineUrl = "https://buildengine.testorg1", BuildEngineApiAccessToken = "replace", OwnerId = CurrentUser.Id }); orgStore1 = AddEntity <AppDbContext, OrganizationStore>(new OrganizationStore { OrganizationId = org4.Id, StoreId = store1.Id }); CurrentUserMembership = AddEntity <AppDbContext, OrganizationMembership>(new OrganizationMembership { UserId = CurrentUser.Id, OrganizationId = org1.Id }); CurrentUserMembership2 = AddEntity <AppDbContext, OrganizationMembership>(new OrganizationMembership { UserId = CurrentUser.Id, OrganizationId = org2.Id }); CurrentUserMembership3 = AddEntity <AppDbContext, OrganizationMembership>(new OrganizationMembership { UserId = user1.Id, OrganizationId = org3.Id }); CurrentUserMembership3 = AddEntity <AppDbContext, OrganizationMembership>(new OrganizationMembership { UserId = CurrentUser.Id, OrganizationId = org4.Id }); group1 = AddEntity <AppDbContext, Group>(new Group { Name = "TestGroup1", Abbreviation = "TG1", OwnerId = org1.Id }); group2 = AddEntity <AppDbContext, Group>(new Group { Name = "TestGroup2", Abbreviation = "TG2", OwnerId = org1.Id }); group3 = AddEntity <AppDbContext, Group>(new Group { Name = "TestGroup3", Abbreviation = "TG3", OwnerId = org2.Id }); group4 = AddEntity <AppDbContext, Group>(new Group { Name = "TestGroup4", Abbreviation = "TG4", OwnerId = org3.Id }); group5 = AddEntity <AppDbContext, Group>(new Group { Name = "TestGroup5", Abbreviation = "TG5", OwnerId = org4.Id }); groupMembership1 = AddEntity <AppDbContext, GroupMembership>(new GroupMembership { UserId = CurrentUser.Id, GroupId = group1.Id }); groupMembership2 = AddEntity <AppDbContext, GroupMembership>(new GroupMembership { UserId = CurrentUser.Id, GroupId = group5.Id }); type1 = AddEntity <AppDbContext, ApplicationType>(new ApplicationType { Name = "scriptureappbuilder", Description = "Scripture App Builder" }); project1 = AddEntity <AppDbContext, Project>(new Project { Name = "Test Project1", TypeId = type1.Id, Description = "Test Description", OwnerId = CurrentUser.Id, GroupId = group1.Id, OrganizationId = org1.Id, Language = "eng-US", IsPublic = true, WorkflowProjectUrl = "www.workflow.url" }); project2 = AddEntity <AppDbContext, Project>(new Project { Name = "Test Project2", TypeId = type1.Id, Description = "Test Description", OwnerId = CurrentUser.Id, GroupId = group1.Id, OrganizationId = org1.Id, Language = "eng-US", IsPublic = true, WorkflowProjectUrl = "www.workflow.url" }); project3 = AddEntity <AppDbContext, Project>(new Project { Name = "Test Project3", TypeId = type1.Id, Description = "Test Description", OwnerId = CurrentUser.Id, GroupId = group3.Id, OrganizationId = org2.Id, Language = "eng-US", IsPublic = true, WorkflowProjectUrl = "www.workflow.url" }); project4 = AddEntity <AppDbContext, Project>(new Project { Name = "Test Project4", TypeId = type1.Id, Description = "Test Description", OwnerId = user1.Id, GroupId = group4.Id, OrganizationId = org3.Id, Language = "eng-US", IsPublic = true, WorkflowProjectUrl = "www.workflow.url" }); project5 = AddEntity <AppDbContext, Project>(new Project { Name = "Test Project5", TypeId = type1.Id, Description = "Test Description", OwnerId = CurrentUser.Id, GroupId = group5.Id, OrganizationId = org4.Id, Language = "eng-US", IsPublic = true, WorkflowProjectUrl = "www.workflow.url" }); project6 = AddEntity <AppDbContext, Project>(new Project { Name = "Test Project6", TypeId = type1.Id, Description = "Test Description", OwnerId = CurrentUser.Id, GroupId = group5.Id, OrganizationId = org4.Id, Language = "eng-GB", IsPublic = true, WorkflowProjectUrl = "www.workflow.url" }); project7 = AddEntity <AppDbContext, Project>(new Project { Name = "Test Project7", TypeId = type1.Id, Description = "Test Description", OwnerId = CurrentUser.Id, GroupId = group1.Id, OrganizationId = org1.Id, Language = "eng-US", IsPublic = true }); workflow1 = AddEntity <AppDbContext, WorkflowDefinition>(new WorkflowDefinition { Name = "TestWorkFlow", Enabled = true, Description = "This is a test workflow", WorkflowScheme = "Don't know what this is" }); workflow2 = AddEntity <AppDbContext, WorkflowDefinition>(new WorkflowDefinition { Name = "TestWorkFlow2", Enabled = true, Description = "This is a test workflow", WorkflowScheme = "Don't know what this is", StoreTypeId = storeType1.Id }); productDefinition1 = AddEntity <AppDbContext, ProductDefinition>(new ProductDefinition { Name = "TestProd1", TypeId = type1.Id, Description = "This is a test product", WorkflowId = workflow1.Id }); productDefinition2 = AddEntity <AppDbContext, ProductDefinition>(new ProductDefinition { Name = "TestProd2", TypeId = type1.Id, Description = "This is test product 2", WorkflowId = workflow1.Id }); productDefinition3 = AddEntity <AppDbContext, ProductDefinition>(new ProductDefinition { Name = "TestProd3", TypeId = type1.Id, Description = "This is test product 3", WorkflowId = workflow1.Id }); productDefinition4 = AddEntity <AppDbContext, ProductDefinition>(new ProductDefinition { Name = "TestProd4", TypeId = type1.Id, Description = "This is a test product", WorkflowId = workflow2.Id }); orgProduct1 = AddEntity <AppDbContext, OrganizationProductDefinition>(new OrganizationProductDefinition { OrganizationId = org1.Id, ProductDefinitionId = productDefinition1.Id }); orgProduct2 = AddEntity <AppDbContext, OrganizationProductDefinition>(new OrganizationProductDefinition { OrganizationId = org2.Id, ProductDefinitionId = productDefinition2.Id }); orgProduct3 = AddEntity <AppDbContext, OrganizationProductDefinition>(new OrganizationProductDefinition { OrganizationId = org3.Id, ProductDefinitionId = productDefinition3.Id }); orgProduct4 = AddEntity <AppDbContext, OrganizationProductDefinition>(new OrganizationProductDefinition { OrganizationId = org4.Id, ProductDefinitionId = productDefinition4.Id }); product1 = AddEntity <AppDbContext, Product>(new Product { ProjectId = project1.Id, ProductDefinitionId = productDefinition1.Id }); product2 = AddEntity <AppDbContext, Product>(new Product { ProjectId = project4.Id, ProductDefinitionId = productDefinition3.Id }); product3 = AddEntity <AppDbContext, Product>(new Product { ProjectId = project3.Id, ProductDefinitionId = productDefinition2.Id }); product4 = AddEntity <AppDbContext, Product>(new Product { ProjectId = project5.Id, ProductDefinitionId = productDefinition4.Id, StoreId = store1.Id, StoreLanguageId = storeLang1.Id }); }