public async Task <IActionResult> Update(Guid id, CreateOrUpdateApplicationViewModel model) { if (ModelState.IsValid) { if (!model.Id.HasValue || model.Id.Value != id) { throw new ArgumentException("Invalid Id in model"); } var modelWithSameName = await _store.FindByName(model.Name); if (modelWithSameName == null || modelWithSameName.Id == id) { await _store.Update(id, x => { x.Name = model.Name; }); return(RedirectToAction(nameof(List))); } ModelState.AddModelError("Name", "Name already in use"); } // If we got this far, something failed, redisplay form return(View("CreateOrUpdate", model)); }
public async Task <IActionResult> Create(CreateOrUpdateApplicationViewModel model) { if (ModelState.IsValid) { if (await _store.FindByName(model.Name) == null) { await _store.Create(new Domain.Entities.Application { Name = model.Name }); return(RedirectToAction(nameof(List))); } ModelState.AddModelError("Name", "Name already in use"); } // If we got this far, something failed, redisplay form return(View("CreateOrUpdate", model)); }