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)); }
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)); }
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")); } }
public ActionResult Create() { var model = new CreateTemplateViewModel(); return(View(model)); }