public static TSignableRequest Import <TSignableRequest>(string exportedRequest)
            where TSignableRequest : SignableRequest
        {
            var jsonModel = Encoding.UTF8.GetString(Convert.FromBase64String(exportedRequest));
            var model     = JsonSerializer.Deserialize <SignedRequestModel>(jsonModel);

            SignableRequest request = null;

            if (typeof(TSignableRequest) == typeof(CreateCardRequest))
            {
                request = new CreateCardRequest();
            }

            if (typeof(TSignableRequest) == typeof(RevokeCardRequest))
            {
                request = new RevokeCardRequest();
            }

            if (request == null)
            {
                throw new NotSupportedException();
            }

            request.RestoreRequest(model.ContentSnapshot, model.Meta.Signatures);

            return((TSignableRequest)request);
        }
Example #2
0
        public async Task <Card> CreateCardAsync(CreateCardRequest request)
        {
            var postRequest = Request.Create(RequestMethod.Post)
                              .WithEndpoint("/v4/card")
                              .WithBody(request.GetRequestModel());

            var response = await this.CardsConnection.Send(postRequest).ConfigureAwait(false);

            var card = ResponseToCard(response.Parse <SignedResponseModel>());

            if (this.cardValidator != null)
            {
                this.ValidateCards(new [] { card });
            }

            return(card);
        }