public async Task <IActionResult> Edit(Guid id, [Bind("Did,Name,Version,Attributes,UserId")] CredentialSchema credentialSchema)
        {
            if (id != credentialSchema.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(credentialSchema);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CredentialSchemaExists(credentialSchema.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(credentialSchema));
        }
示例#2
0
        public void UpdateTokenByUsername(string username, CredentialSchema credentialSchema)
        {
            if (credentialSchema == null)
            {
                return;
            }

            try
            {
                using (var connection = new SqlConnection(_connectionString))
                {
                    var command = new SqlCommand(UserStoredProcedures.UpdateUserCredentialByUsername, connection);
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.AddWithValue("@Username", username);
                    command.Parameters.AddWithValue("@AccessToken", credentialSchema.AccessToken);
                    command.Parameters.AddWithValue("@RefreshToken", credentialSchema.RefreshToken);

                    connection.Open();
                    if (command.ExecuteNonQuery() == 0)
                    {
                        throw new Exception();
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <IActionResult> Create([Bind("Name,Version,Attributes")] CredentialSchema credentialSchema)
        {
            if (ModelState.IsValid)
            {
                await _identityService.CreateCredentialSchemaAsync(_userManager.GetUserId(User), credentialSchema.Name, credentialSchema.Version, credentialSchema.AttributeArray);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(credentialSchema));
        }
        public async Task CreateCredentialSchemaAsync(string userId, string name, string version, string[] attributes)
        {
            var walletData = await GetDefaultWalletDataAsync(userId);

            var schema = new { name, version, attr_names = attributes };
            var wallet = await Wallet.OpenWalletAsync(walletData.Name, null, null);

            try
            {
                using (var pool = await PoolUtils.CreateAndOpenPoolLedgerAsync())
                {
                    var schemaRequest = await Ledger.BuildSchemaRequestAsync(walletData.Did, JsonConvert.SerializeObject(schema));

                    var result = await Ledger.SignAndSubmitRequestAsync(pool, wallet, walletData.Did, schemaRequest);

                    Console.WriteLine("=============Schema Request Result===========");
                    Console.WriteLine(result);

                    var schemaData = new CredentialSchema
                    {
                        Id             = Guid.NewGuid(),
                        AttributeArray = attributes,
                        Name           = name,
                        Version        = version,
                        UserId         = userId
                    };

                    _dbContext.CredentialSchemas.Add(schemaData);
                    await _dbContext.SaveChangesAsync();
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                await wallet.CloseAsync();
            }
        }