public async Task <ActionResult> CreateElement(int projectId, int plotFolderId, string content, string todoField, [CanBeNull] ICollection <string> targets, PlotElementTypeView elementType) { var folder = await _plotRepository.GetPlotFolderAsync(projectId, plotFolderId); var error = AsMaster(folder, acl => acl.CanManagePlots); if (error != null) { return(error); } try { var targetGroups = targets.OrEmptyList().GetUnprefixedGroups(); var targetChars = targets.OrEmptyList().GetUnprefixedChars(); await _plotService.AddPlotElement(projectId, plotFolderId, CurrentUserId, content, todoField, targetGroups, targetChars, (PlotElementType)elementType); return(ReturnToPlot(plotFolderId, projectId)); } catch (Exception) { return(View(new AddPlotElementViewModel() { ProjectId = projectId, PlotFolderId = plotFolderId, PlotFolderName = folder.MasterTitle, Content = content, TodoField = todoField, })); } }