Exemplo n.º 1
0
        public async Task <CredentialsContract> CreateCovidTest(string connectionId, CovidTestCredentialParameters covidTestCredential, string walletId)
        {
            CredentialsContract credentials = null;

            if (covidTestCredential != null)
            {
                covidTestCredential.DateIssued = DateTime.UtcNow;
                var credentialOffer = new CredentialOfferParameters
                {
                    ConnectionId      = connectionId,
                    DefinitionId      = DefinitionIds[Schemas.CovidTest],
                    AutomaticIssuance = false,
                    CredentialValues  = new Dictionary <string, string>
                    {
                        { Attributes.ReferenceNumber, covidTestCredential.ReferenceNumber.ValidateLength() },
                        { Attributes.Laboratory, covidTestCredential.Laboratory.ToString() },
                        { Attributes.DateTested, covidTestCredential.DateTested.IsInPast().ToString() },
                        { Attributes.DateIssued, covidTestCredential.DateIssued.ToString() },
                        { Attributes.CovidStatus, covidTestCredential.CovidStatus.ToString() },
                    }
                };

                credentials = await _agencyBroker.SendCredentials(credentialOffer);

                StoreCoviIDCredentials(covidTestCredential, walletId);
            }
            return(credentials);
        }
Exemplo n.º 2
0
        public async Task <CredentialsContract> SendCredentials(CredentialOfferParameters credentials)
        {
            var content = new StringContent(JsonConvert.SerializeObject(credentials), Encoding.UTF8, applicationJson);

            var response = await _httpClient.PostAsync($"{partialRoot}credentials", content);

            response = await ValidateResponse(response);

            return(JsonConvert.DeserializeObject <CredentialsContract>(await response.Content.ReadAsStringAsync()));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creates a verified person credentials with the relevant DefinitionID and attribute values.
        /// </summary>
        /// <param name="connectionId"></param>
        /// <param name="personCredential"></param>
        /// <returns></returns>
        public async Task <CredentialsContract> CreatePerson(string connectionId, PersonCredentialParameters personCredential)
        {
            var credentialOffer = new CredentialOfferParameters
            {
                ConnectionId      = connectionId,
                DefinitionId      = DefinitionIds[Schemas.Person],
                AutomaticIssuance = false,
                CredentialValues  = new Dictionary <string, string>
                {
                    { Attributes.FirstName, personCredential.FirstName.ValidateLength() },
                    { Attributes.LastName, personCredential.LastName.ValidateLength() },
                    { Attributes.Photo, personCredential.Photo },
                    { Attributes.MobileNumber, personCredential.MobileNumber.ValidateMobileNumber().ToString() },
                    { Attributes.IdentificationType, personCredential.IdentificationType.ToString() },
                    { Attributes.IdentificationValue, personCredential.IdentificationValue.ValidateIdentification(personCredential.IdentificationType) }
                }
            };

            var credentials = await _agencyBroker.SendCredentials(credentialOffer);

            return(credentials);
        }