public async Task <IActionResult> Index(CreateLinkViewModel vm) { await InitializeViewModel(vm); return(DoIfValid <IActionResult>(() => { var req = vm.ConvertTo <CreateLinkRequest>(); req.Tags = Enumerable.ToHashSet(vm.Tags.Where(m => m.IsSelected).Select(m => m.Key)); var link = Gateway.Send(req); return RedirectToAction("Share", "Link", new { id = link.Key }); }, () => View(vm))); }