public async Task <ActionResult> EditElement(int plotelementid, int plotFolderId, int projectId, string content, string todoField, [CanBeNull] ICollection <string> targets) { try { var project = await ProjectRepository.GetProjectAsync(projectId); if (project.HasMasterAccess(CurrentUserId, acl => acl.CanManagePlots)) { var targetGroups = targets.OrEmptyList().GetUnprefixedGroups(); var targetChars = targets.OrEmptyList().GetUnprefixedChars(); await _plotService.EditPlotElement(projectId, plotFolderId, plotelementid, content, todoField, targetGroups, targetChars); } else { await _plotService.EditPlotElementText(projectId, plotFolderId, plotelementid, content, todoField); } return(ReturnToPlot(projectId, plotFolderId)); } catch (Exception) { return(await Edit(projectId, plotFolderId)); } }