コード例 #1
0
ファイル: RealmService.cs プロジェクト: bakuzan/realms
        public async Task <RealmCreateResponse> CreateRealm(ClaimsPrincipal claim, RealmCreateRequest request)
        {
            var response = new RealmCreateResponse();
            var user     = await _userService.GetCurrentUser(claim);

            var userId = user == null ? string.Empty : user.Id;

            if (string.IsNullOrEmpty(userId))
            {
                response.ErrorMessages.Add("You are not authorised to perform this action.");
                return(response);
            }

            if (string.IsNullOrEmpty(request.Name))
            {
                response.ErrorMessages.Add("Name is required.");
                return(response);
            }

            var realm = _mapper.Map <Realm>(request);

            realm.ApplicationUserId = user.Id;
            realm.Code = await ValidateAndSetRealmCode(realm);

            _realmDataService.SetToPersist(realm);
            await _realmDataService.SaveAsync();

            response.Data = _mapper.Map <RealmItemViewModel>(realm);
            return(response);
        }
コード例 #2
0
        public async Task <Realm> CreateRealmAsync(Guid correlationRefId, RealmCreateRequest realm, CancellationToken cancellationToken = default)
        {
            HttpResponseMessage httpResponse = await SendAsJsonAsync(
                method : HttpMethod.Post,
                pathAndQuery : $"api/v1/realm",
                correlationRefId : correlationRefId,
                request : realm,
                requestHeaders : null,
                cancellationToken).ConfigureAwait(false);

            string responseJson = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);

            var response = JsonConvert.DeserializeObject <SmartResponse <Realm> >(responseJson);

            if (httpResponse.IsSuccessStatusCode)
            {
                return(response.Data);
            }

            throw new Exception($"Create Realm failed. {response.Error.Message}");
        }
コード例 #3
0
 public async Task <RealmCreateResponse> Create(RealmCreateRequest request)
 {
     return(await _realmService.CreateRealm(User, request));
 }