コード例 #1
0
        public async Task <ActionResult> Stream(String id)
        {
            if (!String.IsNullOrEmpty(id))
            {
                ViewBag.Id = id;

                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))
                {
                    Models.ListStreams.Response response = await client.ListStreams(id);

                    List <ViewModels.StreamViewModel> streams = new List <ViewModels.StreamViewModel>();

                    foreach (Models.ListStreams.Result result in response.Result)
                    {
                        streams.Add(new ViewModels.StreamViewModel()
                        {
                            Chain = id, Name = result.Name, Open = result.Open, Subscribed = result.Subscribed, Synchronised = result.Synchronised
                        });
                    }
                    return(View(streams));
                }
            }
            else
            {
                throw new ArgumentNullException();
            }
        }
コード例 #2
0
        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))
            {
                ViewModels.StreamItemsViewModel viewModel = new ViewModels.StreamItemsViewModel();
                viewModel.ChainName = id;
                viewModel.Stream    = stream;

                List <Models.DTOs.Access> entities = new List <Models.DTOs.Access>();

                var response = await client.ListStreamItems(id, stream);

                if (response != null)
                {
                    foreach (Models.ListStreamsItems.Result result in response.Result)
                    {
                        //viewModel.Items.Add(result);
                        Models.DTOs.Access entity = Helpers.SerialisationHelper.ToObject <Models.DTOs.Access>(result.Data);
                        entities.Add(entity);
                    }
                }

                return(View(entities));
            }
        }
コード例 #3
0
        // GET: All stream items
        /// <summary>
        ///
        /// </summary>
        /// <param name="id">Chain</param>
        /// <param name="stream">Stream</param>
        /// <returns></returns>
        public async Task <ActionResult> Index(String id, String stream)
        {
            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);

                return(View(response.Result));
            }
        }
コード例 #4
0
        public async Task <ActionResult> Create(Models.DTOs.Entity dto)
        {
            //push to chain
            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))
            {
                String hex      = Helpers.SerialisationHelper.ToHex(dto);
                var    response = await client.PublishStreamItem(id, "Entity", dto.Id.ToString(), hex);

                ViewBag.Response = "";
                return(RedirectToAction("Index"));
            }
        }
コード例 #5
0
        /// <summary>
        /// Stream
        /// </summary>
        /// <param name="id">Chain name</param>
        /// <returns></returns>
        public async Task <ActionResult> Post(ViewModels.AddStreamKeyValueViewModel viewModel)
        {
            Models.ChainSettings setting = Global.Chains.SingleOrDefault(s => s.Name == viewModel.Name);
            using (Clients.Client client = new Clients.Client(setting.Host, setting.RPCUser, setting.RPCPassword, setting.Port))
            {
                //var response = await client.GetStreams(id);

                //ViewModels.ChainViewModel model = new ViewModels.ChainViewModel()
                //{
                //    Name = id,
                //    Version = response.Result.Version,
                //    Balance = response.Result.Balance
                //};

                return(View());
            }
        }
コード例 #6
0
        public async Task <ActionResult> Details(String id)
        {
            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.GetInfo(id);

                ViewModels.ChainViewModel model = new ViewModels.ChainViewModel()
                {
                    Name    = id,
                    Version = response.Result.Version,
                    Balance = response.Result.Balance
                };

                return(View(model));
            }
        }
コード例 #7
0
        /// <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));
            }
        }
コード例 #8
0
        // GET: All stream items
        /// <summary>
        ///
        /// </summary>
        /// <param name="id">Chain</param>
        /// <param name="stream">Stream</param>
        /// <returns></returns>
        public async Task <ActionResult> StreamItems(String id, String stream)
        {
            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))
            {
                ViewModels.StreamItemsViewModel viewModel = new ViewModels.StreamItemsViewModel();
                viewModel.ChainName = id;
                viewModel.Stream    = stream;

                var response = await client.ListStreamItems(id, stream);

                if (response != null)
                {
                    foreach (Models.ListStreamsItems.Result result in response.Result)
                    {
                        viewModel.Items.Add(result);
                    }
                }

                return(View(viewModel));
            }
        }
コード例 #9
0
        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());
        }