public async Task <ActionResult <OrganizationView> > CreateOrganizationAsync([FromBody] OrganizationCreateRequest organizationCreateRequest) { var currentUserId = GetCurrentUserId(); try { var createdOrg = await organizationManager.AddAsync(organizationCreateRequest, currentUserId); OrganizationView newOrg = await createdOrg .ProjectTo <OrganizationView>(mapper.ConfigurationProvider) .SingleAsync(); return(Ok(newOrg)); } catch (ArgumentNullException ane) { logger.LogDebug(ane.Message + "\n" + ane.StackTrace); logger.LogDebug($"User {currentUserId} doesn't exist in current database"); return(Forbid(JwtBearerDefaults.AuthenticationScheme, CookieAuthenticationDefaults.AuthenticationScheme)); } catch (ArgumentException ae) { logger.LogDebug(ae.Message + "\n" + ae.StackTrace); logger.LogDebug($"Organization with name '{organizationCreateRequest.Name}' already exists"); return(BadRequest($"Organization with name '{organizationCreateRequest.Name}' already exists")); } catch (Exception ex) { logger.LogDebug(ex.Message + "\n" + ex.StackTrace); return(StatusCode(500)); } }
public async Task <IWrappedResponse> Create(OrganizationCreateRequest request) { var cmd = ServiceCommand <Organization, Rules.Organization.Create.MainRule> .Create(_serviceProvider) .When(new Rules.Organization.Create.MainRule(request)) .Then(CreateAction); return(await cmd.Execute()); }
public async Task Test_organizations_crud_sequence() { var initialOrganizations = await _apiClient.Organizations.GetAllAsync(new Paging.PaginationInfo()); var createRequest = new OrganizationCreateRequest { Name = ($"integration-testing-" + MakeRandomName()).ToLower(), DisplayName = "Integration testing", Branding = new OrganizationBranding { LogoUrl = "https://cdn.auth0.com/manhattan/versions/1.2800.0/assets/./badge.png", Colors = new BrandingColors { Primary = "#ff0000", PageBackground = "#00ff00" } } }; var createResponse = await _apiClient.Organizations.CreateAsync(createRequest); createResponse.Should().NotBeNull(); createResponse.Name.Should().Be(createRequest.Name); createResponse.Branding.LogoUrl.Should().Be(createRequest.Branding.LogoUrl); createResponse.Branding.Colors.Primary.Should().Be("#ff0000"); createResponse.Branding.Colors.PageBackground.Should().Be("#00ff00"); var updateRequest = new OrganizationUpdateRequest { DisplayName = $"Integration testing 123", }; var updateResponse = await _apiClient.Organizations.UpdateAsync(createResponse.Id, updateRequest); updateResponse.Should().NotBeNull(); updateResponse.DisplayName.Should().Be(updateRequest.DisplayName); var organization = await _apiClient.Organizations.GetAsync(createResponse.Id); organization.Should().NotBeNull(); organization.DisplayName.Should().Be(updateResponse.DisplayName); var organizationByName = await _apiClient.Organizations.GetByNameAsync(organization.Name); organizationByName.Should().NotBeNull(); organizationByName.DisplayName.Should().Be(updateResponse.DisplayName); var organizations = await _apiClient.Organizations.GetAllAsync(new Paging.PaginationInfo()); organizations.Count.Should().Be(initialOrganizations.Count + 1); await _apiClient.Organizations.DeleteAsync(updateResponse.Id); Func <Task> getFunc = async() => await _apiClient.Organizations.GetAsync(organization.Id); getFunc.Should().Throw <ErrorApiException>().And.Message.Should().Be("No organization found by that id or name"); }
public async Task <IQueryable <Organization> > AddAsync(OrganizationCreateRequest organizationCreateRequest, Guid creatorId) { bool exist = await Organizations .Where(org => org.Name == organizationCreateRequest.Name) .AnyAsync(); if (exist) { throw new ArgumentException(); } var creator = await userManager.FindByIdAsync(creatorId.ToString()) ?? throw new ArgumentNullException("Can't find creator"); var newOrg = mapper.Map <Organization>(organizationCreateRequest); newOrg.Users = new List <UserRightsInOrganization>(); logger.LogDebug("Start adding creator to all roles"); foreach (var right in OrganizationRights) { if (right.RightName == Configure.OrganizationRights.Wisher.ToString()) { continue; } newOrg.Users.Add(new UserRightsInOrganization { UserId = creator.Id, User = creator, OrganizationRightId = right.Id, UserOrganizationRight = right, OrganizationId = newOrg.Id, Organization = newOrg }); } logger.LogDebug("End adding creator to all roles"); newOrg.Ads = new List <Ad>(); await dbContext.Organizations.AddAsync(newOrg); logger.LogDebug("Added new organization"); await dbContext.SaveChangesAsync(); logger.LogDebug("Save all changes"); return(dbContext.Organizations .Where(org => org.Id == newOrg.Id)); }
public async Task Test_organizations_checkpoint_pagination() { var organization1 = new OrganizationCreateRequest { Name = ($"integration-testing-" + MakeRandomName()).ToLower(), DisplayName = "Integration testing", Branding = new OrganizationBranding { LogoUrl = "https://cdn.auth0.com/manhattan/versions/1.2800.0/assets/./badge.png", Colors = new BrandingColors { Primary = "#ff0000", PageBackground = "#00ff00" } } }; var createResponse1 = await _apiClient.Organizations.CreateAsync(organization1); var organization2 = new OrganizationCreateRequest { Name = ($"integration-testing-" + MakeRandomName()).ToLower(), DisplayName = "Integration testing", Branding = new OrganizationBranding { LogoUrl = "https://cdn.auth0.com/manhattan/versions/1.2800.0/assets/./badge.png", Colors = new BrandingColors { Primary = "#ff0000", PageBackground = "#00ff00" } } }; var createResponse2 = await _apiClient.Organizations.CreateAsync(organization2); var firstCheckPointPaginationRequest = await _apiClient.Organizations.GetAllAsync(new Paging.CheckpointPaginationInfo(1)); var secondCheckPointPaginationRequest = await _apiClient.Organizations.GetAllAsync(new Paging.CheckpointPaginationInfo(1, firstCheckPointPaginationRequest.Paging.Next)); secondCheckPointPaginationRequest.Count.Should().Be(1); secondCheckPointPaginationRequest.Paging.Next.Should().NotBeNullOrEmpty(); await _apiClient.Organizations.DeleteAsync(createResponse1.Id); await _apiClient.Organizations.DeleteAsync(createResponse2.Id); }
public async Task <Organization> CreateAsync(Organization organization) { using (_loggerScope(_logger, $"PostAsync")) using (var client = _apiClient.CreateClient()) { var request = new OrganizationCreateRequest(organization); var response = await client.PostAsJsonAsync(ResourceUri, request).ConfigureAwait(false); if (response.StatusCode != System.Net.HttpStatusCode.Created) { throw new HttpRequestException( $"Status code retrieved was {response.StatusCode} and not a 201 as expected" + Environment.NewLine + "See: https://developer.zendesk.com/rest_api/docs/core/organizations#create-organization"); } var result = await response.Content.ReadAsAsync <OrganizationResponse>(); return(result.Organization); } }
public async Task <IActionResult> Create([FromBody] OrganizationCreateRequest request) { if (!ModelState.IsValid) { return(BadRequest(new OrganizationCreateResponse(Resource.InvalidPayload, false))); } //Найти юзера по авторизац.токену. claimsPrincipal.Identity тут не помог (там визуально ничего нет) var user = await UserFromClaim.GetUser(_UserManager, HttpContext.User); if (user == null) { return(BadRequest(new OrganizationCreateResponse(Resource.InvalidLoginRequest, false))); } if (!user.EmailConfirmed) { return(BadRequest(new OrganizationCreateResponse(Resource.EmailNotConfirmed, false))); } //Если пользователь состоит в организации создавать новую нельзя. Чтобы создать, //нужно вначале покинуть организацию. Если он создает, то автоматом становится ее членом. if (!string.IsNullOrEmpty(user.OrganizationUID)) { return(BadRequest(new OrganizationCreateResponse(Resource.UserIsMemberOfOrganization, false))); } var org = await _OrganizationStore.Create(request.Name, request.FullName, user.UID); //также нужно прописать в юзера в свойство что он уже создал организацию... //TODO@: плохо с транзакционностью - можно создать организацию, но упасть на изменении юзера (не пропишется ему свойство) await _UserStoreEx.SetUserOrganizationAsync(user, org.UID); return(Ok(new OrganizationCreateResponse() { Success = true, UID = org.UID })); }
/// <summary> /// Creates a new organization. /// </summary> /// <param name="request">The <see cref="OrganizationCreateRequest"/> containing the properties of the new organization.</param> /// <returns>The new <see cref="Organization"/> that has been created.</returns> public Task <Organization> CreateAsync(OrganizationCreateRequest request) { return(Connection.SendAsync <Organization>(HttpMethod.Post, BuildUri("organizations"), request, DefaultHeaders)); }
public MainRule(OrganizationCreateRequest request, IRule parentRule = null) { // Create Context Context = new ContextModel(request, this); ParentRule = parentRule; }
/// <summary> /// 机构账号创建 /// </summary> public async Task <ApiResult <OrganizationCreateResponse> > OrganizationCreate(OrganizationCreateRequest request) { var result = await Http.PostAsync < OrganizationCreateResponse, OrganizationCreateRequest>( $"{Option.BaseUrl}/v1/organizations/createByThirdPartyUserId", request ); return(result); }
public async Task <ActionResult <Organization> > Post([FromBody] OrganizationCreateRequest request) { return(await _organizationsService.Create(request).Convert <Organization>(this)); }