/// <summary> /// Get data /// </summary> /// <param name="id">Chain</param> /// <returns></returns> public async Task <ActionResult> Index() { Models.ChainSettings setting = Global.Chains.SingleOrDefault(s => s.Name == id); using (Clients.Client client = new Clients.Client(setting.Host, setting.RPCUser, setting.RPCPassword, setting.Port)) { var response = await client.ListStreamItems(id, stream); List <Models.DTOs.DataEntity> entities = new List <Models.DTOs.DataEntity>(); foreach (Models.ListStreamsItems.Result result in response.Result) { Models.DTOs.DataEntity entity = Helpers.SerialisationHelper.ToObject <Models.DTOs.DataEntity>(result.Data); entities.Add(entity); } return(View(entities)); } }
public async Task <ActionResult> Create(ViewModels.DataEntityViewModel viewModel) { if (!String.IsNullOrEmpty(viewModel.Data)) { Byte[] data = Encoding.ASCII.GetBytes(viewModel.Data); Byte[] key = Convert.FromBase64String(viewModel.PrivateKey); Byte[] encryptedData = EncryptByteArray(key, data); Models.DTOs.DataEntity dataDto = new Models.DTOs.DataEntity() { Id = viewModel.Id }; dataDto.Data = Convert.ToBase64String(encryptedData); Models.DTOs.Access accessDto = new Models.DTOs.Access() { ConsumingEntityId = viewModel.ConsumingEntityId, PublishingEntityId = viewModel.PublishingEntityId, DataId = dataDto.Id, PrivateKey = viewModel.PrivateKey }; //push to chain Models.ChainSettings setting = Global.Chains.SingleOrDefault(s => s.Name == "gbst"); using (Clients.Client client = new Clients.Client(setting.Host, setting.RPCUser, setting.RPCPassword, setting.Port)) { String hex = Helpers.SerialisationHelper.ToHex(dataDto); var dataTask = client.PublishStreamItem("gbst", "Data", dataDto.Id.ToString(), hex); var accessTask = client.PublishStreamItem("gbst", "Access", dataDto.Id.ToString(), hex); await Task.WhenAll(accessTask, dataTask); } } return(View()); }