public async Task <IHttpActionResult> DeploySampleContract(int userId) { bool isContractAlreadyExist = _contractRepository.GetAll().ToList() .Where(item => item.Name == CONTRACT_NAME).FirstOrDefault() != null ? true : false; if (!isContractAlreadyExist) { var user = _userRepository.GetByID(userId); if (user != null) { var userAccount = _userAccountRepository.GetAll().ToList().Where(item => item.UserId == user.Id).FirstOrDefault(); var node = _nodeRepository.GetByID(user.NodeId); if (node != null && userAccount != null) { var accessKey = _accessKeyRepository.GetAll().ToList().Where(item => item.NodeId == node.Id).FirstOrDefault(); if (accessKey != null) { var managedAccount = new ManagedAccount(userAccount.Address, userAccount.PrivateKey); var web3Managed = new Web3(managedAccount, accessKey.UrlKey); var service = await HelloService.DeployContractAndGetServiceAsync(web3Managed, new HelloDeployment()); var message = await service.GetMessageQueryAsync(new GetMessageFunction()); _contractRepository.Save(new DLL.DataModels.Contract() { Name = CONTRACT_NAME, Address = service.ContractHandler.ContractAddress, NodeId = node.Id, UserId = user.Id, UserAccountId = userAccount.Id }); return(Ok(message)); } } } } return(Ok("Contract Already Exist")); }