public async Task <IActionResult> Delete(int?id) { if (id == null) { return(NotFound()); } CaseItemOption opt = await _context.CaseItemOptions.SingleOrDefaultAsync(cio => cio.Id == id); if (opt == null) { return(NotFound()); } return(View(opt)); }
public async Task <IActionResult> DeleteConfirmed(int?id) { if (id == null) { return(NotFound()); } CaseItemOption opt = await _context.CaseItemOptions.SingleOrDefaultAsync(cio => cio.Id == id); if (opt == null) { return(NotFound()); } _context.CaseItemOptions.Remove(opt); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Edit), "CaseItems", new { id = opt.CaseItemTemplateId })); }
public async Task <IActionResult> Edit(int id, CaseItemOption vm) { if (ModelState.IsValid) { CaseItemOption opt = await _context.CaseItemOptions.FindAsync(id); if (opt == null) { return(NotFound()); } // update object as per user changes opt.SerialNum = vm.SerialNum; opt.OptionText = vm.OptionText; try { _context.Update(opt); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { // check if the we are trying to edit was already deleted due to concurrency if (!_context.CaseItemOptions.Any(cio => cio.Id == id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Edit), "CaseItems", new { id = opt.CaseItemTemplateId })); } // If we got this far, something failed, redisplay form return(View(vm)); }
public async Task <IActionResult> Edit(int id, CaseItemTemplateEditVM vm) { if (ModelState.IsValid) { CaseItemTemplate templ = await _context.CaseItemTemplates.FindAsync(id); if (templ == null) { return(NotFound()); } // update object as per user changes templ.Question = vm.ItemTemplate.Question; templ.ResponseType = vm.ItemTemplate.ResponseType; templ.SerialNum = vm.ItemTemplate.SerialNum; templ.IsResponseRequired = vm.ItemTemplate.IsResponseRequired; //templ.Options = vm.ItemTemplate.Options; try { _context.Update(templ); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { // check if the we are trying to edit was already deleted due to concurrency if (!_context.CaseItemTemplates.Any(ci => ci.Id == id)) { return(NotFound()); } else { throw; } } // create new option if not null or blank string newOpt = (vm.NewOptionText ?? "").Trim(); if (!string.IsNullOrEmpty(newOpt)) { // find the biggest serial number for this CaseItemTemplate - https://stackoverflow.com/questions/7542021/how-to-get-max-value-of-a-column-using-entity-framework int maxSerNum = 1; if (_context.CaseItemOptions.Count() > 0) { maxSerNum = _context.CaseItemOptions.Select(o => o.SerialNum).Max() + 1; } CaseItemOption opt = new CaseItemOption() { CaseItemTemplateId = id, OptionText = newOpt, SerialNum = maxSerNum }; _context.Add(opt); int numInserted = await _context.SaveChangesAsync(); if (numInserted == 1) { _logger.LogInformation("New Case Item Template Option created"); //return RedirectToAction(nameof(Index)); } else { string msg = $"New Case Item Template Option not created as db returned num insertions as {numInserted}"; _logger.LogInformation(msg); //todo create custom exception throw new Exception(msg); } } return(RedirectToAction(nameof(Index)).WithSuccess("Case Item Editing done")); } var resTypes = Enum.GetValues(typeof(ResponseType)).Cast <ResponseType>().Select(v => v.ToString()); ViewData["ResponseTypeId"] = new SelectList(resTypes, vm.ItemTemplate.ResponseType.ToString()); // If we got this far, something failed, redisplay form return(View(vm)); }