コード例 #1
0
        public async Task <IActionResult> Create(CreateTemplateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var entity = model.CreateDbModel();
                _ctx.Templates.Add(entity);
                await _ctx.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            var applications = await _ctx.Applications.ToListAsync();

            model.Applications = new SelectList(applications, nameof(Application.Id), nameof(Application.Name));

            return(View(model));
        }
コード例 #2
0
        public async Task <IActionResult> Create(Guid?applicationId)
        {
            var model = new CreateTemplateViewModel
            {
                ApplicationId   = applicationId,
                SampleData      = "{\n\t\"Name\": \"Bob\"\n}",
                SubjectTemplate = "Hello {{Name}}",
                BodyTemplate    = "<!DOCTYPE html>\n<html>\n<body>\n\t<p>Hello {{Name}}!</p>\n</body>\n</html>"
            };

            var applications = await _ctx.Applications.ToListAsync();

            if (!applications.Any())
            {
                return(View("NoApplications"));
            }

            model.Applications = new SelectList(applications, nameof(Application.Id), nameof(Application.Name));

            return(View(model));
        }
コード例 #3
0
        public async Task <ActionResult> Create(CreateTemplateViewModel model)
        {
            model.ErrorMessage = null;
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            if (!model.Verified)
            {
                var compiledContractString = await _smartContractService.CompileContract(model.Source);

                if (compiledContractString == null)
                {
                    model.ErrorMessage = "Cannot compile contract";
                    return(View(model));
                }

                var compiledContractObject = JsonConvert.DeserializeObject <object[]>(compiledContractString);
                model.Abi      = JsonConvert.SerializeObject(compiledContractObject[0]);
                model.ByteCode = (string)compiledContractObject[1];

                model.Verified = true;
                return(View(model));
            }
            else
            {
                var user = _userService.GetUsers(u => u.FirstName + " " + u.LastName == HttpContext.User.Identity.Name).FirstOrDefault();
                _smartContractService.SaveTemplate(new SmartContract
                {
                    Id          = Guid.NewGuid(),
                    Name        = model.Name,
                    Description = model.Description,
                    User        = user,
                    Abi         = model.Abi,
                    ByteCode    = model.ByteCode
                });

                return(RedirectToAction("Index", "Templates"));
            }
        }
コード例 #4
0
        public ActionResult Create()
        {
            var model = new CreateTemplateViewModel();

            return(View(model));
        }